首页技术文章正文

Hadoop-3.1.2完全分布式环境搭建(Windows 10)【黑马大数据培训】

更新时间:2022年12月21日 18时25分28秒 来源:黑马程序员论坛

黑马中级程序员课程

 Hadoop原理架构本人就不在此赘述了,可以自行百度,本文仅介绍Hadoop-3.1.2完全分布式环境搭建(本人使用三个虚拟机搭建)。
  首先,步骤:
  ① 准备安装包和工具:
  hadoop-3.1.2.tar.gz  jdk-8u221-linux-x64.tar.gz(Linux环境下的JDK)  CertOS-7-x86_64-DVD-1810.iso(CentOS镜像)工具:WinSCP(用于上传文件到虚拟机),SecureCRTP ortable(用于操作虚拟机,可复制粘贴Linux命令。不用该工具也可以,但是要纯手打命令),VMware Workstation Pro
  ② 安装虚拟机:本人使用的是VMware Workstation Pro,需要激活。(先最小化安装一个虚拟机Master,配置完Hadoop之后再克隆两个Slave)
  ③ 配置虚拟机:修改用户名,设置静态IP地址,修改host文件,关闭防火墙,安装Hadoop,安装JDK,配置系统环境,配置免密码登录(必要)。
  ④ 配置Hadoop:配置hadoop-env.sh,hdfs-site.xml,core-site.xml,mepred-site.xml,yarn-site.xml,workers文件(在Hadoop-2×中是slaves文件,用于存放从节点的主机名称,或者IP地址)
  ⑤ 克隆虚拟机:克隆两个Slave,主机名称分别是Slave1,Slave2。然后修改Slave的Hadoop配置。
  ⑥ namenode格式化:分别对Master、Slave1,Slave2执行hadoop namenode -format命令。
  ⑦ 启动hdfs和yarn:在Master上执行start-all.sh命令。待启动完成之后,执行jps命令查看进程,应包含namenode,secondarynamenode,resourcemaneger三个进程。Slave上有datanode,nodemanager进程。
  ⑧ 检查测试:先修改真实主机的host(IP地址与Master的映射)在浏览器中输入Master:9870回车,进入hdfs,点击上方datanode应该可以看到下面有两个节点;输入Master:8088回车,进入资源调度管理(yarn)
好了,开始吧。二、准备工具
  hadoop-3.1.2.tar.tz下载地址:http://mirror.bit.edu.cn/apache/ ... hadoop-3.1.2.tar.gz
  jdk-8u221-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwo ... nloads-2133151.html
  CentOS下载地址:http://isoredirect.centos.org/ce ... x86_64-DVD-1810.iso
  WinSCP下载地址: https://winscp.net/eng/download.php
  SecureCRTP ortable下载地址: http://fs2.download82.com/softwa ... able/scrt675_u3.exe
  VMware Workstation Pro下载地址:http://download3.vmware.com/soft ... 15.1.0-13591040.exe
  附VMware Workstation Pro秘钥:
  YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8
  UG5J2-0ME12-M89WY-NPWXX-WQH88
  UA5DR-2ZD4H-089FY-6YQ5T-YPRX6
三、安装虚拟机
  此步略,详情之后发布
四、配置虚拟机  1.修改用户名:[size=1em]
hostnamectl --static set-hostname Master
  2.设置静态IP地址
  首先查看一下原本自动获取到的网关和DNS,记下来
