基于VMware搭建Hadoop-2.7.5分布式集群环境

本文是主要参考了几篇博客之后才搭建成功的,目的只是记录搭建过程,主要引用文章请参考博客。这里对原文中略作改动以适应当前环境需求。
ps:简书什么时候能够改进一下自己的MarkDown文本编辑能力,排版能力弱爆了!!!

1.虚拟机安装Ubuntu-16.04.3

虚拟机:VMware Workstation 12
内存:2G
网络:桥接模式
系统:Ubuntu-16.04.3
节点(局域网):
    192.168.1.104    master      hadoop/namenode/resourcemanager
    192.168.1.105    slave_01   hadoop/datanode/secondnamenode
    192.168.1.106    slave_02   hadoop/datanode

2.主、从虚拟机设置及验证

sudo -su    切换到root权限。
gedit /etc/hostname    编辑对应节点虚拟机名称
gedit /etc/hosts    添加如下内容

192.168.1.104    master
192.168.1.105    slave_01
192.168.1.106    slave_02

systemctl stop firewalld.service    关闭防火墙
systemctl disable firewalld.service    禁止防火墙开机启动
ping <hostname>    测试各节点虚拟机之间是否联通
(ctrl+c退出PING命令)

*3.安装vim编辑器

感觉系统自带的vi并不好用,可以利用apt-get install vim来安装vim编辑器,以下内容编辑默认使用vim。

4.JDK安装及环境设置

新版本的Ubuntu系统库中没有1.7及之前版本jdk。在布置阶段我才用了1.8版本jdk,并没有发生错误。不知道后续MapReduce应用开发过程中是否顺利之情,待解决。
apt-get install openjdk-1.8-jdk-headless    安装jdk环境
vim /etc/profile    添加以下环境变量

export $JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export $JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

:wq    保存退出编辑
source /etc/profile    使新的环境变量生效

5.安装并配置SSH

该版本系统中默认没有安装SSH Shell,所以需要手动安装一下
apt-get install openssh-server    安装ssh shell
ps -e|grep ssh    查看是否开启服务
ssh localhost    验证
ssh-keygen -t rsa    各节点虚拟机执行该命令生成密钥对
cd /root/.ssh目录
cat id_dsa.pub>>authorized_keys    导出认证文件
scp authorized_keys root@<hostname>:~/.ssh/    拷贝认证文件到节点虚拟机
chmod 600 .ssh/authorized_keys    修改认证权限模式
ssh slave_01验证是否免密成功

6.安装并配置Hadoop分布式集群

1)在master主机上进入/opt目录,创建soft目录并进入。利用命令下载hadoop-2.7.5的压缩文件
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz    解压
2)创建如下目录
mkdir /dfs
mkdir /dfs/name
mkdir /dfs/data
mkdir /tmp
3)配置文件:hadoop-env.sh(/opt/soft/hadoop-2.7.5/etc/hadoop)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
4)配置文件:yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
5)配置文件:slaves

slave_01
sleve_02

6)配置文件:core-site.xml

<configuration>  
    <property>  
        <name>fs.defaultFS</name>  
        <value>hdfs://master:9000</value>  
    </property>  
    <property>  
        <name>io.file.buffer.size</name>  
        <value>131072</value>  
    </property>  
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>file:/opt/soft/hadoop-2.7.5/tmp</value>  
        <description>Abase for other temporary directories.</description>  
    </property>  
</configuration>

8)配置文件:hdfs-site.xml

<configuration>  
       <property>  
                <name>dfs.namenode.secondary.http-address</name>  
               <value>master:9001</value>  
       </property>  
     <property>  
             <name>dfs.namenode.name.dir</name>  
             <value>file:/opt/soft/hadoop-2.7.5/dfs/name</value>  
       </property>  
      <property>  
              <name>dfs.datanode.data.dir</name>  
              <value>file:/opt/soft/hadoop-2.7.5/dfs/data</value>  
       </property>  
       <property>  
               <name>dfs.replication</name>  
               <value>2</value>  
        </property>  
        <property>  
                 <name>dfs.webhdfs.enabled</name>  
                  <value>true</value>  
         </property>  
</configuration>  

9)配置文件:mapred-site.xml
先拷贝模板文件
cp mapred-site.xml.template mapred-site.xml

<configuration>  
         <property>                                                                    
                  <name>mapreduce.framework.name</name>  
                  <value>yarn</value>  
         </property>  
         <property>  
                  <name>mapreduce.jobhistory.address</name>  
                  <value>master:10020</value>  
         </property>  
         <property>  
                  <name>mapreduce.jobhistory.webapp.address</name>  
                  <value>master:19888</value>  
         </property>  
</configuration>

10)配置文件:yarn-site.xml

<configuration>  
        <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>master:8032</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.scheduler.address</name>  
               <value>master:8030</value>  
       </property>  
       <property>  
            <name>yarn.resourcemanager.resource-tracker.address</name>  
             <value>master:8031</value>  
      </property>  
      <property>  
              <name>yarn.resourcemanager.admin.address</name>  
               <value>master:8033</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.webapp.address</name>  
               <value>master:8088</value>  
       </property>  
</configuration>

11)将上述文件拷贝到另外两个虚拟机的相同目录当中替换原有文件
12)编辑环境变量
添加
export HADOOP_HOME=/opt/soft/hadoop-2.7.5
修改PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
生效上述环境变量
13)
hdfs namenode -format    格式化namenode
start-all.sh    启动hadoop
jps    查看是否启动成功

7.提交并执行验证任务

在master虚拟机上创建数据文件存储目录
hdfs dfs -mkdir -p /user/<username>/input    这里注意

/user/<username>

文件系统格式,否则运行错误。

hdfs dfs -put EXAMPLEFILE  /user/root/input

提交数据文件。
提交任务

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /user/root/input /user/root/output/result

查看结果

hdfs dfs -cat /data/output/result/part-r-00000 

至此,已完成集群环境下hadoop分布式系统搭建。

    原文作者:萧雨山
    原文地址: https://www.jianshu.com/p/eb34d368cad5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