CentOS7安装单机版Hadoop2.7.3

  • CentOS7安装单机版Hadoop273
    • 前期准备
    • 以standalone形式运行hadoop程序
      • 第一步以单机模式运行Hadoop程序
      • 第二步搭建伪分布式开启HDFS
      • 第三步在单节点上开启yarn
      • 总结

CentOS7安装单机版Hadoop2.7.3

前期准备

  • 安装java,拷贝oracle官网下载的jdk-8u111-linux-x64.rpm到虚拟机内。并安装:

    rpm -i jdk-8u111-linux-x64.rpm
    
  • 设定java路径为环境变量,编辑/etc/profile文件,加入一行:

    export JAVA_HOME=/usr/java/latest
    
  • 通过source命令应用JAVA_HOME环境变量,并验证

    echo $JAVA_HOME  //输出空路径
    source /etc/profile
    echo $JAVA_HOME  //此时输出正确的JAVA_HOME
    
  • 拷贝hadoop-2.7.3.tar.gz到用户路径下。

  • 解压缩

    tar -xf hadoop-2.7.3.tar.gz
    
  • 获得hadoop-2.7.3目录,进入该目录下。

以standalone形式运行hadoop程序

具体请参考: http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html

第一步,以单机模式运行Hadoop程序:

  • 为Hadoop配置Java运行路径,编辑Hadoop-2.7.3路径下的 etc/hadoop/hadoop-env.sh 文件加入java路径,如下行:

     export JAVA_HOME=/usr/java/latest
    
  • 执行Hadoop自带的mapReduce示例:

    //在Hadoop-2.7.3路径下创建input目录
    $ mkdir input
    //将hadoop的配置拷贝到刚创建的input目录下
    $ cp etc/hadoop/*.xml input
    //对input路径下的文件执行Hadoop自带示例中的MapReduce程序,并将输出写入到output目录中。**这里增加了2>>err.txt,由于Hadoop的输出一闪而过,通过这条参数将其输出到err.txt文件中。**
    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input/ output/ 'dfs[a-z.]+' 2>>err.txt
    $ cat output/*
    
  • 执行后,查看err.txt文件发现报错,暂时不知道报错原因:

    EBADF:Bad file descriptor
    
  • 通过命令查看output目录内的输出

    1 dfsadmin
    
  • 注意如果要再次运行该mapReduce程序,要先删除output命令,否则会出现output目录已经存在的报错。

第二步,搭建伪分布式(开启HDFS)

  • 根据Apache的教程,配置core-site.xml和hdfs-site.xml

  • 安装ssh

  • 格式化分布式文件系统

    $ bin/hdfs namenode -format

  • 启动分布式文件系统,中间需要确认几次输入yes。分别启动namenode, datanode, secondarynamenode。

    $ sbin/start-dfs.sh

  • 浏览器访问http://localhost:50070可以看到远程访问hdfs的页面,启动HDFS成功。

  • 在hdfs上创建input目录

    bin/hdfs dfs -mkdir /input
    
  • 将文件系统中Hadoop-2.7.3安装目录下的配置路径etc/hadoop中所有的配置文件拷贝到hdfs上的/input目录中

    bin/hdfs dfs -put etc/hadoop/* /input
    
  • 在HDFS上运行之前的mapReduce示例,并将错误日志输出到err2.txt:

      $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+' 2>>err2.txt
    
  • 可以看到仍然包含bad file description异常。这个异常后面再去找原因。

  • 查看刚才mapReduce计算的输出

    $ bin/hdfs dfs -cat /output/*
    
  • 如果要关闭hdfs使用:

    $ sbin/stop-dfs.sh
    

第三步,在单节点上开启yarn

  • 根据Apache的官方教程,编辑两个配置文件mapred-site.xml和yarn-site.xml

  • 键入命令启动yarn

    sbin/start-yarn.sh
    
  • 如果要关闭yarn键入命令:

    sbin/stop-yarn.sh
    

总结

  • 最初只给虚拟机分配了2G的内存,单核CPU。在运行上面的MapReduce例子时会出现卡死的情况。分析日志发现同时有OutOfMemory和TimeOut两种异常。通过增加CPU到4核,内存到5G,在yarn上能够顺利的运行MapReduce例子了。

  • 另外,HDFS在使用bin/hdfs dfs …命令操作时,总感觉比较慢,不知道后面部署在服务器上是否能够加快一些。

  • 在Hadoop单机执行自带例子的时候,后台报EBADF: Bad file description异常。仍然不知道如何消除该问题。对此有了解的朋友欢迎回复,给予指点。谢谢。

你可能感兴趣的:(操作记录)