基本环境准备
配置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
配置免密登录
- 在所有节点上生成rsa公钥和私钥:
ssh-keygen -t rsa
- 将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
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
- 将master上的authorized_keys用scp命令传到slave节点上:
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@slave2:~/.ssh/authorized_keys
- 测试免密登录:
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配置文件
- 在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>
- 在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>
- 在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>
- 在master上配置slaves
cd /opt/hadoop/etc/hadoop/
vi slaves
删除里面的localhost,并添加slave节点
slave1
slave2
- 将编辑好的配置文件发送到slave节点
scp -r /opt/hadoop/etc/hadoop slave1:/opt/hadoop/etc
scp -r /opt/hadoop/etc/hadoop slave2:/opt/hadoop/etc
配置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
启动相关组件
- 启动hdfs。在master上执行:
cd /opt/hadoop/sbin
./start-dfs.sh
执行后使用jps命令,应该会输出三行 2. 启动yarn
cd /opt/hadoop/sbin
./start-yarn.sh
执行后使用jps命令,应该会输出四行 3. 在slave上执行jps,查看是否开成功了
[root@slave1 ~]# jps
610 Jps
235 DataNode
379 NodeManager
测试Hadoop
需要放行防火墙
systemctl stop firewalld.service
打开master的web界面
http://master_ip_here:50070
测试命令
hadoop fs -ls /
hadoop fs -mkdir /test
hadoop fs -ls /