Ubuntu的Linux系统部署Hadoop平台
(平台搭建所需Hadoop安装包及jdk安装包在链接中,读者可自行下载:提取码:wjt1)
1、创建虚拟机,安装Ubuntu系统,镜像下载:
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
配置好虚拟机
2、检查网络:
点击右上角三角样式图标,选择有线设置
看到如上图即可,查看网络连接设置:
3、安装jdk1.8
1)Ctrl +alt +t打开终端,输入以下指令进入超级用户(使用超级用户更方便,不进入超级用户可以在每条命令前加上sudo,不过每次都需要输入密码,比较麻烦):
sudo su root
再输入密码即可进入,如下:
2)创建路径,在终端中输入命令:
mkdir /usr/lib/java
3)上传jdk安装包:
首先进入上步创建的安装jdk目录
cd /usr/lib/java
将准备好的jdk安装包复制在此路径下(可以直接拖进去,也可使用XShell),这里直接拖进去,然后使用命令:
mv /var/run/vmblock-fuse/blockdir/uxiuxW/jdk-8u161-linux-x64.tar.gz /usr/lib/java
将文件移动到/usr/lib/java目录下:
4)解压安装包:
输入此命令:tar -xvf jdk-8u161-linux-x64.tar.gz
更改解压后的jdk文件为jdk1.8
mv jdk1.8.0_161 jdk1.8
5)配置环境变量:
输入命令:
gedit ~/.bashrc
在文件中添加如下代码:
export JAVA_HOME=/usr/lib/java/jdk1.8
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
P
A
T
H
=
JAVA_HOME/jre export PATH=
JAVAHOME/jreexportPATH=PATH:
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:JRE_HOME/bin
保存后,关闭界面,并加载环境变量:
source ~/.bashrc
验证java是否正确安装配置:
java -version
4、安装SSH并设置免密登录:
1)安装ssh
apt-get install ssh
2)安装pdsh
apt-get install spdsh
3)查看虚拟机名称
hostname
4)修改虚拟机名称(可改可不改):
hostnamectl set-hostname ‘wjt01’
5)设置ssh为pdsh的默认rcmd:
echo ssh >> /etc/pdsh/rcmd_default
6)验证,输入:pdsh -q -w localhost
有如下即配置成功:
7)配置ssh免密登录
输入以下指令:
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
以上命令是产生公私密钥,运行成功产生目录在用户主目录下的~/.ssh目录中,如下:
id_rsa.pub为公钥,id_rsa为私钥,紧接着将公钥文件导入到authorized_keys文件,实现免密登录本机(wjt01)这个步骤是必须的 。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
验证免密登录:
ssh wjt01(这里名字为自己设置的主机名)
出现如下,即免密成功
验证成功后输入exit退出免密登录!!!
5、关掉此虚拟机,克隆两台虚拟机:
选择完整克隆,克隆完成后分别修改两台克隆机的主机名为wjt02、wjt03(命令见上),名字可以自己取
修改名字后在两台克隆机上测试一下免密登录:
6、通过ifconfig获取三台虚拟机的ip地址,如下图所示,注意三台虚拟机都需执行此命令,获取ip地址
如果输入ifconfig ,提示没有命令 ,直接安装即可。命令如下:
apt-get install net-tools
7、修改hosts文件:
输入三台虚拟机的ip 和hostname 如下图所示。注意 127.0.1.1这行需要加#注释掉,或者删掉。三台虚拟都要执行此操作。
8、wjt01 免密登录wjt02、wjt03
分别在wjt02、wjt03中执行以下两条命令,注意两台虚拟机都需要执行,其中root@wjt01 @前面是用户名,后面是主机名hostname。
scp root@wjt01:~/.ssh/id_rsa.pub ~/.ssh/master_rsa.pub
cat ~/.ssh/master_rsa.pub >> ~/.ssh/authorized_keys
9、配置完成后,回到wjt01主机,输入:
ssh wjt02 和wjt03验证免密登录:
验证成功
10、安装Hadoop
以下操作在主机上完成,后续通过节点复制
1)创建Hadoop安装目录:
2)上传Hadoop安装包
拖拽后安装包会被放在/var/run/vmblock-fuse/blockdir/uxiuxW/hadoop-2.7.4.tar.gz路径下,只需通过命令:
mv /var/run/vmblock-fuse/blockdir/uxiuxW/hadoop-2.7.4.tar.gz /home/hadoop 进行移动即可
上传完后解压安装包:
tar -xvf hadoop-2.7.4.tar.gz
3)安装完成后修改环境变量 输入以下命令修改环境变量:
gedit ~/.bashrc
在最后添加如下:
export HADOOP_COMMON_LIB_NATIVE_DIR=
H
A
D
O
O
P
H
O
M
E
/
l
i
b
/
n
a
t
i
v
e
e
x
p
o
r
t
H
A
D
O
O
P
O
P
T
S
=
"
−
D
j
a
v
a
.
l
i
b
r
a
r
y
.
p
a
t
h
=
HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=
HADOOPHOME/lib/nativeexportHADOOPOPTS="−Djava.library.path=HADOOP_HOME/lib"
export HADOOP_HOME=/home/hadoop/hadoop-2.7.4
export PATH=.:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:JAVA_HOME/bin:$PATH
输入以下命令,加载环境变量:source ~/.bashrc
输入hadoop命令,有以下结果,配置成功:
4)在hadoop-2.7.3目录下创建四个目录:tmp、hdfs、hdfs/data、hdfs/name
5)配置core-site.xml文件
进入hadoop-2.7.4目录下的etc/hadoop目录下,修改core-site.xml文件,在配置中增加如下:
!
使用命令:gedit core-site.xml编辑文件,增加如下(wjt01为自己主服务器名称,:/home/hadoop/hadoop-2.7.4/tmp路径为自己实际路径,后续修改也是如此,不再强调):
fs.defaultFS
hdfs://wjt01:9000
hadoop.tmp.dir
file:/home/hadoop/hadoop-2.7.4/tmp
io.file.buffer.size
131702
5)配置hdfs-site.xml文件(与core-site.xml文件一样):
在配置中增加如下:
dfs.namenode.name.dir
file:/home/hadoop/hadoop-2.7.4/hdfs/name
dfs.datanode.data.dir
file:/home/hadoop/hadoop-2.7.4/hdfs/data
dfs.replication
2
dfs.namenode.secondary.http-address
wjt01:9001
dfs.webhdfs.enabled
true
6)配置mapred-site.xml文件:
进入hadoop-2.7.4目录下的etc/hadoop目录下,将文件mapred-site.xml.template使用mv命令重命名为mapred-site.xml:
mv mapred-site.xml.template mapred-site.xml
使用命令gedit mapred-site.xml配置此文件:
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
wjt01:10020
mapreduce.jobhistory.webapp.address
wjt01:19888
7)配置yarn-site.xml文件
使用命令gedit yarn-site.xml修改配置文件:
增加如下:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.auxservices.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.address
wjt01:8032
yarn.resourcemanager.scheduler.address
wjt01:8030
yarn.resourcemanager.resource-tracker.address
wjt01:8031
yarn.resourcemanager.admin.address
wjt01:8033
yarn.resourcemanager.webapp.address
wjt01:8088
yarn.nodemanager.resource.memory-mb
1536
这里因添加较长截图不完整,根据上述代码修改即可。
8)修改slaves,增加从服务器:
进入hadoop-2.7.4目录下的etc/hadoop目录下,修改slaves文件,将其中的localhost去掉,并所有的从服务器名称添加进去,每台服务器名称占一行。
9)配置hadoop-env.sh、yarn-env.sh的JAVA_HOME
进入hadoop-2.7.4目录下的etc/hadoop目录下,修改hadoop-env.sh、yarn-env.sh 两个文件,增加JAVA_HOME的环境变量配置。查看jdk目录可使用命令:
echo $JAVA_HOME
在hadoop-env.sh、yarn-env.sh两个文件中分别增加如下一段代码(jdk目录请根据自己实际情况设置):
export JAVA_HOME=/usr/lib/java/jdk1.8
10)至此Hadoop全部配置完成,将Hadoop复制到各从服务器:
在主服务器上执行以下两条命令,其中root为登录从服务器的用户名,wjt02,wjt03为从服务器的名称,请根据自己实际情况修改:
scp -r /home/hadoop/ root@wjt02:/home/hadoop/
scp -r /home/hadoop/ root@wjt03:/home/hadoop/
11)格式化namenode
在主服务器上进入/home/hadoop/hadoop-2.7.4目录下,并使用命令bin/hdfs namenode -format进行初始化:
11、启动Hadoop平台,并验证:
sbin/./start-all.sh
验证:
主服务器:
从服务器:
验证成功,同时也可通过web网页验证:
以下地址192.168.26.201为server-1主服务器ip地址
http://192.168.121.132:8088 为ResourceManager的web控制台,正常情况下显示如下图:
http://192.168.121.132:50070 为hdfs web控制台,可以看到下图中展示了所有的datanode节点:
注:
1、如从服务器的DataNode节点未能启动,可能因为多次初始化导致datanode与namenode的clusterID不同,解决方法:
在三台服务器中找到/home/hadoop/hadoop-2.7.4/hdfs/data这个文件夹,把它删除后再重新初始化即可(此路径为本篇文章所搭建的Hadoop平台下的路径)
2、如果启动时从服务器的节点未启动,可以去排查一下免密是否配置好,配置免密时需要查看自己虚拟机的网络配置,可以将网络配置修改为静态网络,以防ip地址变动。
版权归原作者 大象士兵 所有, 如有侵权,请联系我们删除。