美文网首页我爱编程
Hadoop集群环境搭建(三台)

Hadoop集群环境搭建(三台)

作者: 阿坤的博客 | 来源:发表于2017-06-05 09:37 被阅读906次

    本文讲述的是如何在CentOS 7中搭建Hadoop 2.7.3集群环境,并运行一个wordcount例子

    主要内容:

    • 1.集群规划
    • 2.创建用户配置免登录
    • 3.安装JDK
    • 4.安装Hadoop集群
    • 5.运行WordCount

    相关文章:
    1.VM12安装配置CentOS7
    2.Hadoop集群环境搭建(三台)
    3.Hadoop之本地运行WordCount
    4.Hadoop之集群运行WordCount
    5.Log4j2+Flume+Hdfs日志采集

    1.集群规划

    用户 主机名 ip 安装的软件 进程
    hadoop hadoop1 192.168.2.111 jdk、hadoop namenode、ressourcemanager
    hadoop hadoop2 192.168.2.112 jdk、hadoop datanode、nodemanager、secondnamenode
    hadoop hadoop3 192.168.2.113 jdk、hadoop datanade、nodemanager

    首先我们有三台IP为以上IP的虚拟机,并改好主机名,如果你还没有虚拟主机,请参考:VM12安装配置CentOS7 准备好三台虚拟主机。

    2.创建用户配置免登录

    给三台主机都创建一个hadoop用户用于运行hadoop集群

    2.1.创建专有的用户(root用户)

    创建用户和组(每台主机都需要)

    #先创建组cloud
    groupadd cloud
    #创建用户并加入组cloud
    useradd -g cloud hadoop
    #修改用户hadoop的密码
    passwd hadoop
    

    将hadoop用户加到sodu列表

    #查看/etc/sudoers的权限
    ls -l /etc/sudoers
    

    可以看的是只读权限,如果我们要修改就必须先改变该文件的权限

    #修改权限
    chmod 777 /etc/sudoers
    

    编辑/etc/sudoers加入hadoop用户

    vim /etc/sudoers
    

    找到root用户,并加入hadoop用户如下

    #还原权限
    chmod 440 /etc/sudoers
    

    至此我们成功建立的hadoop用户,并给hadoop用户授予了root权限(注意三台主机都需要执行此操作)

    2.2.建立主机名映射(root用户)

    将本机的主机名和IP建立映射关系(三台主机都需要)

    vi /etc/hosts
    

    加入如下映射关系:

    192.168.2.111 hadoop1
    192.168.2.112 hadoop2
    192.168.2.113 hadoop3

    2.3.配置hadoop免密码登录(hadoop用户)

    切换hadoop用户(namenode进程所在的主机这里为hadoop1)

    su hadoop
    

    生成私钥公钥

    cd ~
    ssh-keygen -t rsa
    

    接下来回车就ok,执行完会在当前文件夹生成.ssh文件夹

    ls -la
    

    将公钥拷贝到其它机器上,实现免密码登录

    ssh-copy-id hadoop1
    ssh-copy-id hadoop2
    ssh-copy-id hadoop3
    

    其间输入yes和主机的密码,回车之后就可以测试免密码登录了

    ssh hadoop2
    

    可以看到不用输密码就可以登录主机hadoop2了

    3.安装JDK

    给三台主机安装jdk,这里只需要在hadoop1上安装jdk,然后将软件和环境变量拷贝到其它主机即可

    3.1.创建文件夹(hadoop用户)

    在/opt/下创建soft-install文件夹来存放安装的软件,创建soft来安装软件

    sudo mkdir soft-install
    sudo mkdir soft
    

    并将文件夹 /opt 权限赋值给 hadoop用户

    sudo chown -R hadoop:cloud /opt/*
    
    image.png

    3.2.上传软件到soft-install并安装

    image.png
    tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt/soft/
    

    修改环境变量

    # 修改配置文件
    sudo vi /etc/profile
    # 在最后下添加
    
    export JAVA_HOME=/opt/soft/jdk1.8.0_91
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    # 刷新配置文件
    source /etc/profile
    

    测试java是否安装成功

    javac
    

    出现以上信息,说明安装成功

    将安装成功的jdk拷贝到其它主机

    scp -r /opt/soft/jdk1.8.0_91 hadoop2:/opt/soft
    scp -r /etc/soft/jdk1.8.0_91 hadoop3:/opt/soft
    

    复制/etc/profile (记得要三台主机刷新环境变量)
    ···
    sudo scp /etc/profile hadoop2:/etc/
    sudo scp /etc/profile hadoop3:/etc/
    ···

    4.安装Hadoop(hadoop用户)

    解压

    tar -zxvf hadoop-2.7.3.tar.gz -C /opt/soft/
    

    删除docs

    cd /opt/soft/hadoop-2.7.3/share
    rm -rf doc/
    

    修改环境变量

    # 修改配置文件
    sudo vi /etc/profile
    # 在最后下添加
    
    export HADOOP_HOME=/opt/soft/hadoop-2.7.3
    export PATH=$PATH:$HADOOP_HOME/bin
    
    # 刷新配置文件
    source /etc/profile
    

    修改配置文件
    这些配置文件全部位于 /opt/soft/hadoop-2.7.3/etc/hadoop 文件夹下

    hadoop-env.sh

    export JAVA_HOME=/opt/soft/jdk1.8.0_91
    

    core-site.xml

    <configuration>
        <!-- 指定HDFS老大(namenode)的通信地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop1:9000</value>
        </property>
        <!-- 指定hadoop运行时产生文件的存储路径 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/soft/hadoop-2.7.3/tmp</value>
        </property>
    </configuration>
    

    hdfs-site.xml

    <configuration>
    
        <!-- 设置namenode的http通讯地址 -->
        <property>
            <name>dfs.namenode.http-address</name>
            <value>hadoop1:50070</value>
        </property>
    
        <!-- 设置secondarynamenode的http通讯地址 -->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop2:50090</value>
        </property>
    
        <!-- 设置namenode存放的路径 -->
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/soft/hadoop-2.7.3/name</value>
        </property>
    
        <!-- 设置hdfs副本数量 -->
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <!-- 设置datanode存放的路径 -->
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/soft/hadoop-2.7.3/data</value>
        </property>
    </configuration>
    

    mapred-site.xml
    必须先

    mv mapred-site.xml.template mapred-site.xml
    
    <configuration>
        <!-- 通知框架MR使用YARN -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    

    yarn-site.xml

    <configuration>
        <!-- 设置 resourcemanager 在哪个节点-->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop1</value>
        </property>
    
        <!-- reducer取数据的方式是mapreduce_shuffle -->
        <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>
    </configuration>
    

    masters
    新建一个masters的文件,这里指定的是secondary namenode 的主机

    hadoop2
    

    slaves

    hadoop2
    hadoop3
    

    创建文件夹:

    cd /opt/soft/hadoop-2.7.3/
    mkdir tmp name data
    

    复制/opt/soft (注意hadoop2、hadoop3上soft目录的权限为hadoop:cloud一致)

    scp -r /opt/soft/hadoop-2.7.3 hadoop2:/opt/soft
    scp -r /opt/soft/hadoop-2.7.3 hadoop3:/opt/soft
    

    复制/etc/profile (记得要三台主机刷新环境变量)

    sudo scp /etc/profile hadoop2:/etc/
    sudo scp /etc/profile hadoop3:/etc/
    

    五、运行WordCount

    1、启动

    第一次启动得格式化,用hadoop用户在hadoop1主机执行命令(没报错就下一步)

    ./bin/hdfs namenode -format
    

    启动dfs

    ./sbin/start-dfs.sh
    

    启动yarn

    ./sbin/start-yarn.sh
    

    查看启动的进程

    可以看到各主机上的进程和我们规划的一样,说明安装成功。

    浏览器测试hdfs

    http://192.168.2.111:50070
    

    浏览器测试yarn

    http://192.168.2.111:8088/cluster/nodes
    

    2、运行wordcount

    创建words.txt文件

    hello world
    hello java
    hello python
    java home
    

    上传至hdfs

    bin/hadoop fs -put words.txt /
    

    查看是否上传成功

    bin/hadoop fs -ls /
    

    也可以通过浏览器查看

    运行wordcount

    ./bin/hadoop jar /opt/soft/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  wordcount hdfs://hadoop1:9000/words.txt hdfs://hadoop1:9000/out
    

    查看运行结果

    bin/hadoop fs -cat /out/part-r-00000
    

    当然也可以通过web界面下载查看,需要在windows的C:\Windows\System32\drivers\etc\hosts加入hadoop主机映射关系

    相关文章

      网友评论

        本文标题:Hadoop集群环境搭建(三台)

        本文链接:https://www.haomeiwen.com/subject/htkufxtx.html