• 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
  • 相关阅读:
    使用nmon进行系统监控
    linux中内存使用原理
    测试网站访问速度的5个方法
    手机站点击商务通无轨迹解决方法
    PHP开启伪静态配置
    Phpcms V9当前栏目及所有二级栏目下内容调用标签
    手机访问网跳转到手机端
    移动端web开发技巧 -- 转载
    php错误:You don't have permission to access / on this server.
    Navicat for MySQL使用手记(上)--创建数据库和表
  • 原文地址:https://www.cnblogs.com/shireenlee4testing/p/10366017.html
Copyright © 2020-2023  润新知