此次安装的的jdk版本为1.8,Hadoop版本为3.1.3。
一:实验前准备
1.虚拟机自行下好,要带有vim编辑器
sudo apt install vim
如若懒的安装,可将文章中一些vim的命令替换成
gedit 要打开的文件路径
2.在此次实验之前命令行必须进入超级用户,以免出现不必要的麻烦(权限不足)
sudo su
如下图所示
用户名为root,且末尾带有“#”号。
二:安装JDK
1.执行以下命令,下载JDK1.8安装包(华为云下载)。
wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
2.执行以下命令,解压下载的JDK1.8安装包。
tar -zxvf jdk-8u151-linux-x64.tar.gz
3.移动并重命名JDK包。
mv jdk1.8.0_151/ /usr/java8
4.配置Java环境变量。
source 为读取变量的作用。
echo 'export JAVA_HOME=/usr/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
5.查看Java是否成功安装。
java -version
三:安装Hadoop
1. 执行以下命令,下载Hadoop安装包(华为云下载)。
wget --no-check-certificate https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
2. 执行以下命令,解压Hadoop安装包至/opt/hadoop。
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/
mv /opt/hadoop-3.1.3 /opt/hadoop
3. 执行以下命令,配置Hadoop环境变量。
source 为读取变量的作用。
echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile
4. 执行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh。
这里JAVA_HOME为JDK安装目录,可自行更改。
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh
5. 执行以下命令,测试Hadoop是否安装成功。
hadoop version
成功如下图所示
如若未找到,请重新查看/etc/profile文件中的内容是否增加,若增加,请重新运行source。
四:配置Hadoop
1. 修改Hadoop配置文件 core-site.xml。
a. 执行以下命令开始进入编辑页面。
vim /opt/hadoop/etc/hadoop/core-site.xml
b. 输入i进入编辑模式。
c. 在<configuration></configuration>节点内插入如下内容。
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
d. 按Esc键退出编辑模式,输入:wq保存退出。
2. 修改Hadoop配置文件 hdfs-site.xml。
a. 执行以下命令开始进入编辑页面。
vim /opt/hadoop/etc/hadoop/hdfs-site.xml
b. 输入i进入编辑模式。
c. 在<configuration></configuration>节点内插入如下内容。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>127.0.0.1:50070</value>
</property>
d. 按Esc键退出编辑模式,输入:wq保存退出。
五:配置SSH免密登录
1. 执行以下命令,创建公钥和私钥。
ssh-keygen -t rsa
重要的事情说三遍!!!
一直按确定,不输密钥。
一直按确定,不输密钥。
一直按确定,不输密钥。
不然会在初始化namenode时出错。
2. 执行以下命令,将公钥添加到authorized_keys文件中。
cd ~
cd .ssh
cat id_rsa.pub >> authorized_keys
输入如下命令,在环境变量中添加下面的配置
vi /etc/profile
然后向里面加入如下的内容
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
输入如下命令使改动生效
source /etc/profile
六:启动Hadoop
1. 执行以下命令,初始化namenode 。
hadoop namenode -format
2. 依次执行以下命令,启动Hadoop。
start-dfs.sh
第一次运行一般没有,若有选择Y/N的,选择Y;其他直接回车
start-yarn.sh
3. 启动成功后,执行以下命令,查看已成功启动的进程。
jps
正常会有6个进程;
若是没有其中的DataNode进程,则是因为不是第一次启动,导致没有显示出来,运行实际上是没有问题的。当然,也有解决方法。
如果已经启动hadoop,需要先输入以下代码以停止进程。
stop-all.sh
然后在清理缓存,强制递归删除/hadoop/tmp文件夹以及所有文件
rm -rf /hadoop/tmp
最后重新按步骤启动即可。
4. 打开浏览器访问http://<127.0.0.1>:8088和http://<127.0.0.1>:50070,显示如下界面则表示Hadoop伪分布式环境搭建完成。