Hadoop集群环境准备
本篇文档,最终按照如下图所示配置并部署集群
一、准备安装包
阿里云盘获取: https://www.aliyundrive.com/s/sy1jmi5PyMg
在文件夹“安装包”中含有以下内容:
1、jdk安装包( jdk-8u241-linux-x64.tar.gz ) 2、Hadoop编译后的包( hadoop-3.3.0-Centos7-64-with-snappy.tar.gz )
二、准备一台虚拟机
阿里云盘获取: https://www.aliyundrive.com/s/sy1jmi5PyMg
通过vmware创建一台centos7的虚拟机, 02_安装Centos.doc
vmware安装包在文件夹“安装包”中包含, 01_安装VMware虚拟机.doc
finalshell连接工具在文件夹“安装包”中包含, finalshell_install.exe
三、配置虚拟机
1、主机名
vim /etc/hostname
#输入:修改后需要重启服务器生效
node1.itcast.cn
2、配置固定ip
此处配置的固定ip为:10.8.0.151
vim /etc/sysconfig/network-scripts/ifcfg-ens33
参考:https://www.cnblogs.com/cyan-orange/p/15861123.html
3、hosts映射
vim /etc/hosts
#输入:可自定义,但是之后的三台机子的ip要与之相对应
10.8.0.151 node1.itcast.cn node1
10.8.0.152 node2.itcast.cn node2
10.8.0.153 node3.itcast.cn node3
此时同步配置宿主机的hosts文件,也添加上面的配置
windows的hosts文件在:C:\Windows\System32\drivers\etc
4、创建文件夹
mkdir -p /export/server/
mkdir -p /export/data/
mkdir -p /export/software/
5、JDK 1.8安装
上传 jdk-8u241-linux-x64.tar.gz到/export/server/目录下
cd /export/server/
tar zxvf jdk-8u241-linux-x64.tar.gz
6、配置环境变量
vim /etc/profile
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重新加载环境变量文件
source /etc/profile
#检查是否配置成功
java -version
7、防火墙关闭
firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewalld服务
systemctl disable firewalld.service #开机禁用firewalld服务
8、再克隆两台虚拟机作为node2、node3
选中node1,点击克隆
按照上述方法克隆出node2和node3
9、配置node2和node3
使node1和node3在关闭的状态下,开启node2
执行“1、主机名”和“2、配置固定ip”
node2:
设置对对应的主机名:node2.itcast.cn, 取决于你在hosts中定义的是什么内容
ip:10.8.0.152
node3:
设置对对应的主机名:node3.itcast.cn,
ip:10.8.0.153
然后启动node3,重复执行上述操作
完成后,重启服务器
10、集群时间同步
三台机器都执行:
ntpdate ntp5.aliyun.com
11、ssh免密登录(只需要配置node1至node1、node2、node3即可)
#node1生成公钥私钥 (一路回车)
ssh-keygen
#node1配置免密登录到node1 node2 node3
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
至此基础环境已经配置成功,可以做一个虚拟机快照,作为备份
四、安装Hadoop集群
1、上传Hadoop安装包到node1 /export/server
hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
2、修改配置文件
配置文件路径 hadoop-3.3.0/etc/hadoop
cd /export/server/hadoop-3.3.0/etc/hadoop
-
vim hadoop-env.sh
export JAVA_HOME=/export/server/jdk1.8.0_241
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
-
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
-
vim hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
-
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
-
vim yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
-
vim workers node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
3、分发同步hadoop安装包
cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
4、将hadoop添加到环境变量(3台机器都需要配置)
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
5、验证
输入:hadoop
出现下图字样,即为成功
6、格式化namenode
重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行
重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行
重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行
只在node1节点执行即可!!只在node1节点执行即可!!只在node1节点执行即可!!
(因为nomenode节点,我们部署在了node1节点)
hdfs namenode -format
上述操作成功后:
今后按照下面的方法进行启动:
7、集群启动
脚本一键启动
[root@node1 ~]
Starting namenodes on [node1]
Last login: Thu Nov 5 10:44:10 CST 2020 on pts/0
Starting datanodes
Last login: Thu Nov 5 10:45:02 CST 2020 on pts/0
Starting secondary namenodes [node2]
Last login: Thu Nov 5 10:45:04 CST 2020 on pts/0
[root@node1 ~]
Starting resourcemanager
Last login: Thu Nov 5 10:45:08 CST 2020 on pts/0
Starting nodemanagers
Last login: Thu Nov 5 10:45:44 CST 2020 on pts/0
或者:
start-all.sh
stop-all.sh
8、验证启动是否成功
jps包含以下的相关信息即可:(与我们搭建的集群配置相同)
Node1:NodeManager、DataNode、NameNode、ResourceManager
Node2:SecondaryNameNode、NodeManager、DataNode
Node3:NodeManager、DataNode
9、Web UI页面
- HDFS集群:http://node1:9870/
- YARN集群:http://node1:8088/
通过黑马视频学习总结,附黑马视频链接: https://www.bilibili.com/video/BV1CU4y1N7Sh?p=26&spm_id_from=pageDriver
|