centos 安装 hadoop3.1.3单节点
安装jdk
先卸载centos自带的openjdk
sudo rpm -qa | grep java
显示一堆类似如下的东西
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
...
一个一个卸载掉
sudo rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
...
下载 jdk-8u212-linux-x64.tar.gz
链接:https://pan.baidu.com/s/1zmqIkfC-qKKuRfHr1i4KXw?pwd=1234
提取码:1234
创建文件夹
sudo mkdir /opt/module
解压下载的jdk到/opt/module目录
sudo tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module
添加环境变量
新建/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
添加以下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212 # jdk解压出来的目录
export PATH=$PATH:$JAVA_HOME/bin
更新/etc/profile文件,让新的环境变量PATH生效
source /etc/profile
查看jdk安装是否成功
java -version
得到以下输出
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
安装Hadoop
下载Hadoop
链接:https://pan.baidu.com/s/13U3AET-vbQ0SvITDGHvRYg?pwd=1234
提取码:1234
解压下载的hadoop到/opt/module目录
sudo tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
把Hadoop添加到环境变量
sudo vim /etc/profile.d/my_env.sh
在文件末尾加入以下内容
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3 # hadoop的解压目录
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
更新环境变量
source /etc/profile
查看hadoop安装是否成功
hadoop version
得到以下输出
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
配置Hadoop单节点
cd /opt/module/hadoop-3.1.3/etc/hadoop/
修改 core-site.xml
sudo vim core-site.xml
在中加入以下内容
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
# 主机名可以通过在命令行输入 hostname 获得
<value>hdfs://主机名:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>允许操作的用户名</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
修改 hdfs-site.xml
sudo vim hdfs-site.xml
在中加入以下内容
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
# 主机名可以通过在命令行输入 hostname 获得
<value>主机名:9870</value>
</property>
修改 hadoop-env.sh
sudo vim hadoop-env.sh
在文件末尾加入以下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
修改 yarn-site.xml
sudo vim yarn-site.xml
在中加入以下内容
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
# 主机名可以通过在命令行输入 hostname 获得
<value>主机名</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
修改 mapred-env.sh
sudo vim mapred-env.sh
在文件末尾加入以下内容
export JAVA_HOME=/opt/module/jdk1.8.0_212
修改 mapred-site.xml
sudo vim mapred-site.xml
在中加入以下内容
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
启动
第一次启动时需要格式化 NameNode,以后就不要执行了
hdfs namenode -format
启动 NameNode、DataNode、ResourceManager、NodeManager
hdfs --daemon start namenode
hdfs --daemon start datanode
yarn --daemon start resourcemanager
yarn --daemon start nodemanager
使用 jps 命令查看是否运行成功
jps
得到类似以下的输出,说明启动成功
7860 NodeManager
7782 ResourceManager
8073 Jps
7706 DataNode
7647 NameNode
关闭 NameNode、DataNode、ResourceManager、NodeManager
hdfs --daemon stop namenode
hdfs --daemon stop datanode
yarn --daemon stop resourcemanager
yarn --daemon stop nodemanager
宿主机访问虚拟机
查看虚拟机防火墙状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
永久关闭防火墙
systemctl disable firewalld.service
web端查看HDFS文件系统
http://虚拟机ip:9870
YARN的浏览器页面查看
http://虚拟机ip:8088/cluster
可能遇到的问题
在web端无法操作文件(新建、删除等),执行以下命令
hdfs dfs -chmod -R 777 /