自己动手搭建一个Hadoop集群,对于Hadoop的学习、理解非常有帮助,从中能够学习到Hadoop常用的端口、配置文件、配置信息等内容。

准备工作

预先准备

  1. 四台机器:master、slave1、slave2、slave3;
  2. 在master上开通外网访问权限,slave1\slave2\slave3无需外网访问权限;
  3. 下载JDK1.8.0_111;
  4. 在master上安装vim\wget\telnet等组件;
  5. 打通MASTER与SLAVE之间的通道(生成Key/复制Key):ssh-keygen -t rsa;
  6. 将Master与Slave的IP地址添加到/etc/hosts里面:
    172.198.0.12 MASTER
    172.198.0.13 SLAVE1
    172.198.0.14 SLAVE2
    172.198.0.15 SLAVE3

安装JDK

  1. 版主下载的是tar文件,因此只需要解压即可;
  2. 配置/etc/profile文件:export JAVA_HOME=/home/appuser/jdk1.8.0_111/, export PATH=$PATH:$JAVA_HOME/bin;
  3. 配置用户.bash_profile: export JAVA_HOME=/home/appuser/jdk1.8.0_111;

如果想要配置立刻生效,可以使用source /etc/profile命令。

配置Hadoop

安装思路:首先在MASTER节点中配置完成,然后复制到SLAVE节点中。

配置文件

core-site.xml:


        hadoop.tmp.dir</name>
        /home/appuser/hadoop/tmp</value>
</property>

        fs.default.name</name>
        hdfs://master:9000</value>
</property>
</configuration>

hdfs-site.xml:



        dfs.name.dir</name>
        /home/appuser/hadoop/tmp/namedir</value>
</property>

        dfs.data.dir</name>
        /home/appuser/hadoop/tmp/datadir</value>
</property>

        dfs.replication</name>
        2</value>
</property>

        dfs.http.address</name>
        master:50070</value>
</property>

        dfs.namenode.seconday.http-address</name>
        slave1:50070</value>
</property>

        dfs.webhdfs.enabled</name>
        true</value>
</property>
</configuration>

mapred-site.xml:



        mapred.job.tracker</name>
        master:9001</value>
</property>

        mapreduce.jobhistory.address</name>
        master:10020</value>
</property>

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

        mapreduce.map.tasks</name>
        20</value>
</property>

        mapreduce.reduce.tasks</name>
        20</value>
</property>

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

hadoop-env.sh:

export JAVA_HOME=/home/appuser/jdk1.8.0_111

启动

分发到SLAVE节点

# Copy Hadoop File
scp -r ~/hadoop-2.6.0/ slave1:~/
scp -r ~/hadoop-2.6.0/ slave2:~/
scp -r ~/hadoop-2.6.0/ slave3:~/
# Copy Jdk File
scp -r ~/jdk1.8.0_111/ slave1:~/
scp -r ~/jdk1.8.0_111/ slave2:~/
scp -r ~/jdk1.8.0_111/ slave3:~/

格式化NamdeNode

bin/hadoop namenode -format

如果在Log中出现:successfully …,说明格式化成功。

启动Hadoop集群

~/hadoop-2.6.0/sbin/start-all.sh

  1. 有时候DataNode启动不成功,这时候需要查看对应机器的logs,一般能够找到原因。大部分的原因在于Master与Slave的通讯出现问题,特别是Clone的虚拟机;
  2. NameNode一般会启动成功,如果不能启动成功,可以查看相应的logs,或查看配置是否出现问题。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

Java-API读取CDH-Hadoop-Parquet文件 上一篇
Spark集群配置 下一篇