基本环境准备

配置Java环境

解压JDK安装包

tar -zxvf OpenJDK8U-jdk_x64_linux_openj9_linuxXL_8u282b08_openj9-0.24.0.tar.gz -C /opt

配置环境变量

vi /etc/profile
# 在文件下方添加
export JAVA_HOME=/opt/jdk8u282-b08
export JRE_HOME=/opt/jdk8u282-b08/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 输入:wq!退出
source /etc/profile # 使用环境变量配置

配置hosts

所有机器都要配置,以便设置免密登录

编辑/etc/hosts:

master_ip_here master
slave1_ip_here slave1
slave2_ip_here slave2

配置免密登录

  1. 在所有节点上生成rsa公钥和私钥: ssh-keygen -t rsa ssh-keygen
  2. 将slave节点上生成的公钥用scp命令传到master节点上:
scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave1
scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave2

scp 3. 在master上生成authorized_keys,即把生成的公钥输入进一个文件:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys
  1. 将master上的authorized_keys用scp命令传到slave节点上:
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@slave2:~/.ssh/authorized_keys
  1. 测试免密登录:
ssh master
ssh slave1
ssh slave2

Hadoop配置

首先上传安装包至所有机器,再解压至opt目录

tar -zxvf hadoop-2.9.2.tar.gz -C /opt
mv /opt/hadoop-2.9.2 /opt/hadoop

配置Java路径

在master上编辑hadoop-env.sh

cd /opt/hadoop/etc/hadoop/
vi hadoop-env.sh
=> export JAVA_HOME=/opt/jdk8u282-b08

编辑Hadoop配置文件

  1. 在master上配置core-site.xml
cd /opt/hadoop/etc/hadoop/
vi core-site.xml

在configuration标签内添加:

<property>
	<name>fs.defaultFS</name>
	<value>hdfs://master:9000</value>
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/hadoop/tmp</value> <!-- 这里指的是hadoop安装目录的tmp目录 -->
</property>
  1. 在master上配置hdfs-site.xml
cd /opt/hadoop/etc/hadoop/
vi hdfs-site.xml

在configuration标签内添加:

<property>
	<name>dfs.replication</name>
	<value>3</value> <!-- 两个slave节点加上一个主节点,所以为3 -->
</property>
<property>
	<name>dfs.permissions</name>
	<value>true</value>
</property>
  1. 在master上配置yarn-site.xml
cd /opt/hadoop/etc/hadoop/
vi yarn-site.xml

在configuration标签内添加:

<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>master</value>
</property>
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
  1. 在master上配置slaves
cd /opt/hadoop/etc/hadoop/
vi slaves

删除里面的localhost,并添加slave节点

slave1
slave2
  1. 将编辑好的配置文件发送到slave节点
scp -r /opt/hadoop/etc/hadoop slave1:/opt/hadoop/etc
scp -r /opt/hadoop/etc/hadoop slave2:/opt/hadoop/etc

distribute

配置Hadoop环境变量

在所有节点上都编辑/etc/profile,并在末尾添加:

export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

保存后使用source /etc/profile让环境变量生效

运行Hadoop

格式化namenode

在master上执行格式化命令

hdfs namenode -format

format

启动相关组件

  1. 启动hdfs。在master上执行:
cd /opt/hadoop/sbin
./start-dfs.sh

执行后使用jps命令,应该会输出三行 start-dfs 2. 启动yarn

cd /opt/hadoop/sbin
./start-yarn.sh

执行后使用jps命令,应该会输出四行 start-yarn 3. 在slave上执行jps,查看是否开成功了

[root@slave1 ~]# jps
610 Jps
235 DataNode
379 NodeManager

测试Hadoop

需要放行防火墙

systemctl stop firewalld.service

打开master的web界面

http://master_ip_here:50070 web

测试命令

hadoop fs -ls /
hadoop fs -mkdir /test
hadoop fs -ls /

test