zoukankan      html  css  js  c++  java
  • hadoop多机安装YARN

    hadoop伪分布安装称为测试环境安装,多机分布称为生成环境安装。以下安装没有进行HA(热备)和Federation(联邦)。除非是性能需要,否则没必要安装Federation,HA可以一试,涉及到Zookeeper自动切换。

    1. 准备工作

      1) linux优化

      ①安装虚拟机linux系统,采用1.2 中的CentOS调优所有步骤,关闭防火墙;②设置网络为桥接模式(编辑虚拟机设置—>网络适配器),查看自动分配ip或手动配置ip;③等JDK安装的JAVA_HOME(见1.3.1)和HADOOP_HOME(见2.1.6(8))配置好后,直接复制虚拟机,将whaozl001的虚拟机系统复制成3个文件夹作为DataNode的数据节点的linux主机,网卡要重新删除和编辑,见2.1.7(3);④配置NameNode节点的主机whaozl001到其他主机ssh免密码登录,见2.1.7;⑤注意:在配置过程中所有的property中的name和value值都不能存在空格、配置中的删除线部分表示可不添加进去。

      2) 配置节点

      对所有Node,配置vim /etc/hosts添加10.30.30.1    whaozl001等ip映射;

      10.30.30.1 whaozl001

      10.30.30.5 whaozl005

      10.30.30.6 whaozl006

      10.30.30.7 whaozl007

      10.30.30.8 whaozl008

      这里配置4个DataNode,1个NameNode,给每个节点主机修改主机名(虚拟机名称、ip映射名、linux主机名):

       

      主机名

      ip地址(内网)

      linux用户名

      密码

      充当角色

      NameNode

      whaozl001

      10.30.30.1

      haozhulin

      123456 

      nn/snn/rm 

      DataNode

      whaozl005

      10.30.30.5

      haozhulin 

      123456 

      dn/nm 

      DataNode

      whaozl006

      10.30.30.6

      haozhulin 

      123456 

      dn/nm 

      DataNode

      whaozl007

      10.30.30.7

      haozhulin 

      123456 

      dn/nm 

      DataNode

      whaozl008

      10.30.30.8

      haozhulin 

      123456 

      dn/nm 

      虚拟机名称就是虚拟机文件夹名。用户均为haozhulin,其在linux的/home目录下有一个haozhulin文件夹(用户文件夹)。在cluster中充当的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)。

    2. 解压

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

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

      chmod +x hadoop-2.2.0.tar.gz

      ./hadoop-2.2.0.tar.gz

      配置之前,在whaozl001主机的/home/haozhulin/install/hadoop-2.2.0/下建立三个文件夹:~/dfs/name、~/dfs/data、~/temp;

      接下来修改/home/haozhulin/install/hadoop-2.2.0/etc/hadoop/下的7个文件。

      hadoop-env.sh

      core-site.xml

      hdfs-site.xml

      mapred-site.xml

      yarn-site.xml

      slaves

      yarn-env.sh

    3. 修改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_09

    4. 修改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>file:///home/haozhulin/install/hadoop-2.2.0/tmp</value>

      </property>

      <!--指定hadoop运行的流文件的缓冲区,单位B,这里设置为128KB,默认4KB-->

      <property>

          <name>io.file.buffer.size</name>

          <value>131072</value>

      </property>

      <property>

          <name>hadoop.proxyuser.haozhulin.hosts</name>

          <value>*</value>

      </property>

      <property>

          <name>hadoop.proxyuser.haozhulin.groups</name>

          <value>*</value>

      </property>

    5. 修改hdfs-site.xml

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

      <!--HA就不需要secondary咯,这里不是HA,就需要配置Secondaryhtpp通信地址-->

      <property>

          <name>dfs.namenode.secondary.http-address</name>

          <value> whaozl001:9001</value>

      </property>

      <property>

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

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

      </property>

      <property>

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

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

      </property>

      <!--指定HDFS存在block的副本数量,默认值是3个,现有4个DataNode,该值不大于4即可-->

      <property>

          <name>dfs.replication</name>

          <value>2</value>

      </property>

      <property>

          <name>dfs.webhdfs.enabled</name>

          <value>true</value>

      </property>

    6. 修改mapred-site.xml

      从template命名mapred-site.xml后<configuration></configuration>中插入:

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

      <property>

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

          <value>yarn</value>

      </property>

      <property>

          <name>mapreduce.jobhistory.address</name>

          <value>whaozl001:10020</value>

      </property>

      <property>

          <name>mapreduce.jobhistory.webapp.address</name>

          <value> whaozl001:19888</value>

      </property>

    7. 修改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>

      <property>

          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

          <value>org.apache.hadoop.mapred.ShuffleHandler</value>

      </property>

      <property>

          <name>yarn.resourcemanager.address</name>

          <value>whaozl001:8032</value>

      </property>

      <property>

          <name>yarn.resourcemanager.scheduler.address</name>

          <value> whaozl001:8030</value>

      </property>

      <property>

          <name>yarn.resourcemanager.resource-tracker.address</name>

          <value> whaozl001:8031</value>

      </property>

      <property>

          <name>yarn.resourcemanager.admin.address</name>

          <value> whaozl001:8033</value>

      </property>

      <property>

          <name>yarn.resourcemanager.webapp.address</name>

          <value> whaozl001:8088</value>

      </property>

    8. 修改slaves

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

      vim etc/hadoop/slaves

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

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

      #slaves文件中记录所有的slave节点,写入以下内容

      whaozl005

      whaozl006

      whaozl007

      whaozl008

    9. 修改yarn-en.sh

      同修改hadoop-env.sh,修改里面的JAVA_HOME值。

    10. 将配置复制到其他节点

      这里可以写一个shell脚本进行操作(有大量节点时比较方便)。

      scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl005:~/

      scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl006:~/

      scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl007:~/

      scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl008:~/

      scp –r 表示递归到目录和目录中文件远程复制到目标主机,~表示当前用户目录(用户目录就是保存在/home下)。

    11. 格式化namenode

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

      cd /home/haozhulin/install/hadoop-2.2.0

      #格式化namenode

      ./bin/hdfs namenode –format    

    12. 启动hadoop

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

      cd /home/haozhulin/install/hadoop-2.2.0

      #启动hdfs

      ./sbin/start-dfs.sh

      #jps可查看进程

      #此时在whaozl001上面运行的进程有namenode secondarynamenode

      #whaozl005/whaozl006/whaozl007/whaozl008上运行的进程有datanode

      #启动yarn

      ./sbin/start-yarn.sh

      #此时在whaozl001上面有namenode secondarynamenode resourcemanager

      #whaozl005/whaozl006/whaozl007/whaozl008有:datanode nodemanaget

      了解hadoop运行情况:

      #查看集群状态

      ./bin/hdfs dfsadmin –report

      #查看文件块组成

      ./bin/hdfsfsck / -files –blocks

      #查看HDFS:

      http://10.30.30.1:50070

      #查看RM

      http://10.30.30.1:8088

    13. 测试

      #先在hdfs上创建一个文件夹

      ./bin/hdfs dfs –mkdir /input

      #测试案例

      ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter /input

  • 相关阅读:
    字符串倒序
    字符串反转问题
    linux系统性能分析
    操作系统基础知识
    两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
    用加法模拟乘法
    2015年最新中国知网CNKI免费账号直接入口
    nginx模块开发(18)—日志分析
    nginx基本配置
    三层架构和MVC
  • 原文地址:https://www.cnblogs.com/whaozl/p/4869507.html
Copyright © 2011-2022 走看看