简介:本次安装演示是基于虚拟机的服务器(Linux)进行的,分别是:bdc112 bdc113 bdc114。 主要进行了Linux安装环境准备,远程工具:xshell和xftp安装、虚拟机的配置、虚拟机的克隆、虚拟机和我们Windows 10 的网络桥接、免密登录配置、jdk安装,hadoop安装:包括集群规划、分发脚本编写、编写hadoop常用脚本等比较详细完善的安装配置过程。

目录

  • 一、安装环境准备(Linux)
    • 1、网络配置:
    • 2、修改主机名
    • 3、修改hosts文件
    • 4、重启服务器
    • 5、修改Windows 10 中的主机映射文件,即hosts文件
  • 二、远程工具的安装
  • 三、bdc111虚拟机需要配置的如下
    • 1、安装一些需要用的软件包
    • 2、关闭防护墙
    • 3、配置lqs用户具有root权限,可以在后期执行临时的root命令
    • 4、在lqs用户下创建相关文件夹
    • 5、卸载jdk
  • 四、克隆虚拟机
  • 五、虚拟机桥接到Windows 10 配置
  • 六、jdk安装
  • 七、hadoop安装即配置
  • 八、分发脚本编写
  • 九、配置免密登录
  • 十 、hadoop集群配置
  • 十一、编写hadoop常用脚本
  • 十二、启动hadoop集群
  • 十三、验证是否配置成功

一、安装环境准备(Linux)

在进行集群的安装前,我们先要进行多台服务器的安装和基础配置,对于虚拟机里安装Linux系统,请大家自己在百度上进行百度自行安装。先安装一个,后面的我们之间克隆就好。我这里先安装好的是bdc111。对它需要进行一下配置:

1、网络配置:

步骤如下:

