zoukankan      html  css  js  c++  java
  • hadoop伪分布安装

    1. 解压

      将安装包hadoop-2.2.0.tar.gz存放到/home/haozhulin/install/目录下,并解压

      #将hadoop解压到/home/haozhulin/install路径下,定位目录到/home/haozhulin/install

      tar –zxvf hadoop-2.2.0.tar.gz –C /home/haozhulin/install/

      或者先让其有执行权限,然后直接./就可以解压

      chmod +x hadoop-2.2.0.tar.gz    

      ./hadoop-2.2.0.tar.gz

      修改解压后的目录中的文件夹etc/hadoop下的xml配置文件(如果文件不存在,则自己创建),后面开始修改配置文件6个:

      在/home/haozhulin/install/hadoop-2.2.0/etc/hadoop/下的

      hadoop-env.sh

      core-site.xml

      hdfs-site.xml

      mapred-site.xml

      yarn-site.xml

      slaves

    2. 修改hadoop-env.sh

      配置hadoop的jdk版本环境

      cd /home/haozhulin/install/hadoop-2.2.0/etc/hadoop/

      vim hadoop-env.sh

      hadoop-env.sh为hadoop环境变量,依赖JDK,进行如下修改

      #第27行

      export JAVA_HOME=/home/haozhulin/install/java/jdk1.7.0_65

    3. 修改core-site.xml

      在其<configuration></ configuration >中插入:

      <!-- 制定HDFS的老大(NameNode)的地址 -->

      <property>

          <name>fs.default.name</name>

          <!--<name>fs.defaultFS</name>-->

          <value>hdfs://whaozl001:9000</value>

      </property>

      <!-- 指定hadoop运行时产生文件的存储目录 -->

      <property>

          <name>hadoop.tmp.dir</name>

          <value>/home/haozhulin/install/hadoop-2.2.0/tmp</value>

      </property>

      上面写的whaozl001是主机名,也可以更改为地址入10.30.30.1,端口号9000也可以是其他的。需要注意的是whaozl001是在/etc/hosts/中设置的host,如果未设置,需要更换为localhost,最好设置,见1.2.7。

      /home/haozhulin/install/hadoop-2.2.0/tmp为手动创建的haozhulin文件夹下的tmp目录下。

    4. 修改hdfs-site.xml

      在其<configuration></ configuration >中插入:

      <!-- 指定HDFS副本的数量 -->

      <property>

          <name>dfs.replication</name>

          <value>1</value>

      </property>

      由于这里是伪分布,只有一台机器,只保存一份。

      问题:当采用虚拟机搭建hadoop环境时,每次虚拟机重启后,hadoop无法启动成功?

      解决方案:在hdfs-site.xml中增加以下两个配置项:

      <!--配置NameNode元信息存放的路径-->

      <property>

          <name>dfs.namenode.name.dir</name>

          <value>/home/haozhulin/install/hadoop-2.2.0/dfs/name</value>

      </property>

      <!--配置DataNode数据信息存放的路径,可配置多个,逗号隔开-->

      <property>

          <name> dfs.datanode.data.dir </name>

          <value>/home/haozhulin/install/hadoop-2.2.0/dfs/data</value>

      </property>

      其中,各个目录一定要是非/tmp下的目录,dfs.namenode.name.dir属性可以配置多个目录,如/data1/dfs/name,/data2/dfs/name, /data3/dfs/name,….。各个目录存储的文件结构和内容都完全一样,相当于备份,这样做的好处是当其中一个目录损坏了,也不会影响到 Hadoop的元数据,特别是当其中一个目录是NFS(网络文件系统Network File System,NFS)之上,即使你这台机器损坏了,元数据也得到保存。

    5. 修改mapred-site.xml

      在里面没有mapred-site.xml文件,但是提供了mapred-site.xml.template模板文件,将其重命名为mapred-site.xml文件,然后进行配置(后续不再重述)。

      #cp命令也可以,mv为重命名命令

      mv mapred-site.xml.template mapred-site.xml

      vim mapred-site.xml

      再在其<configuration></ configuration >中插入:

      <!-- 指定mr运行在yarn上 -->

      <property>

          <name>mapreduce.framework.name</name>

          <value>yarn</value>

      </property>

      mr为mapReduce,将mapReduce配置到yarn上运行

    6. 修改yarn-site.xml

      在其<configuration></ configuration >中插入:

      <!-- 指定YARN的老大(ResourceManager)的地址 -->

      <property>

          <name>yarn.resourcemanager.hostname</name>

          <value>whaozl001</value>

      </property>

      <!-- reducer获取数据的方式 -->

      <property>

          <name>yarn.nodemanager.aux-services</name>

          <value>mapreduce_shuffle</value>

      </property>

    7. 修改slaves

      #定位到/home/haozhulin/install/hadoop-2.2.0/etc/hadoop/slaves文件

      vim etc/hadoop/slaves

      #由于是单机伪分布,所以DataNode就只有localhost

      #不需要修改,也可以改为127.0.0.1,都是指本机

       

    8. 将hadoop添加到环境变量

      将hadoop添加到环境变量之后,可直接在命令窗口中使用hadoop命令(替换了其对应hadoop所在的路径)

      #指定到环境变量文件

      vim /etc/profile

      做如下修改:

      #java environment

      export JAVA_HOME=/home/haozhulin/install/java/jdk1.7.0_09

      export HADOOP_HOME=/home/haozhulin/install/hadoop-2.2.0

      export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

      export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

      然后刷新环境变量配置

      source /etc/profile

      【注意】最好是安装JDK同时,把HADOOP_HOME也配置好,后续方便(各DataNode机就不用麻烦)。

    9. 格式化namenode

      这里所有配置当前路径应该是/home/haozhulin/install/hadoop-2.2.0/bin下

      这里是对HDFS的namenode进行格式化。

      #hadoop namenode –format 该命令过时了,但是依然可用

      #进入hadoop位置/home/haozhulin/install/hadoop-2.2.0/bin/hadoop

      which hadoop

      #hdfs位置#/home/haozhulin/install/hadoop-2.2.0/bin/hdfs

      which hdfs

      之前配置core-site.xml时配置了一个tmp目录(非临时文件目录)

      #新命令格式化namenode,产生tmp目录

      hdfs namenode -format

      【注意】如果没有配置hadoop环境变量,则格式化须使用:

      #该命令过时

      bin/hadoop namenode –format

      #采用如下命令(同上)

      bin/hdfs namenode -format

    10. 启动hadoop

      这里可以一次用./sbin/start-all.sh启动所有,但是一般是先启动HDFS,然后启动yan(因为启动all会多次要求输入root密码),而且start-all.sh命令已经过时。

      #先启动HDFS

      sbin/start-dfs.sh

      #再启动yarn

      sbin/start-yarn.sh

      单独启动HDFS:

      #跳转到hadoop-2.2.0目录下

      sbin/hadoop-daemon.sh start namenode

      sbin/hadoop-daemon.sh start datanode

      单独启动yarn:

      sbin/yarn-daemon.sh start nodemanager

      sbin/yarn-daemon.sh start resourcemanager

    11. 验证hadoop启动成功

      使用jps命令验证

      jps

      27408 NameNode

      28218 Jps

      27643 SecondaryNameNode

      28066 NodeManager

      27803 ResourceManager

      27512 DataNode

      jps为Java命令(which jps)

      http://10.30.30.1:50070 (HDFS管理界面)

      http://10.30.30.1:8088 (MapReduce管理界面)

      2.1 hadoop各进程关系

      进程

      关系

      含义

      ResourceManager 

      yarn的老大

      负责资源调度分配给

      mapreduce/spark/storm

      NodeManager

      yarn的小弟

      负责干活

      NameNode

      hdfs的老大

      负责接收用户请求,数据映射关系

      DataNode

      hdfs的小弟

      负责存储数据

      SecondaryNameNode

      NameNode的助理

      不是NameNode的热备

      协助NameNode

      NameNode一般是多个,一般配置一个主一个备。

    12. hdfs测试(下载和上传)

      #将/root/jdk-7u9-linux-i586.gz文件上传到hdfs/下并重命名为jdk

      hadoop fs –put /root/jdk-7u9-linux-i586.gz hdfs://whaozl001:9000/jdk

      然后通过http://10.30.30.1:50070(HDFS管理界面)里面的点击Browse the filesystem NameNode logs查看,也可以在里面下载。

      可以将hadoop的系统理解为一个网盘。

      #命令方式下载jdk并重命名为jdk1.7

      hadoop fs –get hdfs://whaozl001:9000/jdk /home/jdk1.7

      #解压这个文件

      tar –zxvf jdk1.7

    13. 测试MapReduce和YARN

      /home/haozhulin/install/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar下就是多个mapreduce的例子,里面有一个wordcount例子

      #查看后面还需要跟哪些参数,wordcount需要一个输入一个输出

      hadoop jar hadoop-mapreduce-expamples-2.2.0.jar

      #弄一个words文件,里面有很多单词,将其上传到hdfs

      hadoop fs –put /words hdfs://whaozl001:9000/words

      #显示hdfs下的所有文件

      hadoop fs –ls hdfs://whaozl001:9000

      #测试examples中的wordcount例子

      hadoop jar hadoop-mapreduce-expamples-2.2.0.jar wordcount hdfs://whaozl001:9000/words hdfs://whaozl001:9000/wcount

      #查看结果

      hadoop fs –ls hdfs://whaozl001:9000

    14. 检验错误

      错误都保存在/home/haozhulin/install/hadoop-2.2.0/logs目录下

      cd /home/haozhulin/install/hadoop-2.2.0/

      ls

      cd logs

  • 相关阅读:
    International Collegiate Programming Contest 2019 Latin American Regional Contests E. Eggfruit Cake(思维/尺取)
    Codeforces Round #673 (Div. 2) C. k-Amazing Numbers(思维)
    2020 计蒜之道 预赛 第一场 A、B
    生成字符画
    我对目前国内教学的看法
    Stm32 调试时发生HardFault_Handler
    python异常处理
    windows nfs客户端配置
    linux服务器删除文件后df -h查看文件系统占比无变化
    python ssh小程序
  • 原文地址:https://www.cnblogs.com/whaozl/p/4869495.html
Copyright © 2011-2022 走看看