[size=1em][color=blue !important][size=1em]
[color=blue !important]+ View Code
[size=1em]
1
2
3
4
[root@Master ~]# IP routing table Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface default         192.168.28.2(网关)    0.0.0.0         UG        0 0          0 ens33 192.168.28.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33<br data-filtered="filtered"><br data-filtered="filtered">
[size=1em]
1
[root@Master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33  //修改ifcfg-ens33文件,执行此命令后进入如下界面
  
  进入界面后按“I”键进入编辑模式,修改或添加图中标红部分。“static”表示静态地址,“netmask”子网掩码,gateways是网关,设置为上一步查看得到的即可。修改后按“esc”退出编辑模式。输入":wq"保存退出。然后输入以下代码更新网络配置。
[size=1em]
1
systemctl restart network
  3.修改hosts文件
  注明:本人设置Master的IP地址为192.168.28.132,Slave1和Slave2分别为192.168.28.133,192.168.28.134
  输入以下代码修改hosts文件(在真实主机中也需要添加):
[size=1em]
1
vi /etc/hosts<br data-filtered="filtered">添加:<br data-filtered="filtered">192.168.28.132  Master<br data-filtered="filtered">192.168.28.133  Slave1<br data-filtered="filtered">192.168.28.134  Slave2
  4.关闭防火墙
  关闭防火墙代码:
[size=1em]
1
2
systemctl stop firewalld.service  //临时关闭 systemctl disable firewalld.service  //设置开机不自启
  5.安装Hadoop和JDK
  先创建两个文件夹:
[size=1em]
1
2
mkdir /tools   //用来存放安装包 mkdir /bigdata    //存放解压之后的文件夹
  使用WinSCP上传压缩包:登录后找到已下载好的压缩包按如下步骤点击上传即可。
  上传文件后,虚拟机端进入tools文件夹并解压文件:
[size=1em]
1
2
cd /tools  //进入tools文件夹 tar -zvxf jdk-8u221-linux-x64.tar.gz  -C /bigdata/     //解压文件到bigdata目录下<br data-filtered="filtered">tar -zvxf hadoop-3.1.2.tar.gz -C /bigdata/<br data-filtered="filtered">
  6.配置系统环境[size=1em]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vi ~/.bash_profile 添加: export JAVA_HOME=/bigdata/jdk1.8.0_221 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export HADOOP_HOME=/bigdata/hadoop-3.1.2 export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin<br data-filtered="filtered"><br data-filtered="filtered">保存退出,让环境变量生效:
[size=1em]
1
source ~/.bash_profile
  7.配置免密登录(重要)[url=][/url] ssh-keygen -t rsa     (直接回车3次)cd ~/.ssh/ssh-copy-id -i id_rsa.pub root@Master ssh-copy-id -i id_rsa.pub root@Slave1 ssh-copy-id -i id_rsa.pub root@Slave2 测试是否成功配置(在配置完Slave之后测试): ssh Slave1 可以登录到Slave1节点[url=][/url] 五、配置Hadoop
  Hadoop-3.1.2中有许多坑,在2X版本中有些默认的不需要特别配置,但在Hadoop-3.1.2中需要。
  hadoop-env.sh配置:
[size=1em]
1
2
3
4
5
6
7
8
9
cd  /bigdata/hadoop-3.1.2/etc/hadoop/ vi hadoop-env.sh 添加: export JAVA_HOME=/bigdata/jdk1.8.0_221 export HADOOP_HOME=/bigdata/hadoop-3.1.2 export PATH=$PATH:/bigdata/hadoop-3.1.2/bin export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native" export HADOOP_PID_DIR=/bigdata/hadoop-3.1.2/pids     //PID存放目录,若没有此配置则默认存放在tmp临时文件夹中,在启动和关闭HDFS时可能会报错 #export HADOOP_ROOT_LOGGER=DEBUG,console   //先注释掉,有问题可以打开,将调试信息打印在console上
  hdfs-site.xml:
[size=1em]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>        <property>           <name>dfs.replication</name>    //冗余度,默认为3           <value>1</value>     </property>     <property>         <name>dfs.datanode.data.dir</name>         <value>/bigdata/hadoop-3.1.2/dfs/tmp/data</value>     </property>     <property>         <name>dfs.namenode.name.dir</name>         <value>/bigdata/hadoop-3.1.2/dfs/tmp/name</value>     </property>     <property>         <name>dfs.permissions</name>         <value>false</value>     </property> </configuration>
  mapred.site.xml:
[size=1em]
1
2
3
4
5
6
7
8
9
10
<configuration>     <property>         <name>mapreduce.framework.name</name>         <value>yarn</value>     </property>     <property>         <name>mapred.job.tracker</name>         <value>Master:9001</value>     </property> </configuration>
  yarn-site.xml:
[size=1em]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>     <property>         <name>yarn.nodemanager.aux-services</name>         <value>mapreduce_shuffle</value>     </property>     <property>         <name>yarn.resourcemanager.hostname</name>         <value>Master</value>     </property> <property>     <name>yarn.log-aggregation-enable</name>     <value>true</value> </property> <property>     <name>yarn.log-aggregation.retain-seconds</name>     <value>604800</value> </property> </configuration>
  core-site.xml:
[size=1em]
1
2
3
4
5
6
7
8
9
10
<configuration>     <property>         <name>fs.defaultFS</name>         <value>hdfs://Master:9000</value>     </property>     <property>         <name>hadoop.tmp.dir</name>         <value>/bigdata/hadoop-3.1.2/tmp</value>     </property> </configuration>
  workers:把默认的localhost删掉
[size=1em]
1
2
Slave1 192.168.28.133 Slave2 192.168.28.134
  yarn-env.sh  添加:
[size=1em]
1
2
3
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
  进入/bigdata/hadoop-3.1.2/sbin,修改start-dfs.sh,stop-dfs.sh,都添加:
[size=1em]
1
2
3
4
HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
六、克隆虚拟机
  克隆两个从节点虚拟机,主机名称分别为Slave1,Slave2(需要进入虚拟机中修改),然后分别修改IP地址(具体方法上面有)重启网络,重启虚拟机。
  重启完成后进行namenode格式化:分别对Master、Slave1,Slave2执行:
[size=1em]
1
hadoop namenode -format
  对Master执行
[size=1em]
1
start-all.sh  //启动hdfs和yarn
  待完成后用jps查看进程:
[size=1em]
1
2
3
4
5
[root@Master ~]# jps 7840 ResourceManager 8164 Jps 7323 NameNode 7564 SecondaryNameNode
  两Slave的进程:
[size=1em]
1
2
3
包含以下两个: DataNode NodeManager
七、检查
  浏览器输入:在浏览器中输入Master:9870回车,进入hdfs管理页面,点击上方datanode应该可以看到下面有两个节点;
  输入Master:8088回车,进入资源调度管理(yarn)
  配置到此结束。接下来学习编写Job程序。

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 软件测试培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


分享到:
在线咨询 我要报名
和我们在线交谈!