以下步骤在三台机器上相同操作:
第一步,基础环境准备
1. 创建hadoop用户,设置密码
uaseradd hadoop
passwd hadoop
2. 下载hadoop
https://hadoop.apache.org/releases.html
我这里下载的是3.1.4版本
3. 上传、解压
tar -xvf hadoop-3.1.4.tar
4. 修改/etc/hosts
172.30.251.225 node1
172.30.251.226 node2
172.30.251.227 node3
5.修改/etc/profile,增加以下配置
#Hadoop 3.1.4
export HADOOP_PREFIX=/home/hadoop/hadoop-3.1.4
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export HADOOP_INSTALL=$HADOOP_PREFIX
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native
export HADOOP_CONF_DIR=$HADOOP_PREFIX
export HADOOP_PREFIX=$HADOOP_PREFIX
export HADOOP_LIBEXEC_DIR=$HADOOP_PREFIX/libexec
export JAVA_LIBRARY_PATH=$HADOOP_PREFIX/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
要执行source /etc/profile配置才能生效
第二步,搭建HDFS.
1. vim /home/hadoop/hadoop-3.1.4/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
<description>HDFS的URI,文件系统://namenode标识:端口</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/opt/hadoop</value>
<description>namenode上传到hadoop的临时文件夹</description>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>3600</value>
<description>用来设置检查点备份日志的最长时间</description>
</property>
</configuration>
这里注意,三台机器只需要指定一台机器作为namenode,这里选择的是node1,三台机器要相同配置。
2. vim /home/hadoop/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>副本个数,默认配置是3,应小于datanode机器数量</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-3.1.4/hdfs/name</value>
<description>datanode上存储hdfs名字空间元数据</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-3.1.4/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
</configuration>
3. vim /home/hadoop/hadoop-3.1.4/etc/hadoop/hadoop-env.sh
设置java_home(54行左右)
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
4. vim /home/hadoop/hadoop-3.1.4/etc/hadoop/workers
node1
node1
node1
第三步、搭建Yarn
1. vim /home/hadoop/hadoop-3.1.4/etc/yarn-site.xml
<!--固定写法-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定哪台机器为ResourceManager-->
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>node2</value>
</property>
这里注意,三台机器只需要指定一台机器作为resourcemanager,这里选择的是node2,三台机器要相同配置。(namenode和resourcemanager尽量选择不同机器)
2. vim /home/hadoop/hadoop-3.1.4/etc/mapred-site.xml
<property>
<description>The hostname of the RM.</description>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
三、集群启动
启动之前必须要三台机器之间建立ssh互信。
1. 启动hdfs
在namenode节点机器,执行:
格式化namenode:
/home/hadoop/hadoop-3.1.4/bin/hadoop namenode -format
启动hdfs集群:
/home/hadoop/hadoop-3.1.4/sbin/start-dfs.sh
启动成功后可以使用jps命令查看进程情况,在namenode节点应该能看到namenode和datanode进程,其他节点能看到datanode进程。
2. 启动yarn
在resourcemanager节点机器,执行:
/home/hadoop/hadoop-3.1.4/sbin/start-yarn.sh
启动成功后可以使用jps命令查看进程情况,在resourcemanager节点应该能看到ResourceManager和NodeManager进程,其他节点能看到NodeManager进程。
[hadoop@localhost ~]$ jps
15824 NameNode
16259 SecondaryNameNode
18043 Jps
15981 DataNode
17630 NodeManager
如果启动不成功,可以在/home/hadoop/hadoop-3.1.4/logs目录下查看日志,留意报错内容。
如果提示jps命令找不到,执行yum install java-1.8.0-openjdk-devel.x86_64安装devel(CentOS操作系统环境)
启动成功后可以通过浏览器8088端口看Yarn.