#1、打开ifcfg-ens33文件进行网络配置
[lqs@bdc111 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33


需要将第一个画框的值改为static(原本DHCP),其次在增加第二个框中的内容即可。

2、修改主机名

[lqs@bdc111 ~]# vim /etc/hostname
#打开文件后将主机名改成bdc111即可

3、修改hosts文件

[lqs@bdc111 ~]# vim /etc/hosts

修改成如下的样子即可

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.10.112 bdc112
192.168.10.113 bdc113
192.168.10.114 bdc114
192.168.10.115 bdc115
192.168.10.116 bdc116
192.168.10.117 bdc117
192.168.10.118 bdc118

4、重启服务器

[lqs@bdc111 ~]# reboot

5、修改Windows 10 中的主机映射文件,即hosts文件

路径在:C:\Windows\System32\drivers\etc下,修改成这个样子就可以了,如下

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost192.168.10.112 bdc112
192.168.10.113 bdc113
192.168.10.114 bdc114
192.168.10.115 bdc115
192.168.10.116 bdc116
192.168.10.117 bdc117
192.168.10.118 bdc118#修改的时候出现了任何问题,可以评论区问,也可以私信我

ps:记得ping一下百度或者主机(查看主机ip:ipconfig)能否ping通

二、远程工具的安装

免费版点击这里下载安装。

去这里下载xshell。
然后按照引导进行安装就可以了
yum install epel-release

去这里下载xftp
按照指引进行安装即可。

三、bdc111虚拟机需要配置的如下

1、安装一些需要用的软件包

我的是最小安装(Linux)

[lqs@bdc111 ~]# yum install -y epel-release#安装net工具
[lqs@bdc111 ~]# yum install net-tools#安装vim工具
[lqs@bdc111 ~]# yum install vim#安装其它工具
[lqs@bdc111 ~]# yum install -y  psmisc  nc  rsync  lrzsz  ntp libzstd openssl-static tree iotop git
[lqs@bdc111 ~]#

2、关闭防护墙

#临时关闭防火墙
#查看防火墙状态
[lqs@bdc111~]$ systemctl status firewalld#临时关闭防火墙
[lqs@bdc111~]$ systemctl stop firewalld#查看防火墙开机启动状态
[lqs@bdc111~]$     systemctl enable firewalld.service#设置开机时关闭防火墙
[lqs@bdc111~]$ systemctl disable firewalld.service#查看服务是否开机自启
[lqs@bdc111 ~]$ systemctl is-enabled firewalld.service
#disabled 表示开机不自启
#enabled 表示开机自启

详细可以参考我这篇文章:Linux网络配置相关命令

3、配置lqs用户具有root权限,可以在后期执行临时的root命令

配置内容及详细过程如下:

[lqs@bdc112 ~]# vim /etc/sudoers

4、在lqs用户下创建相关文件夹

[lqs@bdc112 ~]# ll
总用量 0
[lqs@bdc112 ~]# mkdir module
[lqs@bdc112 ~]# mkdir software
[lqs@bdc112 ~]# ll
总用量 8
drwxr-xr-x. 2 root root 4096 12月  6 14:00 module
drwxr-xr-x. 2 root root 4096 12月  6 14:00 software   #修改创建两个文件夹的所有者和所属组皆为lqs
[lqs@bdc112 ~]# chown lqs:lqs ./*
[lqs@bdc112 ~]# ll
总用量 8
drwxr-xr-x. 2 lqs lqs 4096 12月  6 14:00 module
drwxr-xr-x. 2 lqs lqs 4096 12月  6 14:00 software

5、卸载jdk

查看Linux自带虚拟机(最小安装的不用管)

[lqs@bdc112 ~]# java -version

如果有出现,则全部卸载

[lqs@bdc112 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

对命令的解释:

命令 解释
rpm -qa 查询所安装的所有rpm软件包
grep -i 忽略大小写
xargs -n1 表示每次只传递一个参数
rpm -e –nodeps 强制卸载软件

重启虚拟机

[lqs@bdc112 ~]# reboot

四、克隆虚拟机

点击模型机的名字,右键管理->克隆->创建完整克隆


克隆出来三台,我这里取名为:bdc112 bdc113 bdc114
然后对他们的hosts文件、ifcfg-ens33文件、hostname文件进行对应的更改即可。


注意:必须要在关机的情况下才可以!!!
如有问题,可以私信我,或者评论区问!!!


五、虚拟机桥接到Windows 10 配置

具体配置参考我的另外一篇文章:编辑VMware网络配置和Windows网络配置,进行配置即可。

六、jdk安装

这里自行百度下载相应版本的hadoop-3.1.3.tar.gz 和Java jdk,我这里使用的是hadoop3.x版本,Java jdk版本是1.828。

1、将jar包解压到我们创建的module文件下

[lqs@bdc112 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/lqs/module/

2、可以查看是否解压成功

[lqs@bdc112 software]$ ll /home/lqs/module/jdk1.8.0_212/

3、配置环境变量

[lqs@bdc112 software]$ sudo vim /etc/profile.d/my_env.sh#在my_env.sh文件中添加如下内容
#JAVA_HOME
export JAVA_HOME=/home/lqs/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

4、source一下

[lqs@bdc112 software]$ source /etc/profile

5、查看是否配置成功

[lqs@bdc112 software]$ java -version
java version "1.8.0_212"#出现则表示配置成功
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

七、hadoop安装即配置

1、将jar包解压到我们创建的module文件下

[lqs@bdc112 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /home/lqs/module/

2、查看是否解压成功

[lqs@bdc112 software]$ ll /home/lqs/module/hadoop-3.1.3/
总用量 208
drwxr-xr-x. 2 lqs lqs   4096 9月  12 2019 bin
drwxrwxr-x. 4 lqs lqs   4096 12月  5 20:43 data
drwxr-xr-x. 3 lqs lqs   4096 9月  12 2019 etc
drwxr-xr-x. 2 lqs lqs   4096 9月  12 2019 include
drwxr-xr-x. 3 lqs lqs   4096 9月  12 2019 lib
drwxr-xr-x. 4 lqs lqs   4096 9月  12 2019 libexec
-rw-rw-r--. 1 lqs lqs 147145 9月   4 2019 LICENSE.txt
drwxrwxr-x. 3 lqs lqs   4096 12月  5 20:43 logs
-rw-rw-r--. 1 lqs lqs  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 lqs lqs   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 lqs lqs   4096 9月  12 2019 sbin
drwxr-xr-x. 4 lqs lqs   4096 9月  12 2019 share

3、环境变量配置
首先打开/etc/profile.d/my_env.sh 文件

[lqs@bdc112 software]$ vim /etc/profile.d/my_env.sh

并在文件末尾添加如下内容:

#HADOOP_HOME
export HADOOP_HOME=/home/lqs/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

4、source一下文件source /etc/profile

八、分发脚本编写

为了方便我们通过bdc112节点将文件等信息同步到其它节点而编写

过程如下:
1、创建bin文件在/home/lqs/下

[lqs@bdc112 ~]$ mkdir bin
[lqs@bdc112 ~]$ cd bin/
[lqs@bdc112 bin]$ vim xsync

2、打开文件后在文件中加入一下内容

#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
for host in bdc112 bdc113 bdc114 #根据自己的主机名来写,我的是bdc112 bdc113 bdc114
doecho ====================  $host  ====================#3. 遍历所有目录,挨个发送for file in $@do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

3、赋给xsync执行的权限chmod +x xsync
注意:记得复制一份xsync到root下的bin目录:

[lqs@bdc112 ~]$ sudo cp xsync /bin/
[lqs@bdc112 ~]$ sudo xsync /etc/profile.d/my_env.sh

九、配置免密登录

请参考我的另外一篇博客:Linux操作之多台服务器配置免密登录

十 、hadoop集群配置

配置需求如下表格

project bdc112 bdc113 bdc114
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
YARN NodeManager ResourceManager
NodeManager
NodeManager

进入到一下hadoop的配置文件夹cd /home/lqs/module/hadoop-3.1.3/etc/hadoop/


注意:
以下配置包括了:
上面表需求的配置
历史服务器配置
日志的聚集配置


1、对core-site.xml进行配置,打开vim core-site.xml,添加如下内容

<configuration><!--指定NameNode的地址--><property><name>fs.defaultFS</name><value>hdfs://bdc112:8020</value></property><!--指定Hadoop数据的存储目录--><property><name>hadoop.tmp.dir</name><value>/home/lqs/module/hadoop-3.1.3/data</value></property><!--配置HDFS网页登录使用的静态用户为lqs--><property><name>hadoop.http.staticuser.user</name><value>lqs</value></property><!-- 配置删除,暂时放在回收站 --><property><name>fs.trash.interval</name><value>1440</value></property>
</configuration>

2、对hdfs-site.xml进行配置,打开hdfs-site.xml,添加如下内容

<configuration><!-- nn web端访问地址--><property><name>dfs.namenode.http-address</name><value>bdc112:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>bdc114:9868</value></property>
</configuration>

3、对yarn-site.xml进行配置,打开yarn-site.xml,添加如下内容

<configuration><!--指定MR走shuffle--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--指定resourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>bdc113</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.log-aggregation-enable</name><value>true</value></property><!--设置日志聚集服务器地址--><property><name>yarn.log.server.url</name><value>http://bdc112:19888/jobhistory/logs</value></property><!--设置日志保留时间为7天--><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><!--Spark相关配置--><!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接          将其杀掉,>默>认是 true --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接          将其杀掉,>默>认是 true --><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property></configuration>

4、对mapred-site.xml进行配置,打开mapred-site.xml,添加如下内容

<configuration><!--指定MapReduce程序运行在Yarn上--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!--历史服务器端地址--><property><name>mapreduce.jobhistory.address</name><value>bdc112:10020</value></property><!--历史服务器web端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>bdc112:19888</value></property></configuration>

5、配置节点信息:
注意:
在写入时不能有空格等其它符号,否则在运行时会报错!!!

这里添加的内容是自己各个节点服务器的名字!

打开[lqs@bdc112 hadoop]$ vim /home/lqs/module/hadoop-3.1.3/etc/hadoop/workers并添加如下内容:

bdc112
bdc113
bdc114

6、分发到各个节点,包括hadoop、jdk、my_env.sh文件

[lqs@bdc112 ~]$ xsync /home/lqs/module/hadoop-3.1.3/
[lqs@bdc112 ~]$ xsync /home/lqs/module/jdk1.8.0_212/
[lqs@bdc112 ~]$ sudo xsync /etc/profile.d/my_env.sh

注意:

记得去对应节点检查一下是否分发到位,同时去每个节点source下my_env.sh文件

十一、编写hadoop常用脚本

1、编写启动、停止的脚本

[lqs@bdc112 bin]$ vim myhadoop.sh

写入一下内容:

#!/bin/bashif [ $# -lt 1 ]
thenecho "没有输入参数(start or stop)..."exit ;
fi
case $1 in
"start")echo " =================== 启动 hadoop 集群 ==================="echo " --------------- 启动 hdfs ---------------"ssh bdc112 "/home/lqs/module/hadoop-3.1.3/sbin/start-dfs.sh"echo " --------------- 启动 yarn ---------------"ssh bdc113 "/home/lqs/module/hadoop-3.1.3/sbin/start-yarn.sh"echo " --------------- 启动 historyserver ---------------"ssh bdc112 "/home/lqs/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop 集群 ==================="echo " --------------- 关闭 historyserver ---------------"ssh bdc112 "/home/lqs/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn ---------------"ssh bdc113 "/home/lqs/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo " --------------- 关闭 hdfs ---------------"ssh bdc112 "/home/lqs/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "输入参数错误..."
;;
esac

注意:
然后保存并chmod +x myhadoop一下

2、编写jpsall脚本

[lqs@bdc112 bin]$ vim jpsall

添加以下代码:

#!/bin/bash
for host in bdc112 bdc113 bdc114
doecho =============== $host ===============ssh $host jps $1 | grep -v Jps
done

注意:
然后保存并chmod +x jpsall一下

十二、启动hadoop集群

注意:
第一次启动hadoop记得格式一下bdc112
节点格式化NameNode

原因和注意事项:
格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化bin/hdfs namenode -format

[lqs@nwh120 hadoop-3.1.3]$ bin/hdfs namenode -format

输入以下启动命令

[lqs@bdc112 ~]$ myhadoop.sh start=================== 启动 hadoop 集群 ===================--------------- 启动 hdfs ---------------
Starting namenodes on [bdc112]
Starting datanodes
Starting secondary namenodes [bdc114]--------------- 启动 yarn ---------------
Starting resourcemanager
Starting nodemanagers--------------- 启动 historyserver ---------------

十三、验证是否配置成功

1、查看是否启动成功:

[lqs@bdc112 ~]$ jpsall
=============== bdc112 ===============
2466 NodeManager
2549 JobHistoryServer
2119 DataNode
1994 NameNode
2730 Jps
=============== bdc113 ===============
1728 NodeManager
1409 DataNode
2115 Jps
1604 ResourceManager
=============== bdc114 ===============
1761 Jps
1409 DataNode
1619 NodeManager
1514 SecondaryNameNode

2、进入网页进行验证:
分别输入以下地址进行查看:
hdfs:http://bdc112:9870/
cluster:http://bdc113:8088/
jobhistory:http://bdc112:19888/

如果您输入jpsall后的内容和我一样,和您看到和我下面截图类似,那基本上就没有问题了。


基于Linux(最小安装)平台的hadoop完全分布式系统搭建详细搭建过程相关推荐

  1. android 短信ril移植,将Android平台的RIL层移植到基于LINUX的通用平台的研究与实现...

    摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相 ...

  2. 基于Linux操作系统UMPC平台明年发布

    2007年10月07日 22:53:00 比特网(ChinaByte)10月7日消息(孙淑艳编译)据国外媒体报道,火狐浏览器厂商Mozilla.芯片制造商Arm公司和嵌入式开源软件厂商MontaVis ...

  3. Hadoop的学习前奏(一)——在Linux上安装与配置Hadoop

    前言 笔者目前是在做Android开发,又是在一个信息安全的公司.公司的主要是做在虚拟机上运行的产品,又涉猎云计算,心想是要去搞一下云计算.自我感觉移动互联网 + 云计算 + 信息安全会是一个很好的方 ...

  4. linux最小安装桌面,Linux工作环境:CentOS7最小安装+Xfce桌面环境

    ref: https://blog.csdn.net/smstong/article/details/44802989 3.1 执行CentOS7 最小安装 去官网下载CentOS-7.0-1406- ...

  5. 电子设计大赛linux,Sierra Wireless推出基于Linux 的强大平台Legato?——EAW电子设计应用...

    可连接至任何云.网络和外围设备,Sierra Wireless日前宣布推出 Legato™ 平台,这是一款基于 Linux 的开源嵌入式平台,旨在简化"设备到云端"的机对机 (M2 ...

  6. 云计算基础平台iaas(openstack)超级详细搭建(一)

    先电云iaas(openstack)搭建(一) 这里我们首先进行基本环境的配置和安装. 由于整个iaas完整安装过程内容过多,我这里将分步进行 为了方便操作和更直观的观察 我这里包括后续步骤主要使用图 ...

  7. 【GO | 基于linux和Windows平台的下载安装及配置】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1. GO 安装 1-1. linux平台安装GO 1-2. Windows平台安装 2. IDE的安装 2-1. l ...

  8. 基于Linux环境安装 jdk 1.8 保姆级教程

    CentOS 8.0 下安装 jdk 1.8 1. 下载 jdk 1.8 2. FTP压缩包文件传输 3. 安装JDK 1.8 1. 下载 jdk 1.8 首先需要下载 linux 版本的 jdk 1 ...

  9. linux npm安装_手把手教你appium框架的搭建—linux

    总体来说,分为以下几步: 1.安装jdk 2.安装node和npm 3.安装android sdk 4.安装appium 5.安装pip及appium-python-client 以下是脚本 #!/b ...

最新文章

  1. 中医科学院临基所携手第四范式助力抗疫工作
  2. java 怎么比较两个日期_如何在Java中比较两个日期?
  3. Linux系统常用命令以及常见问题的解决方法
  4. lintcode: 把排序数组转换为高度最小的二叉搜索树
  5. object-C控制语句
  6. 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...
  7. Altium AD20大电流表层开窗,用特殊粘贴复制平面区域到其他层,阻焊开窗显示沉金LOGO
  8. 机房收费系统合作版(一):开始团队合作之旅
  9. Ubuntu Server 安装桌面untiy
  10. 【贪心School】机器学习课程笔记
  11. 计算机应用及发展,计算机应用及发展趋势.docx
  12. 已经编译好的OpenCV4.5.1----win10(cuda10.0 cudnn7.6.5)
  13. 服务器上配置tp5入口文件,TP5更改入口文件
  14. android设置ip地址连接网络打印机,如何使用IP地址的方式连接网络打印机
  15. 分布式事务解决方案(一)Seata集成和使用
  16. Ruby on Rails 教程
  17. 用一年时间如何能掌握 C++ ?
  18. JAVA使用 Shade 进行依赖冲突处理
  19. DSConv:Efficient convolution operator
  20. vue中使用$refs获取不到DOM元素

热门文章

  1. Windows Azure媒体服务使得伦敦奥运会的云端传输成为可能
  2. python抠图精确到发丝_3行Python代码,实现批量抠图和换底色的方法
  3. mysql 存储过程 动态排序
  4. nexus linux 停止运行,Linux运维知识之nexus 从Window迁移至Linux
  5. Postman-newman基础用法
  6. 系统架构设计师考试题库重点案例:分布式数据库缓存设计
  7. 小白踩坑记:springboot运行一直报错:There was an unexpected error (type=Not Found, status=404).
  8. 移动商务的技术基础----移动通信网(转)
  9. 如何避免使用过多的 if else?
  10. 服务器云平台 系统,服务器云平台系统