• 搭建Hadoop集群(centos6.7+hadoop-2.7.3)


      hadoop集群有三种运行模式:单机模式、伪分布模式、完全分布模式。我们这里搭建第三种完全分布模式,即使用分布式系统,在多个节点上运行。

    1 环境准备

    1.1 配置DNS

      进入配置文件,添加主节点和从节点的ip映射关系:

    # vim /etc/hosts
    
    10.0.0.45  master
    10.0.0.46  slave1
    10.0.0.47  slave2

    1.2 关闭防火墙

    # service iptables stop    //关闭服务
    # chkconfig iptables off    //关闭开机自启动

    1.3 配置免密码登录

     (1)每个节点都首先进入/root/.ssh目录下,生成密钥:

    
    
    # ssh-keygen -t rsa  //输入命令之后连续回车就行了

    (2)在主节点上,将公钥拷贝到一个特定文件中:

    
    
    [root@master .ssh]# cp id_rsa.pub authorized_keys

    (3)将每个从节点上生成的公钥复制到主节点上:

    [root@slave1 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave1.pub
    [root@slave2 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave2.pub

    (4)在主节点上合并从节点的公钥:

    
    
    [root@master .ssh]# cat id_rsa_slave1.pub>>authorized_keys 
    [root@master .ssh]# cat id_rsa_slave2.pub>>authorized_keys

    (5)将主节点上合并后的公钥复制到从节点上:

    
    
    [root@master .ssh]# scp authorized_keys slave1:/root/.ssh
    [root@master .ssh]# scp authorized_keys slave2:/root/.ssh

       配置完成,在各个节点上进行ssh访问,若无需密码就能访问,则配置成功。

    1.4 配置java环境

       首先下载jdk,保存到指定目录。设置环境变量:

    # vim  /etc/profile
    export JAVA_HOME=/usr/java/jdk1.8.0_112 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
    # source /etc/profile //使配置生效

       验证配置是否成功:

    # java -vesrion

      若出现下面的配置信息则表示java环境配置成功了:

    2 部署Hadoop集群

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

    2.1 安装Hadoop

      下载hadoop安装包,下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/,并解压:

    # tar xvf hadoop-2.7.3.tar.gz

      配置环境变量:

    # vim /etc/profile
    
    export HADOOP_HOME=/home/hadoop-2.7.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

    2.2 修改配置文件

      进入Hadoop的配置文件目录$HADOOP_HOME/etc/hadoop,可以看到有许多配置文件,Hadoop集群配置主要是对以下几个文件的修改:

    • core-site.xml

    • hdfs-site.xml
    • yarn-site.xml
    • mapred-site.xml
    • slaves、hadoop-env.sh、yarn-env.sh

    下面就介绍文件的具体配置,按实际情况修改配置信息:

    (1)core-site.xml

    <configuration>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
            </property>
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop _tmp</value>
            </property>
    </configuration>

    (2)hdfs-site.xml

    <configuration>
           <property>
               <name>dfs.permissions.enabled</name>
               <value>false</value>
            </property>
            <property>
                <name>dfs.support.append</name>
                <value>true</value>
            </property>
            <property>
                <name>dfs.replication</name>
                <value>2</value>
            </property>
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:///home/dfs_data</value>
            </property>
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///home/dfs_name</value>
            </property>
            <property>
                <name>dfs.namenode.rpc-address</name>
                <value>master:9000</value>
            </property>
            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>slave1:50090</value>
            </property>
            <property>
                <name>dfs.namenode.secondary.https-address</name>
                <value>slave1:50091</value>
            </property>
    <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>

    (3)yarn-site.xml

    <configuration>
            <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
            </property>
            <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
            </property>
            <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>20480</value>
            </property>
            <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>10240</value>
            </property>
            <property>
                <name>yarn.nodemanager.resource.cpu-vcores</name>
                <value>5</value>
            </property>
            <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
            </property>
    </configuration>

    (4)mapred-site.xml

    <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
    </configuration>

    (5)slaves

        启动Hadoop集群需要读取该文件,以确定从节点主机名,从而启动DataNode、NodeManager等守护进程,因此需要在该文件中添加从节点主机名。

    slave1
    slave2

    (6)hadoop-env.sh

       修改如下内容:

    export JAVA_HOME=/usr/java/jdk1.8.0_112

    (7)yarn-env.sh

      添加如下内容:

    export JAVA_HOME=/usr/java/jdk1.8.0_112

      到此,完成了主节点上所有的配置,只需将这些配置信息复制到各个从节点:

    # scp /home/hadoop-2.7.3/etc/hadoop/* slave1:/home/hadoop-2.7.3/etc/hadoop/
    # scp /home/hadoop-2.7.3/etc/hadoop/* slave2:/home/hadoop-2.7.3/etc/hadoop/

    2.3 启动Hadoop

    (1)第一次启动HDFS时需要初始化,在主节点上执行:

    # cd /home/hadoop-2.7.3   
    # ./bin/hadoop namenode -format

    (2)启动HDFS:

    # ./sbin/start-dfs.sh

      成功启动后,访问http://master:50070/即可看到HDFS Web界面。

    (3) 启动YARN:

    # ./sbin/start-yarn.sh

      成功启动后,访问http://master:8088/即可看到YARN Web界面。

      这里也可以直接执行下面的命令一键启动,但第一次启动不建议这样做:

    # start-all.sh

      到此,Hadoop集群环境已经搭建好了,可以根据自己的业务需求,在上面愉快的“玩耍”了。

  • 相关阅读:
    LeetCode 275. H-Index II
    LeetCode 274. H-Index
    LeetCode Gray Code
    LeetCode 260. Single Number III
    LeetCode Word Pattern
    LeetCode Nim Game
    LeetCode 128. Longest Consecutive Sequence
    LeetCode 208. Implement Trie (Prefix Tree)
    LeetCode 130. Surrounded Regions
    LeetCode 200. Number of Islands
  • 原文地址:https://www.cnblogs.com/qiuyuesu/p/8398091.html
Copyright © 2020-2023  润新知