写在最前 学习一小时、环境搭几天-_-||
许多地方与伪分布式步骤相同,多打快照防止崩溃。简略记录一下以防哪天又崩了方便随时复原
一、搭建准备 1.1 总体流程
准备3台客户机(关闭防火墙、静态ip、主机名称)
安装JDK
配置环境变量
安装Hadoop
配置集群
配置ssh
群起并测试集群
1.2 集群部署规划
master(192.168.1.100)
slave1(192.168.1.101)
slave2(192.168.1.102)
HDFS
NameNode DataNode
DataNode
SecondaryNameNode DataNode
二、步骤流程 2.1 软件安装 1、在master机器的/opt/目录下床架两个文件夹 /opt/apps 用于安装软件 /opt/soft 用于存放安装包
1 [root@master ~]# mkdir /opt/soft /opt/apps
2、将jdk和Hadoop的安装包上传到master机器的/opt/soft目录下。文件的上传需要用到crt工具的sftp功能。alt+P组合键打开sftp界面
3、解压jdk和hadoop到/opt/apps目录下
1 2 3 [root@master soft]# cd /opt/soft/ [root@master soft]# tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/apps/ [root@master soft]# tar -zxvf hadoop-2.9.2.tar.gz -C /opt/apps/
4、将Hadoop安装目录和jdk安装目录配置到环境变量中
(1)首先进入到jdk的安装目录/opt/apps下
1 2 [root@master soft]# cd /opt/apps [root@master apps]# cd jdk1.8.0_241/
(2)将当前目录打印到控制台,然后用鼠标选中复制(crt中,选中就是复制)
1 2 [root@master jdk1.8.0_241]# pwd /opt/apps/jdk1.8.0_241
(3)使用vim打开/opt/profile文件
1 [root@master jdk1.8.0_241]# vim /etc/profile
按下G键,将光标移动到最后一行。然后在按下o键盘换行并进入编辑模式,在最后一行的下面添加一下的内容:
1 2 export JAVA_HOME=/opt/apps/jdk1.8.0_241 export PATH=$PATH:$JAVA_HOME/bin
按下esc键,回到正常模式。按下:输入wq保存并退出。
刷新环境变量
1 [root@master jdk1.8.0_241]# source /etc/profile
(4)hadoop的环境变量和jdk环境变量的配置的操作手法完全一样。需要在/opt/profile文件的最后一行添加如下内容:
1 2 export HADOOP_HOME=/opt/apps/hadoop-2.9.2 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后保存退出(:wq),不要忘了再次刷新环境变量
1 [root@master hadoop-2.9.2]# source /etc/profile
(5)看一看装好没有
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@master hadoop-2.9.2]# java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) [root@master hadoop-2.9.2]# [root@master hadoop-2.9.2]# hadoop version Hadoop 2.9.2 Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704 Compiled by ajisaka on 2018-11-13T12:42Z Compiled with protoc 2.5.0 From source with checksum 3a9939967262218aa556c684d107985 This command was run using /opt/apps/hadoop-2.9.2/share/hadoop/common/hadoop-common-2.9.2.jar
2.2 Hadoop配置 在配置hadoop的配置文件之前,一定要学会找到hadoop的配置文件在哪儿。Hadoop的配置文件在安装目录下的etc/Hadoop/目录下。我的安装目录是/opt/apps/ hadoop-2.9.2,那么其配置文件的完整目录就应该是/opt/apps/ hadoop-2.9.2/etc/Hadoop/,我们在进行配置的时候首先就要进入到这个目录下
1 [root@master hadoop-2.9.2]# cd /opt/apps/hadoop-2.9.2/etc/hadoop/
使用ll命令查看hadoop的配置文件有哪些
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@master hadoop]# ll 总用量 160 -rw-r--r--. 1 501 dialout 7861 11月 13 2018 capacity-scheduler.xml -rw-r--r--. 1 501 dialout 1335 11月 13 2018 configuration.xsl -rw-r--r--. 1 501 dialout 1211 11月 13 2018 container-executor.cfg -rw-r--r--. 1 501 dialout 774 11月 13 2018 core-site.xml -rw-r--r--. 1 501 dialout 4133 11月 13 2018 hadoop-env.cmd -rw-r--r--. 1 501 dialout 4969 11月 13 2018 hadoop-env.sh -rw-r--r--. 1 501 dialout 2598 11月 13 2018 hadoop-metrics2.properties -rw-r--r--. 1 501 dialout 2490 11月 13 2018 hadoop-metrics.properties -rw-r--r--. 1 501 dialout 10206 11月 13 2018 hadoop-policy.xml -rw-r--r--. 1 501 dialout 775 11月 13 2018 hdfs-site.xml -rw-r--r--. 1 501 dialout 2230 11月 13 2018 httpfs-env.sh -rw-r--r--. 1 501 dialout 1657 11月 13 2018 httpfs-log4j.properties -rw-r--r--. 1 501 dialout 21 11月 13 2018 httpfs-signature.secret -rw-r--r--. 1 501 dialout 620 11月 13 2018 httpfs-site.xml -rw-r--r--. 1 501 dialout 3518 11月 13 2018 kms-acls.xml -rw-r--r--. 1 501 dialout 3139 11月 13 2018 kms-env.sh -rw-r--r--. 1 501 dialout 1788 11月 13 2018 kms-log4j.properties -rw-r--r--. 1 501 dialout 5939 11月 13 2018 kms-site.xml -rw-r--r--. 1 501 dialout 14016 11月 13 2018 log4j.properties -rw-r--r--. 1 501 dialout 1076 11月 13 2018 mapred-env.cmd -rw-r--r--. 1 501 dialout 1507 11月 13 2018 mapred-env.sh -rw-r--r--. 1 501 dialout 4113 11月 13 2018 mapred-queues.xml.template -rw-r--r--. 1 501 dialout 758 11月 13 2018 mapred-site.xml.template -rw-r--r--. 1 501 dialout 10 11月 13 2018 slaves -rw-r--r--. 1 501 dialout 2316 11月 13 2018 ssl-client.xml.example -rw-r--r--. 1 501 dialout 2697 11月 13 2018 ssl-server.xml.example -rw-r--r--. 1 501 dialout 2250 11月 13 2018 yarn-env.cmd -rw-r--r--. 1 501 dialout 4876 11月 13 2018 yarn-env.sh -rw-r--r--. 1 501 dialout 690 11月 13 2018 yarn-site.xml
(1)配置hadoop-env.sh
1 [root@master hadoop]# vim hadoop-env.sh
找到如下一行
1 2 # The java implementation to use. export JAVA_HOME=${JAVA_HOME}
将JAVA_HOME更改成为自己的安装目录
1 export JAVA_HOME=/opt/apps/jdk1.8.0_241
(2)配置core-site.xml
1 [root@master hadoop]# vim core-site.xml
找到 这一对标签,在这一对标签中输入如下的配置信息:
1 2 3 4 5 6 7 8 9 10 11 12 <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <!-- 指定Hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/apps/hadoop-2.9.2/data/tmp</value> </property>
保存并退出 ZZ
(3)配置hdfs-site.xml
1 [root@master hadoop]# vim hdfs-site.xml
在该文件的一对configuration>标签中,编写如下配置,然后保存退出
1 2 3 4 5 6 7 8 9 10 11 <property> <name>dfs.replication</name> <value>3</value> </property> <!-- 指定Hadoop辅助名称节点主机配置 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave2:50090</value> </property>
(4)配置mapred-site.xml
需要先将mapred-site.xml.template这个模板文件复制一根重命名为mapred-site.xml
1 [root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
然后打开mapred-site.xml文件
1 [root@master hadoop]# vim mapred-site.xml
在该文件的一对configuration>标签中,编写如下配置,然后保存退出
1 2 3 4 5 <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
(5)配置yarn-site.xml
1 [root@master hadoop]# vim yarn-site.xml
在该文件的一对configuration>标签中,编写如下配置,然后保存退出
1 2 3 4 5 6 7 8 9 10 <!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>slave1</value> </property> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
(6)配置slaves文件
1 [root@master hadoop]# vim slaves
在文件的后面添加如下的内容
2.3 配置master到slave1和slave2的免密登陆 1 [root@master hadoop]# ssh-keygen
然后三次回车
将公钥拷贝到包括自身在内的三台机器上
1 2 3 4 [root@master hadoop]# ssh-copy-id master root@master's password: [root@master hadoop]# ssh-copy-id slave1 [root@master hadoop]# ssh-copy-id slave2
2.4 将安装好的软件从master传到slave 到slave1
1 2 [root@master hadoop]# scp /etc/profile slave1:/etc/ [root@master hadoop]# scp -r /opt/apps slave1:/opt/
到slave2
1 2 [root@master share]# scp /etc/profile slave2:/etc/ [root@master share]# scp -r /opt/apps/ slave2:/opt/
使用crt登陆slave1和slave2,并且刷新环境变量
1 2 [root@slave1 ~]# source /etc/profile [root@slave2 ~]# source /etc/profile
2.5 启动测试 在master上格式化namenode
1 [root@master share]# hadoop namenode –format
启动hadfs(使用群起的方式启动)
在master机器上
1 [root@master hadoop]# start-dfs.sh
检查进程都在不在
1 2 3 4 [root@master hadoop]# jps 25652 DataNode 25560 NameNode 25901 Jps
打开浏览器,在地址栏中输入:192.168.1.100:50070看看Overview都有没有什么问题