zoukankan      html  css  js  c++  java
  • Hadoop 2.0完全分布式集群搭建方法(CentOS7+Hadoop 2.7.7)

    本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8。

    一、准备环境

    1. 在VMware workstations上创建4个Linux虚拟机,并配置其静态IP。

    有关【创建Linux虚拟机及配置网络】,请参考这里

    2. 配置DNS(每个节点)

     编辑配置文件,添加主节点和从节点的映射关系。

    #vim /etc/hosts
    192.168.44.3 hadoop01
    192.168.44.4 hadoop02
    192.168.44.5 hadoop03
    192.168.44.6 hadoop04

     3. 关闭防火墙(每个节点)

    #关闭服务
    [root@hadoop01 opt]# systemctl stop firewalld
    #关闭开机自启动
    [root@hadoop01 opt]# systemctl disable firewalld
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

    4. 配置免密码登录
    有关【配置免密码登录方法】,请参考这里

    5. 配置Java环境(每个节点)
    有关【配置java环境方法】,请参考这里

    二、搭建Hadoop完全分布式集群

    在各个节点上安装与配置Hadoop的过程都基本相同,因此可以在每个节点上安装好Hadoop后,在主节点master上进行统一配置,然后通过scp 命令将修改的配置文件拷贝到各个从节点上即可。

    1. 下载Hadoop安装包,解压,配置Hadoop环境变量

    有关【Hadoop安装包下载方法】,请参考这里

    本文下载的Hadoop版本是2.7.7,指定一个目录(比如:/opt),使用rz命令上传Hadoop安装包到Linux系统,解压到指定目录,配置Hadoop环境变量,并使其生效。实现命令如下:

    #解压到/opt目录
    [root@hadoop01 opt]# tar -zxvf hadoop-2.7.7.tar.gz
    #链接/opt/hadoop-2.7.7到/opt/hadoop,方便后续配置
    [root@hadoop01 opt] #ln -s hadoop-2.7.7 hadoop
    #配置Hadoop环境变量
    [root@hadoop02 opt]# vim
    /etc/profile #Hadoop export HADOOP_HOME=/opt/hadoop # 该目录为解压安装目录 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop #保存后,使profile生效 [root@hadoop02 opt]# source /etc/profile

     2. 配置Hadoop环境脚本文件中的JAVA_HOME参数

    #进入Hadoop安装目录下的etc/hadoop目录
    [root@hadoop01 ~]#cd /opt/hadoop/etc/hadoop
    
    #分别在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中添加或修改如下参数:

    [root@hadoop01 hadoop]# vim hadoop-env.sh
    [root@hadoop01 hadoop]# vim mapred-env.sh
    [root@hadoop01 hadoop]# vim yarn-env.sh

    export JAVA_HOME="/opt/jdk"  # 路径为jdk安装路径

     3. 修改Hadoop配置文件

    Hadoop安装目录下的etc/hadoop目录中,需修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves(3.0之后为workers)文件,根据实际情况修改配置信息。

    (1)core-site.xml

     1 <configuration>
     2 <property>
     3     <!-- 配置hdfs地址 -->
     4     <name>fs.defaultFS</name>
     5     <value>hdfs://hadoop01:9000</value>
     6 </property>
     7 <property>
     8     <!-- 保存临时文件目录,需先在/opt/hadoop-2.7.7下创建tmp目录 -->
     9     <name>hadoop.tmp.dir</name>
    10     <value>/opt/hadoop-2.7.7/tmp</value>
    11 </property>
    12 
    13 <property>
    14     <name>hadoop.proxyuser.root.hosts</name>
    15     <value>*</value>
    16 </property>
    17 <property>
    18     <name>hadoop.proxyuser.root.groups</name>
    19     <value>*</value>
    20 </property>
    21 </configuration>

    更多配置信息,请参考core-site.xml

    (2)hdfs-site.xml

     1 <configuration>
     2     <property>
     3         <!-- 主节点地址 -->
     4         <name>dfs.namenode.http-address</name>
     5         <value>hadoop01:50070</value>
     6     </property>
     7     <property>
     8         <name>dfs.namenode.name.dir</name>
     9         <value>file:/opt/hadoop/dfs/name</value>
    10     </property>
    11     <property>
    12         <name>dfs.datanode.data.dir</name>
    13         <value>file:/opt/hadoop/dfs/data</value>
    14     </property>
    15     <property>
    16         <!-- 备份份数 -->
    17         <name>dfs.replication</name>
    18         <value>2</value>
    19     </property>
    20     <property>
    21         <!-- 第二节点地址 -->
    22         <name>dfs.namenode.secondary.http-address</name>
    23         <value>hadoop02:9001</value>
    24     </property>
    25     <property>
    26     <name>dfs.webhdfs.enabled</name>
    27     <value>true</value>
    28     </property>
    29     <property>
    30         <name>dfs.permissions</name>
    31         <value>false</value>
    32         <description>配置为false后,可以允许不要检查权限就生成dfs上的文件,需防止误删操作</description>
    33     </property>
    34 </configuration>

    更多配置信息,请参考hdfs-site.xml

    (3)mapred-site.xml

     1 <configuration>
     2     <property>
     3         <name>mapreduce.framework.name</name>
     4         <value>yarn</value>
     5     </property>
     6     <property>
     7         <name>mapreduce.jobhistory.address</name>
     8         <value>hadoop01:10020</value>
     9     </property>
    10     <property>
    11         <name>mapreduce.jobhistory.webapp.address</name>
    12         <value>hadoop01:19888</value>
    13     </property>
    14 </configuration>

    更多配置信息,请参考mapred-site.xml

    (4)yarn-site.xml

     1 <configuration>
     2     <property>
     3         <name>yarn.nodemanager.aux-services</name>
     4         <value>mapreduce_shuffle</value>
     5     </property>
     6     <property>
     7         <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
     8         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     9     </property>
    10     <property>
    11         <name>yarn.resourcemanager.address</name>
    12         <value>hadoop01:8032</value>
    13     </property>
    14     <property>
    15         <name>yarn.resourcemanager.scheduler.address</name>
    16         <value>hadoop01:8030</value>
    17     </property>
    18     <property>
    19         <name>yarn.resourcemanager.resource-tracker.address</name>
    20         <value>hadoop01:8031</value>
    21     </property>
    22     <property>
    23         <name>yarn.resourcemanager.admin.address</name>
    24         <value>hadoop01:8033</value>
    25     </property>
    26     <property>
    27         <name>yarn.resourcemanager.webapp.address</name>
    28         <value>hadoop01:8088</value>
    29     </property>
    30     
    31     <property>
    32         <name>yarn.nodemanager.resource.memory-mb</name>
    33         <!-- NodeManager中的配置,这里配置过小可能导致nodemanager启动不起来
    34                           大小应该大于 spark中 executor-memory + driver的内存 -->
    35         <value>6144</value>
    36     </property>
    37     <property>
    38         <!-- RsourceManager中配置
    39                           大小应该大于 spark中 executor-memory + driver的内存 -->
    40         <name>yarn.scheduler.maximum-allocation-mb</name>
    41         <value>61440</value>
    42     </property>
    43     <property>
    44         <!-- 使用核数 -->
    45         <name>yarn.nodemanager.resource.cpu-vcores</name>
    46         <value>2</value>
    47     </property>
    48 
    49     <property>
    50         <name>yarn.log-aggregation-enable</name>
    51         <value>true</value>
    52     </property>
    53     <property>
    54         <name>yarn.log-aggregation.retain-seconds</name>
    55         <value>604800</value>
    56     </property>
    57     <property>
    58         <name>yarn.nodemanager.vmem-check-enabled</name>
    59         <value>false</value>
    60         <description>忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不易出问题。</description>
    61     </property>
    62     <property>
    63        <!-- 调度策略,设置为公平调度器 -->
    64        <name>yarn.resourcemanager.scheduler.class</name>
    65        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    66     </property>
    67 </configuration>

    更多配置信息,请参考yarn-site.xml

    (5)slaves文件

    #增加从节点地址(若配置了hosts,可直接使用主机名,亦可用IP地址)
    [root@hadoop01 hadoop]# vim slaves
    hadoop02
    hadoop03
    hadoop04

     4. 将配置好的文件夹拷贝到其他从节点

    [root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop02:/opt/
    [root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop03:/opt/
    [root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop04:/opt/

    5. 初始化 & 启动

    #格式化
    [root@hadoop01 hadoop-2.7.7]# bin/hdfs namenode -format
    
    #启动
    [root@hadoop01 hadoop-2.7.7]# sbin/start-dfs.sh 
    [root@hadoop01 hadoop-2.7.7]# sbin/start-yarn.sh

    6. 验证Hadoop启动成功

    #主节点
    [root@hadoop01 hadoop-2.7.7]# jps
    5895 Jps
    5624 ResourceManager
    5356 NameNode
    
    #从节点
    [root@hadoop02 hadoop]# jps
    5152 SecondaryNameNode
    5085 DataNode
    5245 NodeManager
    5357 Jps
    
    [root@hadoop03 opt]# jps
    5080 DataNode
    5178 NodeManager
    5278 Jps
    
    [root@hadoop04 opt]# jps
    5090 NodeManager
    5190 Jps
    4991 DataNode

    7. Hadoop Web端口访问

    注:先开放端口或直接关闭防火墙

    # 查看防火墙状态
    firewall-cmd --state
    # 临时关闭
    systemctl stop firewalld
    # 禁止开机启动
    systemctl disable firewalld

    在浏览器输入:http://hadoop01:8088,打开Hadoop Web管理页面。

     在浏览器输入:http://hadoop01:50070打开Hadoop Web页面。

      注意:如果输入主节点名称无法打开Web页面,则需要配置Windows上的hosts,路径如下:

    C:WindowsSystem32driversetchosts

    192.168.44.5 hadooop01
    192.168.44.6 hadooop02
    192.168.44.7 hadooop03
    192.168.44.8 hadooop04
  • 相关阅读:
    C/C++多文件之间的变量定义
    PKU POJ 2186 Popular Cows 强连通分量
    重载函数
    ZOJ 2763 Prison Break
    201357 训练赛总结
    hdu 4467 Graph 构造
    201356 训练赛总结
    201353 NEERC 2012, Eastern subregional contest
    2013512 CF 183 总结
    一道动态规划
  • 原文地址:https://www.cnblogs.com/shireenlee4testing/p/10366017.html
Copyright © 2011-2022 走看看