随着时间的推移,大数据不断发展,相关的技术也在不断的发展。其中hadoop就已经到了目前的3.x版本了。接下来,我们也来看看如何搭建3.x版本的环境。
环境准备软件版本:
虚拟机:3台
操作系统:centOS 7
jdk:1.8
hadoop:3.3.3
系统用户:
- root用户:系统管理员
- hd用户:普通用户,主要用于hadoop的操作
删除自带的Linux环境
yum remove -y java*
切换到hd用户,然后在用户目录下创建一个appw目录,上传准备好的jdk压缩包,然后进行解压
su - hd # 切换到hd用户 mkdir /home/hd/app cd /home/hd/app tar -zxvf jdk-8u121-linux-x64.tar.gz
为了方便操作,我们将解压后的jdk目录进行改名
mv jdk1.8.0_121/ java
设置环境变量
vim /etc/profile # 然后添加下面内容 export JAVA_HOME=jdk的解压目录 export PATH=$PATH:$JAVA_HOME/bin #然后保存退出,使配置文件生效 source /etc/proflie # 查看是否生效 java -version
如果能查到下面信息则安装成功
然后将环境复制到另外两台机器上
# 切换到hd用户,然后将java环境复制过去 su - hd scp -r Java环境目录 hd@node_1:存放目录 scp -r Java环境目录 hd@node_2:存放目录 # 切换到root用户将/etc/profile文件复制过去 su root scp /etc/profile hd@node_1:/etc/ scp /etc/profile hd@node_2:/etc/
复制过去后,登录到其他两台设备上,让环境变量生效即可。
安装hadoop- 修改主机名
分别将三台主机的主机名进行修改,改成自己能够区分三个节点的名字即可
hostnamectl set-hostname master hostnamectl set-hostname slave01 hostnamectl set-hostname slave02
- 修改/etc/hosts文件
su root vim /etc/hosts # 往文件添加如下内容,分别是三台主机ip 主机名 IP地址 master IP地址 slave01 IP地址 slave02
然后将这个文件同步到其他两台主机
scp /etc/hosts root@slave01:/etc/ scp /etc/hosts root@slave02:/etc/
- 关闭防火墙
systemctl stop firewalld # 临时关闭 systemctl disable firewalld # 永久关闭 systemctl statue firewalld # 查看状态
- 配置免密登录
需要做的免密包括:
master ----> slave01
master ----> slave02
master ----> master
生成秘钥
su - hd ssh-keygen
然后将秘钥复制到其他两台节点上
ssh-copy-id master ssh-copy-id salve01 ssh-copy-id salve02
测试免密是否成功,可以直接登录过去则是免密成功。
ssh slave0
- 开始配置hadoop
安装下载地址:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz
解压
cd /home/apps tar -zxvf tar -zxvf hadoop-3.3.3.tar.gz
配置环境变量
su root vim /etc/profile # 添加以下内容 export HADOOP_HOME=hadoop解压目录 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 让配置文件生效 source /etc/profile # 测试配置是否成功 hadoop version
修改配置文件
/home/hd/apps/hadoop-3.3.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/home/hd/apps/java 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
/home/hd/apps/hadoop-3.3.3/etc/hadoop/core-site.xml
fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /home/hd/apps/hadoop/tmp fs.trash.interval 1440
/home/hd/apps/hadoop-3.3.3/etc/hadoop/hdfs-site.xml
dfs.replication
2
dfs.namenode.http-address
master:50070
dfs.namenode.secondary.http-address
master:50090
dfs.namenode.name.dir
/home/hd/apps/hadoop/namenode
dfs.datanode.data.dir
/home/hd/apps/hadoop/datanode
/home/hd/apps/hadoop-3.3.3/etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/home/hd/apps/hadoop
mapreduce.map.env
HADOOP_MAPRED_HOME=/home/hd/apps/hadoop
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/home/hd/apps/hadoop
/home/hd/apps/hadoop-3.3.3/etc/hadoop/yarn-site.xml
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
/home/hd/apps/hadoop-3.3.3/etc/hadoop/workers
slave01 slave02
分发环境,将配置的hadoop复制到其他两台主机上
su hd scp -r hadoop目录 hd@slave01:目标路径 scp -r hadoop目录 hd@slave02:目标路径 su root scp /etc/profile hd@slave01:/etc/ scp /etc/profile hd@slave02:/etc/
格式化namenode
hdfs namenode -format
- 启动hadoop并进行测试
hadoo集群启动,需要启动内部包含的两个集群框架,HDFS集群和YARN集群。
启动方式可以单个节点逐个启动,也可以通过脚本一键启动
# 启动hdfs start-dfs.sh # 启动yarn start-yarn.sh # 查看进程 jps
hadoop正常启动后,默认是会开放50070端口和8088端口,分别用于监听HDFS和YARN集群的。
在本地操作系统的浏览器上,通过IP地址和端口访问即可。
到这里我们的集群搭建就已经完成了。



