vm安装centos8设置静态ip_CentOS 8搭建hadoop 3集群 最新版

最近在自学hadoop,学习途径是网上的视频、帖子以及hadoop官网文档。

因为各软件使用了最新版本,搭建过程并不是一帆风顺。加上一些视频和帖子对知识点解读不足甚至存在些许错误,故写下文章,希望为初学者提供一些帮助。

为了便于阅读,拆分成了《VMware安装CentOS 8》和《CentoOS 8搭建hadoop 3集群》两部分。

本文也适用于CentOS 7和hadoop 2。

相关链接:

Jonathan:VMware Workstation安装CentOS 8 最新版​zhuanlan.zhihu.com
Jonathan:VMware Fusion安装CentOS 8 最新版​zhuanlan.zhihu.com

软件环境

JDK

Java SE 8u241(官网地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)

(注:下载JDK需要注册Oracle账户)

hadoop

3.2.1(官网地址:https://hadoop.apache.org/releases.html)

前言

本文使用4台安装有CentOS 8的VMware虚拟机,演示3+1台电脑搭建hadoop集群:先用3台搭建集群,成功运行后再加入1台。

搭建流程在macOS中演示。Windows下操作相同,唯一区别是Windows 10使用ssh通过“命令提示符”,macOS通过“终端”。

各虚拟机的主机名为os1~os4,IP为192.168.1.201~204。

注:

1、Windows 10之前的系统没有内置ssh,需要下载第三方工具。

2、1台机器即可搭建(伪)集群。

3、运行mapreduce example每台虚拟机推荐至少2G内存。

一、Linux设置

只需要安装一台CentOS 8虚拟机并完成共性配置,其他虚拟机使用克隆功能复制即可,具体步骤参考文章开头的链接。

首先登陆第一台虚拟机,下文用os1代替。

(注:暂时不需要克隆其他虚拟机,共性设置完成后再克隆。)

网络设置

查看网卡

ip address

根据标号找到2:ens33,ens33是该虚拟机的网卡名。

(注:不同电脑标号和网卡名可能不同。)

26f77faf-0614-eb11-8da9-e4434bdf6706.png
ip address

设置IP

输入sudo vi /etc/sysconfig/network-scripts/ifcfg-网卡名

(注:sudo 开头的命令可能需要输入用户密码)

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

进入vi界面,按下键盘i键进入编辑状态,按方向键定位并修改如下信息:

BOOTPROTO=static,防止通过dhcp自动获取的IP对我们产生干扰。

ONBOOT=yes,开机后自动启用网卡。

IPADDR,根据不同虚拟机修改为192.168.1.201~204。

完成后按键盘左上角的esc键,输入“:wq!”(引号内部分),回车,保存修改。

(注:更多vi操作请自行百度。)

27f77faf-0614-eb11-8da9-e4434bdf6706.png
网卡配置

配置立即生效

sudo nmcli c reload

使用物理机ping虚拟机IP测试连通性

ping 192.168.1.201

29f77faf-0614-eb11-8da9-e4434bdf6706.png
测试通过

使用ssh连接虚拟机

为了方便复制粘贴,后续操作将在物理机中通过ssh远程登录到虚拟机执行。

在终端输入命令

ssh root@192.168.1.201

首次登陆需要输入yes,回车。

再输入密码,回车。

2cf77faf-0614-eb11-8da9-e4434bdf6706.png
ssh远程连接

ssh连接报错

如果之前使用ssh连接过其他相同IP的不同主机,会报错如图。可以按提示路径使用记事本打开known_hosts文件,删除或注释该IP所在行的信息,也可以直接删除该文件,重新执行ssh命令即可。

(注:该文件为隐藏文件,macOS同时按下Command + Shift + .,显示隐藏文件。)

2df77faf-0614-eb11-8da9-e4434bdf6706.png

新建管理员用户

如果你还没有创建自己的用户,可以使用命令行进行创建。

新建用户user1

sudo adduser user1

设置user1的密码

sudo passwd user1

按照提示,输入密码,回车,再输入一次密码,回车。

设置为管理员

sudo vi /etc/sudoers

进入vi界面,鼠标滚轮或方向键定位到

root ALL=(ALL) ALL

这一行,在该行下新增

user1 ALL=(ALL) ALL

esc键,输入“:wq!”(引号内部分),回车,保存修改。

2ff77faf-0614-eb11-8da9-e4434bdf6706.png
/etc/sudoers

退出ssh连接,使用新建用户登陆虚拟机,后续操作均使用该用户完成。

exit
ssh user1@192.168.1.201

查看主机名

uname -n

修改主机名为os1

sudo hostnamectl set-hostname os1

关闭防火墙

sudo systemctl stop firewalld.service

禁止防火墙开机自启动

sudo systemctl disable firewalld.service

配置主机映射

sudo vi /etc/hosts

新增内容如下:

192.168.1.201 os1
192.168.1.202 os2
192.168.1.203 os3

配置完成后该主机可以通过主机名代替IP访问各虚拟机。

30f77faf-0614-eb11-8da9-e4434bdf6706.png
修改hosts

二、安装JDK、hadoop 3

复制JDK、hadoop 3到虚拟机

启动一个新的终端,将物理机下载好的JDK、hadoop 3压缩包复制到虚拟机,注意 jdk、hadoop 3、用户名@IP:虚拟机文件夹 的路径是否正确。

(注:发稿时hadoop适配的JDK最高版本为1.8,详见https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions)

scp /Users/caiwei/Downloads/jdk-8u241-linux-x64.tar.gz /Users/caiwei/Downloads/hadoop-3.2.1.tar.gz user1@192.168.1.201:/home/user1

32f77faf-0614-eb11-8da9-e4434bdf6706.png
scp上传文件

解压JDK、hadoop 3

回到ssh窗口,输入命令确保JDK、hadoop 3已经收到并正确解压

cd /home/user1/
ls
tar -xf jdk-8u241-linux-x64.tar.gz
tar -xf hadoop-3.2.1.tar.gz
ls

35f77faf-0614-eb11-8da9-e4434bdf6706.png
cd ls tar

配置环境变量

sudo vi /etc/profile

末尾处添加,注意路径是否正确

export JAVA_HOME=/home/user1/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/user1/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

37f77faf-0614-eb11-8da9-e4434bdf6706.png
环境变量

配置立即生效

source /etc/profile

Java环境验证

java -version

hadoop 3环境验证

hadoop version

38f77faf-0614-eb11-8da9-e4434bdf6706.png
环境配置成功

三、配置hadoop 3

配置hadooop 3使用的JDK

cd hadoop-3.2.1/etc/hadoop/
vi hadoop-env.sh

添加(Hadoop 2为修改)

export JAVA_HOME=/home/user1/jdk1.8.0_241

3af77faf-0614-eb11-8da9-e4434bdf6706.png
配置hadooop 3使用的JDK

功能规划

1个NameNode,提供hdfs服务

3个DataNode,存储节点

1个SecondaryNameNode,检查点

1个ResourceManager,集群资源管理器

3个NodeManager,节点资源管理器

服务器规划

os1:NameNode + DataNode + NodeManager

os2:SecondaryNameNode + DataNode + NodeManager

os3:ResourceManager + DataNode + NodeManager

配置hdfs服务地址、临时文件夹

参考资料https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

vi core-site.xml

configuration内添加

 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://os1:9000</value>
 </property>

 <property>
 <name>hadoop.tmp.dir</name>
 <value>/home/user1/tmp/hadoop-user1</value>
 </property>

配置副本数量、NameNode文件夹、DataNode文件夹、SecondaryNameNode服务地址

参考资料https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

hadoop 2的dfs.namenode.secondary.http-address为os:50090

vi hdfs-site.xml

configuration内添加

 <property>
 <name>dfs.replication</name>
 <value>2</value>
 </property>

 <property>
 <name>dfs.namenode.name.dir</name>
 <value>/home/user1/dfs/name</value>
 </property>

 <property>
 <name>dfs.datanode.data.dir</name>
 <value>/home/user1/dfs/data</value>
 </property>

 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>os2:9868</value>
 </property>

配置MapReduce调用的framework(Hadoop 2先执行cp mapred-site.xml.template mapred-site.xml)

参考资料https://hadoop.apache.org/docs/r3.2.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

vi mapred-site.xml

configuration内添加

 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>

配置mappreduce服务、yarn环境变量、ResourceManager

参考资料https://hadoop.apache.org/docs/r3.2.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

vi yarn-site.xml

configuration内添加

 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</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>

 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>os3</value>
 </property>

配置数据节点

vi workers

删除或使用#注释localhost,Hadoop 2为vi slaves(估计是slaves这个词比较敏感)

user1@os1
user1@os2
user1@os3

3ef77faf-0614-eb11-8da9-e4434bdf6706.png
workers

关闭虚拟机

至此,共性配置全部完成

sudo shutdown

克隆虚拟机

使用克隆功能复制出另外3台虚拟机,具体步骤参考文章开头的链接。

四、个性化配置

由于克隆出的各虚拟机内容是完全一致的,为了搭建集群,至少需要修改各虚拟机的IP和主机名。

修改IP和主机名

参考前文修改IP和主机名为192.168.1.202~203、os2~os3。

(注:由于克隆出的虚拟机IP相同,你无法确定连接到了哪台,所以请一次只开启一台虚拟机,直到IP设置结束。)

配置ssh免密登陆

配置完IP和主机名后,需要配置各虚拟机之间的ssh免密连接。同时开启虚拟机os1~os3。使用ssh依次在每台虚拟机重复以下操作

生成密钥对

ssh-keygen

三次回车(注:如果之前执行过,会询问是否覆盖)

发送公钥实现免密连接

ssh-copy-id user1@os1

根据提示输入yes,回车,再输入os1上的user1的密码,回车。重复执行上一个命令,将user1@os1替换为其他虚拟机的用户名和主机名(如user1@os2、user1@os3)

40f77faf-0614-eb11-8da9-e4434bdf6706.png
ssh-copy-id

五、只执行一次的设置

初始化NameNode

ssh登陆os1(服务器规划的NameNode节点),执行初始化命令

(注:该命令只能执行一次,再次执行前,请根据hdfs-site.xml配置文件删除所有虚拟机对应的dfs.namenode.name.dir和dfs.datanode.data.dir目录)

hadoop namenode -format

41f77faf-0614-eb11-8da9-e4434bdf6706.png
初始化

六、启动

启动hdfs

ssh连接到NameNode即os1,执行

start-dfs.sh

43f77faf-0614-eb11-8da9-e4434bdf6706.png
启动hdfs

启动yarn

ssh连接到ResourceManager即os3,执行

start-yarn.sh

44f77faf-0614-eb11-8da9-e4434bdf6706.png
启动yarn

服务验证

在os1~os3下执行

jps

可以看到功能规划中的所有服务已经启动

49f77faf-0614-eb11-8da9-e4434bdf6706.png
os1

4af77faf-0614-eb11-8da9-e4434bdf6706.png
os2

4cf77faf-0614-eb11-8da9-e4434bdf6706.png
os3

hdfs验证

物理机浏览器访问http://192.168.1.201:9870(Hadoop 2为http://192.168.1.201:50070),可以看到Live node3是3,即3个数据节点。

50f77faf-0614-eb11-8da9-e4434bdf6706.png
hdfs

yarn验证

物理机浏览器访问http://192.168.1.203:8088,可以看到Active node3是3,即3个资源节点。

51f77faf-0614-eb11-8da9-e4434bdf6706.png
yarn

七、新增数据节点

os1中停止hdfs

stop-dfs.sh

os3中停止yarn

stop-yarn.sh

开启虚拟机os4

参考前文修改IP和主机名为204和os4。

(注:开启并修改os4的IP前请确保没有运行中的虚拟机与os4当前及要修改为的IP相同,如果忘了检查导致IP冲突影响使用,执行sudo init 6命令重启发生冲突的虚拟机即可。)

新增主机映射

参考前文,os1~os4配置主机映射

192.168.1.201 os1
192.168.1.202 os2
192.168.1.203 os3
192.168.1.204 os4

配置数据节点

参考前文,os1~os4配置数据节点

user1@os1
user1@os2
user1@os3 
user1@os4

配置ssh免密登陆

参考前文,os4配置对os1~os4的免密登陆,os1~os3新增对os4的免密登陆

启动hdfs和yarn

参考前文启动hdfs和yarn

os4验证

jps

53f77faf-0614-eb11-8da9-e4434bdf6706.png
os4

也可使用浏览器进行验证,新节点os4已经加入到集群中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值