【安装包】
官网地址:Apache Hadoop
安装文档:Apache Hadoop 3.3.1 – Hadoop: Setting up a Single Node Cluster.
【环境介绍】
- Linux:CentOS Linux release 8.0.1905 (Core)Java版本:jdk1.8.0_211Hadoop版本:hadoop-3.2.1.tar.gzKibana版本:kibana-7.8.0.tar.gzLogstash版本:logstash.tar.gz
【实现ssh免密码登录】
由于Hadoop需要使用SSH进行通信,因此需要在Linux操作系统上安装SSH。SSH是一种通过网络连接提供安全的加密连接的客户端服务。
安装过程略。
SSH作为一个安全通信协议,需要在通信的时候输入密码。
操作环境:
| 机器 | 操作系统 | IP |
| Node-1 | CentOS 8 | 172.20.49.155 |
| Node-2 | CentOS 8 | 172.20.49.138 |
1、Node-1机器
执行终端命令“ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa”生成公钥与私钥对。
将本机的公钥复制到远程机器,即Node-2机器的authorized_keys文件中。
ssh-copy_id root@172.20.33.138
执行终端命令“ssh root@172.20.49.138”,测试是否需要输入密码。
- Node-2机器
与操作1步骤一致,只需修改相应的IP地址即可。如下所示。
# 生成公钥与私钥对 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 复制本机的公钥到远程机器的authorized_keys文件中 ssh-copy-id root@172.20.49.155
服务器环境如下表所示:
| 机器 | 操作系统 | IP |
| Node-1 | CentOS 8 | 172.20.49.138 |
| Node-2 | CentOS 8 | 172.20.49.139 |
| Node-3 | CentOS 8 | 172.20.49.140 |
注意:请先在上述三台服务器上安装JDK1.8、配置三台机器间实现免密通信。
查看OS版本:
cat /etc/redhat-release
将本地下载完成的hadoop-3.2.1.tar.gz压缩包上传至CentOS服务器,命令如下:
scp hadoop-3.2.1.tar.gz root@172.20.49.138:/usr/local/soft scp hadoop-3.2.1.tar.gz root@172.20.49.139:/usr/local/soft scp hadoop-3.2.1.tar.gz root@172.20.49.140:/usr/local/soft
接下来,在三台服务器上做同样的操作,只需修改相应的路径即可。
进入/usr/local/soft目录下,解压hadoop到指定目录。
tar -zxvf hadoop-3.2.1 -C /usr/local/softins
进入/usr/local/softins/hadoop-3.2.1目录,查看Hadoop的目录结构。
【hadoop目录】
hadoop目录说明:
- bin:hadoop可执行的脚本文件,比如hadoop,mapreduce,yarn;sbin:系统相关的一些执行脚本,比如hadoop的相关启动/关闭脚本;lib:本地库,本地平台的效率实现;etc:相关配置文件;libexec:执行相关文件;include:本地库相关;share:jar包,开发相关;share/doc:开发文档;
编辑/etc/profile文件,配置java和hadoop的环境变量。
vim /etc/profile
配置内容如下:
# java export JAVA_HOME=/usr/java/jdk1.8.0_291-amd64 export CLASSPATH=./$JAVA_HOME/lib:$JAVA_HOME/jre/lib export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$PATH # Hadoop export HADOOP_HOME=/usr/hadoop-3.2.1 export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin # hadoop-3.2.1 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
其中# hadoop-3.2.1部分对hadoop-3.2.1来说必须配置,否则启动报错。
执行命令使配置文件立即生效。
source /etc/profile
执行终端命令“hadoop version”进行安装测试。所示的Hadoop版本信息,则表示Hadoop安装完成。
【配置参数】
- 修改hadoop-env.sh,配置JAVA_HOME的值,使其值指向jdk的位置。
cd /usr/local/softins/hadoop/hadoop-3.2.1 vim etc/hadoop/hadoop-env.sh
取消并修改export JAVA_HOME=jdk安装位置,如下所示。
export JAVA_HOME=/usr/local/softins/jdk/jdk1.8.0_241
2.修改core-site.xml文件。
vim etc/hadoop/core-site.xml
添加内容如下所示:
fs.defaultFS hdfs://localhost:9000 hadoop.tmp.dir /opt/hadoop/tmp
执行终端命令:
mkdir -p /usr/local/data/hadoop-3.2.1/tmp
3.修改hdfs-site.xml文件。
vim etc/hadoop/hdfs-site.xml
编辑内容如下所示:
dfs.replication 3 dfs.namenode.name.dir file:/opt/hadoop/tmp/dfs/name dfs.datanode.data.dir file: /opt/hadoop /tmp/dfs/data
执行终端命令:
mkdir -p /usr/local/data/hadoop-3.2.1/tmp/dfs/name mkdir -p /usr/local/data/hadoop-3.2.1/tmp/dfs/data
4.修改mapred-site.xml
vim etc/hadoop/mapred-site.xml
编辑内容如下所示:
mapreduce.framework.name yarn
【启动Hadoop】
初始化文件服务,执行终端命令:
cd /usr/local/softins/hadoop/hadoop-3.2.1/ hdfs namenode -format
common.Storage: Storage directory /usr/local/data/hadoop-3.2.1/tmp/dfs/name has been successfully formatted.
启动进程
执行终端命令:
start-dfs.sh
使用jps查看进程情况。
在本地浏览器上输入链接地址“http://172.20.49.139:9870”,访问Hadoop服务。如果出现如下图则表示hadoop已启动。



