Hadoop 伪分布式安装
准备
环境选择
- 系统: Ubuntu Desktop 2204
- JDK: 8
- Hadoop : 3.3.6
JDK 8 下载地址
https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/
Hadoop 3.3.6 下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/stable/
Ubuntu 需要特别配置
修改 hosts 文件
bash
sudo vim /etc/hosts
将 127.0.1.1
修改为 127.0.0.1
数据存储目录
创建目录存储数据
bash
sudo mkdir /export
将权限分配给当前用户
bash
sudo chown -R ${USER} /export
创建其它目录
mkdir /export/servers
mkdir /export/softpackages
mkdir /export/data
mkdir /export/data/hadoop_repo
安装常用软件
更新软件仓库
bash
sudo apt update
下载必备软件
bash
sudo apt install openssh-server vim curl wget -y
安装 Hadoop
免密配置
设置 sshd 服务开机自启动
bash
sudo systemctl enable ssh
启动 ssh 服务
bash
sudo systemctl start ssh
生成公钥
bash
ssh-keygen
免密登录配置
bash
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
安装 JDK
安装 jdk
bash
cd /export/softpackages/
tar -xvf OpenJDK8U-jdk_x64_linux_hotspot_8u392b08.tar.gz
mv jdk8u392-b08 /export/servers/jdk8
编辑 /etc/profile
文件
bash
sudo vim /etc/profile
添加以下内容
bash
export JAVA_HOME=/export/servers/jdk8
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量配置文件
bash
source /etc/profile
查看 java 版本
bash
java -version
输出如下
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_392-b08)
OpenJDK 64-Bit Server VM (Temurin)(build 25.392-b08, mixed mode)
安装 Hadoop
解压 hadoop
bash
cd /export/softpackages/
tar -xvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /export/servers
编辑 /etc/profile
文件
bash
sudo vim /etc/profile
添加以下内容
bash
export HADOOP_HOME=/export/servers/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效环境变量配置文件
bash
source /etc/profile
查看 hadoop版本
bash
hadoop version
输出如下
Hadoop 3.3.6
Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
Compiled by ubuntu on 2023-06-18T08:22Z
Compiled on platform linux-x86_64
Compiled with protoc 3.7.1
From source with checksum 5652179ad55f76cb287d9c633bb53bbd
This command was run using /home/demo/export/servers/hadoop-3.3.6/share/hadoop/common/hadoop-common-3.3.6.jar
配置 Hadoop
hadoop-env.sh
编辑 hadoop-env.sh
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/hadoop-env.sh
添加以下内容
bash
export JAVA_HOME=/export/servers/jdk8
core-site.sh
编辑 core-env.sh
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/core-site.xml
修改为以下内容
xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop_repo</value>
</property>
</configuration>
hdfs-site.sh
编辑 hdfs-site.sh
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/hdfs-site.xml
修改为以下内容
xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.sh
编辑 mapred-site.sh
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/mapred-site.xml
修改为以下内容
xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>0.0.0.0:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:19888</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>
</configuration>
yarn-site.sh
编辑 yarn-site.sh
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/yarn-site.xml
修改为以下内容
xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
</configuration>
workers
编辑 workers
文件,
bash
vim /export/servers/hadoop-3.3.6/etc/hadoop/workers
修改为以下内容
0.0.0.0
格式化存储分区
bash
hdfs namenode -format
2024-01-19 22:40:04,012 INFO common.Storage: Storage directory /export/data/hadoop_repo/dfs/name has been successfully formatted.
Hadoop服务管理
启动 HDFS
bash
start-dfs.sh
启动 YARN
bash
start-yarn.sh
启动 Map 历史服务
bash
mapred --daemon start historyserver
查看 进程
bash
jps
输出如下
8576 JobHistoryServer
7618 SecondaryNameNode
7428 DataNode
7272 NameNode
7803 ResourceManager
7932 NodeManager
8638 Jps
停止 YARN 服务
bash
stop-yarn.sh
停止 HDFS 服务
bash
stop-dfs.sh
停止 Map 历史服务
使用 jps
查看进程ID
8576 JobHistoryServer
9333 Jps
停止 Map 历史服务
bash
kill -15 8576
浏览器访问地址
访问 Hdfs Web 管理界面 (在 本地主机 执行以下命令)
虚拟机IP地址:9870
访问 Yarn Web 管理界面 (在 本地主机 执行)
虚拟机IP地址:8088
访问历史页面 (在 本地主机 执行)
虚拟机IP地址:19888/jobhistory