CentOS 7 的hadoop-3.0.3集群环境搭建

一、基础环境

说明:1.本文基于CentOS 7 操作系统,CentOS-7-x86_64-Minimal-1804.iso。

2.hadoop使用的版本是hadoop-3.0.3.tar.gz。

注:附上本人已搭建好的Hadoop集群环境的master主机文件,可下载后克隆另外两slave从机,即可。

链接: https://pan.baidu.com/s/16lXWV4-JtAXC1BFyVTgAFg 提取码: 3923 复制这段内容后打开百度网盘手机App,操作更方便哦

 

 

在Linux上安装Hadoop之前,需要准备好如下基础环境配置:

1. 创建3台虚拟机,分别命名为:master(主节点)、slave1(从节点)、slave2(从节点);

2. 分别配置好3台虚拟机的静态IP,我的:master(192.168.70.10)、slave1(192.168.70.20)、slave2(192.168.70.30);

3. 分别将3台虚拟机重名主机名,并做好IP与主机名的域名映射;

4. 关闭3台虚拟机的防火墙,配置好3台机器的免密登录(SSH);

5. 将3台虚拟机进行网络时间同步;

6. 3台虚拟机都需安装同版本的JDK,要求安装路径绝对一致。

注:jdk配置文件参考

#JAVA
JAVA_HOME=/usr/local/jdk1.8.0_191
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

一、hadoop安装配置

注:以下操作都是在master主机(namenode)上完成,除非特别申明。

1.使用rz命令上传hadoop-3.0.3.tar.gz压缩包至master主机,建议在master主机根目录下建立目录/data,用来存放hadoop解压文件;

建立目录命令:

mkdir data

解压压缩包命令:(/data为指定的目录)

tar -zxvf hadoop-3.0.3.tar.gz -C /data

2.配置(全局)环境变量:命令:

vi /etc/profile

配置内容:

#HADOOP
HADOOP_HOME=/root/data/hadoop-3.0.3
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME
export PATH
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

#避免因为缺少用户定义造成的错误
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

注:~/.bashrc(局部)配置文件不要做任何改动

3.然后将这些目录通过scp命令拷贝到Slave1和Slave2的相同目录下

命令:

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

然后在3台虚拟机上分别运行命令:

source /etc/profile

4.补全配置文件

进入hadoop-3.0.3的配置目录:

cd /root/data/hadoop-3.0.3/etc/hadoop

a.在hadoop-env.sh文件上添加:

export JAVA_HOME=/usr/local/jdk1.8.0_191

b.在workers文件上,删除localhost,加入slave虚拟机的名称一行一个。例如我的是

slave1
slave2

c、创建文件目录

为了便于管理,给Master的hdfs的NameNode、DataNode及临时文件,在用户目录下创建目录:

mkdir /data/hdfs/tmp
mkdir /data/hdfs/var
mkdir /data/hdfs/logs
mkdir /data/hdfs/dfs
mkdir /data/hdfs/data
mkdir /data/hdfs/name
mkdir /data/hdfs/checkpoint
mkdir /data/hdfs/edits

注:一定要按要求创建,因为上述2)、配置文件中使用到该部分的目录。

然后将这些目录通过scp命令拷贝到Slave1和Slave2的相同目录下。

scp -r /data/hdfs root@slave1:/data
scp -r /data/hdfs root@slave2:/data

d.依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml文件.

1)、core-site.xml

<configuration>

<property>
  <name>fs.checkpoint.period</name>
  <value>3600</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
  <value>67108864</value>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>file:/root/data/hdfs/tmp</value>
</property>
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
</property>

</configuration>

2)、hdfs-site.xml

<configuration>

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

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/root/data/hdfs/name</value>
</property>

<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/root/data/hdfs/data</value>
</property>

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:50090</value>
</property>

<property>
  <name>dfs.namenode.http-address</name>
  <value>master:50070</value>
  <description>
    The address and the base port where the dfs namenode web ui will listen on.
    If the port is 0 then the server will start on a free port.
  </description>
</property>

<property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>file:/root/data/hdfs/checkpoint</value>
</property>

<property>
  <name>dfs.namenode.checkpoint.edits.dir</name>
  <value>file:/root/data/hdfs/edits</value>
</property>

</configuration>

3)、mapred-site.xml

<configuration>

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

</configuration>

4)、yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<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.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandle</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tarcker.address</name>
  <value>master:8025</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>master:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>master:8040</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>

5.将master(主机)上的拷贝hadoop安装文件到子节点,在主节点(master)上执行:

scp -r /data/hadoop-3.0.3 root@slave1:/data
scp -r /data/hadoop-3.0.3 root@slave2:/data

6.启动,在master上进入cd /data/hadoop-3.0.3/etc/hadoop目录,运行:(不报错并在倒数五六行左右有一句 successfully。。。。即成功)

hdfs namenode -format

注:此命令在初次搭建后,执行一次即可,请勿重复执行!!!若重复(两次及以上)执行,则需删除hdfs目录下的临时文件(三台机器都要删除),再重新操作。

7.推荐使用命令:

start-dfs.sh
start-yarn.sh

启动集群,或者使用命令:(二选一)

start-all.sh

8.运行完后输入jps可看到master下的节点:

6032 ResourceManager
5793 SecondaryNameNode
5538 NameNode
6355 Jps

在slave1上输入jps可以看到从节点:

2440 Jps
2316 NodeManager
2206 DataNode

在slave2上输入jps可以看到从节点:

2342 Jps
2217 NodeManager
2107 DataNode

如此表示成功。

9.测试,打开浏览器输入:http://192.168.70.10:50070

10.打开浏览器输入:http://192.168.70.10:8088

至此,Hadoop集群环境搭建成功!!!

三、注意事项

1.jps实际上是Java进程,若显示“不是命令”,则原因是jdk地址路径问题,找到配置文件,检查更新。

2.三台机器一定要设定ssh登录。

3.Linux系统一定要关闭selinux。

 

posted @ 2021-04-01 11:48  爱我哦  阅读(1277)  评论(0编辑  收藏  举报