踩坑用红色
0.终端直接启用root,避免后续权限问题(若root初始化需要添加密码:sudo passwd root
)
su root
1.下载JDK1.8安装包(这是最高效的安装方式)
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
2.解压下载的JDK1.8安装包
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
3.执行以下命令,移动并重命名JDK包(/usr/java8是可配置路径,可以自行选择路径,自行选择的路径在之后的配置文件时都要跟着走)
mv java-se-8u41-ri/ /usr/java8
4.执行以下命令,配置Java环境变量。
echo 'export JAVA_HOME=/usr/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
5.执行以下命令,查看Java是否成功安装。
java -version
如果返回以下信息,则表示安装成功。
root@tmnk-linux:~$ java -version
openjdk version "1.8.0_41"
OpenJDK Runtime Environment (build 1.8.0_41-b04)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)
1.下载Hadoop安装包
wget --no-check-certificate https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
2.解压Hadoop安装包至/opt/hadoop(同上,/opt/hadoop路径可自由配置,但后续配置也都要跟着走)
tar -zxvf hadoop-2.10.1.tar.gz -C /opt/
mv /opt/hadoop-2.10.1 /opt/hadoop
3.配置Hadoop环境变量
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
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
如果返回以下信息,则表示安装成功
root@tmnk-linux:~$ hadoop version
Hadoop 2.10.1
Subversion https://github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816
Compiled by centos on 2020-09-14T13:17Z
Compiled with protoc 2.5.0
From source with checksum 3114edef868f1f3824e7d0f68be03650
This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-2.10.1.jar
此处有天坑:如果关闭终端或重启后发现已经配置好的环境失效了,那么用vim ~/.bashrc
打开.bashrc文件,复制/etc/profile文件里配置好的那堆PATH,粘贴至.bashrc中保存退出,最后命令source /etc/profile
生效即可
1.修改Hadoop配置文件 core-site.xml
a. 执行以下命令开始进入编辑页面
vim /opt/hadoop/etc/hadoop/core-site.xml
b. 输入i进入编辑模式
c. 在《configuration》 《/configuration》节点内插入如下内容(注意:tmnk-linux是自个儿的主机名!)
hadoop.tmp.dir
file:/opt/hadoop/tmp
location to store temporary files
fs.defaultFS
hdfs://tmnk-linux:9000
d. 按Esc键退出编辑模式,输入:wq保存退出
2.修改Hadoop配置文件 hdfs-site.xml
a. 执行以下命令开始进入编辑页面
vim /opt/hadoop/etc/hadoop/hdfs-site.xml
b. 输入i进入编辑模式
c. 在《configuration》《/configuration》节点内插入如下内容(注意:tmnk-linux是自个儿的主机名,0.0.0.0:50070不要动,如果之前更改过hadoop路径这里就要跟着走了)
dfs.namenode.http.address
tmnk-linux:50070
dfs.http.address
0.0.0.0:50070
dfs.replication
1
dfs.namenode.name.dir
file:/opt/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/opt/hadoop/tmp/dfs/data
d. 按Esc键退出编辑模式,输入:wq
保存退出(修改文件最好用vim,因为遇到读写权限问题时可以直接:wp!
强制保存退出)
ssh-keygen -t rsa
演示:
root@tmnk-linux:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tmnk/.ssh/id_rsa):
/home/tmnk/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tmnk/.ssh/id_rsa
Your public key has been saved in /home/tmnk/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:UlSg3yCrDJX6+jEFLr9C79+kOXAVt6rmfw8L1I2F3Ko tmnk@tmnk-linux
The key's randomart image is:
+---[RSA 3072]----+
| oo. |
| . o...o |
| + o ooo.o |
| + . =.+.= |
| + . +.S.= . |
| .*.o.o.. |
| . .Bo .E . |
| ...++= ..o |
| .+++=oo.... |
+----[SHA256]-----+
cd #先回到无目录
cd .ssh
cat id_rsa.pub >> authorized_keys
1.执行以下命令,初始化namenode (一个y)注意配置好后每次想启动hadoop不必执行此条,容易造成datanode缺失。解决方案
hadoop namenode -format
2.依次执行以下命令,启动Hadoop(三个yes)(配置好hadoop后,每次启动hadoop-hdfs的第一步)
start-dfs.sh
start-yarn.sh
3.启动成功后,执行以下命令,查看已成功启动的进程
jps
如此有了NameNode和DataNode则正常(如果没有也不用紧张,后文还有操作):
root@tmnk-linux:/home/tmnk/.ssh# jps
12547 Jps
11348 SecondaryNameNode
10982 NameNode
11511 ResourceManager
9768 -- process information unavailable
11147 DataNode
4.打开浏览器访问,显示如下界面则表示Hadoop伪分布式环境搭建完成
主机名:8088
#如我的 tmnk-linux:8088
主机名:50070
#如我的 tmnk-linux:50070
如果8088和50070都成功了,那么恭喜hadoop就安装配置成功了!
但此处有天坑:50070大概率会找不到网页(我们在hdfs-site.xml里添加的节点就是为此),如果确实找不到,那么还有以下操作
首先确保Ubuntu的镜像源的sudo apt-get update
可用,然后再用apt-get install ssh openssh-server
安装ssh服务,具体操作看我另一篇【Ubuntu22.04 经典问题解决笔记】
以上两步通关后,重启hadoop:
#关闭命令
stop-all.sh
#启动命令
start-all.sh
再重启hadoop集群
hadoop namenode -format
hadoop datanode -format
再开启Hadoop hdfs服务
./start-dfs.sh #若这个显示没有文件则用下面这个
start-dfs.sh
此时再查看已成功的进程:
jps
肯定就有NameNode和DataNode进程了
root@tmnk-linux:/home/tmnk/.ssh# jps
12547 Jps
11348 SecondaryNameNode
10982 NameNode
11511 ResourceManager
9768 -- process information unavailable
11147 DataNode
以上都通关以后刷新一下50070的网页,就没问题了!
番外,安装Hbase以后:
启动HBase:
start-hbase.sh
jps包含:
root@tmnk-linux:/usr/local/hbase# jps
7138 -- process information unavailable
12757 SecondaryNameNode
13333 HQuorumPeer
8870 ResourceManager
12150 NameNode
13991 Jps
13464 HMaster
12556 DataNode
13663 HRegionServer
访问Web页面:
主机名:16010
我的: tmnk-linux:16010
hbase shell
exit退出
停止HBase
stop-hbase.sh