在WSL2内搭建伪分布式Hadoop
安装JDK
- 为了加快软件的下载安装,选择更换源,这里选择清华镜像
- 备份原来的source文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 修改原来的source文件
sudo vim /etc/apt/sources.list
- 更新软件列表
sudo apt-get update
- 安装JDK/JRE-8
sudo apt install openjdk-8-jre openjdk-8-jdk
- 查看JDK的版本
java -version
安装Hadoop
- 这里选择一个镜像
- 选择2.10.1版本进行下载
mkdir /home/niejw/download
wget -P /home/niejw/download http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz
- 安装Hadoop
根据Linux的文件目录设置规范,/opt主要用于存放第三方软件包和数据文件
sudo mkdir /opt/hadoop
sudo tar zxvf /home/niejw/download/hadoop-2.10.1.tar.gz -C /opt/hadoop
- 查看JDK安装的路径
dpkg -L openjdk-8-jdk
- 配置Hadoop和JAVA的环境变量
vim /home/niejw/.bashrc
# hadoop path export HADOOP_HOME=/opt/hadoop/hadoop-2.10.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # java path export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source /home/niejw/.bashrc
- 查看Hadoop版本
hadoop version
- 安装完毕!
配置Hadoop
- 复制配置文件夹
cp -r /opt/hadoop/hadoop-2.10.1/etc/hadoop /opt/hadoop/hadoop-2.10.1/etc/hadoop.bak
- 修改配置文件
<?xml version="1.0"?> <!-- core-site.xml --> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost/</value> </property> </configuration>
```xml
<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
cp /opt/hadoop/hadoop-2.10.1/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop-2.10.1/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置SSH
- 基于空口令生成一个SSH密钥
如果修改了私钥文件名字,需要去 /etc/ssh/ssh_config 修改私钥名字 /etc/ssh/ssh_config 用于修改客户端 /etc/ssh/sshd_config 用于修改服务端ssh-keygen -t rsa cat /home/niejw/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys rm /home/niejw/.ssh/id_rsa.pub
- 启动SSH服务
sudo service ssh start
- 设置SSH免密登录
sudo vim /etc/ssh/sshd_config PermitEmptyPasswords yes sudo service ssh restart ssh localhost
格式化文件系统
- 首次使用Hadoop需要格式化文件系统
hdfs namenode -format
启动和终止守护进程
- 启动HDFS守护进程
这里还是报错了,但是env和export都有设置JAVA_HOMEstart-dfs.sh
localhost: Error: JAVA_HOME is not set and could not be found.
进入 /opt/hadoop/hadoop-2.10.1/etc/hadoop/hadoop-env.sh 修改为
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
再次启动HDFS守护进程
start-dfs.sh
- 启动YARN守护进程
start-yarn.sh
启动MapReduce守护进程
mr-jobhistory-daemon.sh start historyserver
如果想终止守护进程
mr-jobhistory-daemon.sh stop historyserver stop-yarn.sh stop-dfs.sh
这里有一个点,我是在WSL2内装的Hadoop,当时无法访问资源管理器,因为8088端口在tcp6上面,导致主机无法访问,需要做如下修改
netstat -tnpl
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>