hadoop 3.1.3 伪分布式部署
安装环境:Centos7.5,只少2核4G
提前准备:Linux中要安装JDK8,Zookeeper-3.5.8
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld - 修改主机名 - Hadoop集群中,主机名中尽量不要出现-或者_
vim /etc/hostname
将原来的主机名删除,添加自己指定的主机名 - 需要将主机名和IP进行映射
vim /etc/hosts
进入文件之后,除了127.0.0.1以及::1这开头的两行以外,其余的行全部删除
之后添加当前主机的IP 主机名,例如
10.10.153.69 hadoop01 - 关闭SELINUX
vim /etc/selinux/config
将SELINUX属性的值改为disabled - 重启
reboot - 配置免密登录
ssh-keygen
ssh-copy-id
输入主机的密码
测试是否免密成功:ssh hadoop01
如果不需要密码,那么说明免密成功,那么输入logout - 进入/home/software目录,来上传或者下载Hadoop。如果是云主机,那么请利用下面的地址来下载Hadoop,严禁上传
cd /home/software/
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/hadoop-3.1.3.tar.gz - 解压Hadoop安装包
tar -xvf hadoop-3.1.3.tar.gz - 进入Hadoop的配置文件目录
cd hadoop-3.1.3/etc/hadoop/ - 编辑文件
vim hadoop-env.sh
在文件中添加JAVA_HOME,值是JDK的安装路径
export JAVA_HOME=/home/software/jdk1.8
保存退出,重新生效这个文件
source hadoop-env.sh - 编辑文件
vim core-site.xml
添加内容
fs.default.name
hdfs://hadoop01:9000
hadoop.tmp.dir
/home/software/hadoop-3.1.3/tmp
- 编辑文件
vim hdfs-site.xml
添加内容
dfs.replication
1
- 编辑文件
vim mapred-site.xml
添加内容
mapreduce.framework.name
yarn
- 编辑文件
vim yarn-site.xml
添加内容
yarn.resourcemanager.hostname
hadoop01
yarn.nodemanager.aux-services
mapreduce_shuffle
- 编辑文件
vim workers ------- 注意,如果是在Hadoop2.X,那么这个文件是slaves
将原来的localhost删除掉,然后添加当前主机的主机名 - 配置环境变量
vim /etc/profile
在文件末尾添加
export HADOOP_HOME=/home/software/hadoop-3.1.3
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出,重新生效这个文件
source /etc/profile
通过hadoop version命令来确定配置是否有效 - 第一次启动Hadoop之前,需要先进行一次格式化
hadoop namenode -format
如果出现了Storage directory /home/software/hadoop-3.1.3/tmp/dfs/name has been successfully formatted.表示格式化成功 - 进入Hadoop安装目录的子目录sbin下
cd /home/software/hadoop-3.1.3/sbin/ - 编辑文件
vim start-dfs.sh
在文件头部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SERCURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root - 启动HDFS
start-dfs.sh - 通过jps查看,会发现三个进程
NameNode
DataNode
SecondaryNameNode - 编辑文件
vim start-yarn.sh
在文件头部添加
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
YARN_NODEMANAGER_USER=root - 启动YARN
start-yarn.sh - 通过jps查看,会发现多出来两个进程
ResourceManager
NodeManager
可能出现的问题的解决方案
25. 如果出现了Name or Service not known或者是UnknownHost之类的问题,那么检查hosts文件是否配置正确,或者是主机名是否写对
26. 如果出现了commandc not found,那么检查环境变量是否正确,或者修改完环境变量之后是否进行了source
27. 在第一次关闭Hadoop之前,同样修改stop-dfs.sh以及stop-yarn.sh
28. 之后,再次启动Hadoop,那么可以使用start-all.sh。如果单独启动HDFS,那么使用start-dfs.sh;如果单独启动YAR,那么使用start-yarn.sh。如果要关闭,将start命令改成stop命令即可
完全分布式部署
硬件配置:2核4G*3台
环境配置:JDK1.8+Zookeeper3.5.7
- 三台主机关闭防火墙
systemctl stop firewalld
systemctl disable firewalld - 修改三台主机的主机名
vim /etc/hostname
修改对应的主机名,最好是hadoop01~hadoop03 - 将主机名和IP进行映射
vim /etc/hosts
然后将三台主机的主机名和IP配置 - 关系SELINUX
vim /etc/selinux/config
将SELINUX的值改为disabled - 三台主机重启
reboot - 三台主机之间需要相互免密
ssh-keygen
ssh-copy-id root@hadoop01
ssh hadoop01
如果不需要密码,那么输入logout
ssh-copy-id root@hadoop02
ssh hadoop02
如果不需要密码,那么输入logout
ssh-copy-id root@hadoop03
ssh hadoop03
如果不需要密码,那么输入logout - 在第一台主机上进入software目录,下载或者上传Hadoop的安装包
cd /home/software/
云主机下载地址:wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/hadoop-3.1.3.tar.gz - 先将伪分布式保留下来
mv hadoop-3.1.3 hadoop-alone - 解压
tar -xvf hadoop-3.1.3.tar.gz - 进入Hadoop的配置目录
cd /home/software/hadoop-3.1.3/etc/hadoop/ - 编辑文件
vim hadoop-env.sh
添加JAVA_HOME,例如
export JAVA_HOME=/home/software/jdk1.8
保存退出,重新生效
source hadoop-env.sh - 编辑文件
vim core-site.xml
添加内容 fs.defaultFS hdfs://ns hadoop.tmp.dir /home/software/hadoop-3.1.3/tmp ha.zookeeper.quorum hadoop01:2181,hadoop02:2181,hadoop03:2181 - 编辑文件
vim hdfs-site.xml
添加内容 dfs.nameservices ns dfs.ha.namenodes.ns nn1,nn2, nn3 dfs.namenode.rpc-address.ns.nn1 hadoop01:9000 dfs.namenode.rpc-address.ns.nn2 hadoop02:9000 dfs.namenode.rpc-address.ns.nn3 hadoop03:9000 dfs.namenode.http-address.ns.nn1 hadoop01:9870 dfs.namenode.http-address.ns.nn2 hadoop02:9870 dfs.namenode.http-address.ns.nn3 hadoop03:9870 dfs.namenode.shared.edits.dir qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns dfs.journalnode.edits.dir /home/software/hadoop-3.1.3/tmp/journal dfs.namenode.name.dir file:///home/software/hadoop-3.1.3/tmp/hdfs/name dfs.datanode.data.dir file:///home/software/hadoop-3.1.3/tmp/hdfs/data dfs.ha.automatic-failover.enabled true dfs.client.failover.proxy.provider.ns org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa dfs.replication 3 dfs.permissions false - 编辑文件
vim mapred-site.xml
添加内容
mapreduce.framework.name
yarn
- 编辑文件
vim yarn-site.xml
添加内容 yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id ns-yarn yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 hadoop01 yarn.resourcemanager.hostname.rm2 hadoop03 yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore yarn.resourcemanager.zk-address hadoop01:2181,hadoop02:2181,hadoop03:2181 yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop03 - 编辑文件
vim workers
删除掉localhost,将三台主机的主机名写上 - 进入Hadoop安装目录的子目录sbin下
cd /home/software/hadoop-3.1.3/sbin/ - 编辑文件
vim start-dfs.sh
在文件头部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root - 编辑文件
vim start-yarn.sh
在文件头部添加
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn - 远程拷贝给另外两台主机
cd /home/software/
scp -r hadoop-3.1.3 root@hadoop02: P W D s c p − r h a d o o p − 3.1.3 r o o t @ h a d o o p 03 : PWD scp -r hadoop-3.1.3 root@hadoop03: PWDscp−rhadoop−3.1.3root@hadoop03:PWD - 三台主机配置环境变量
vim /etc/profile
在文件末尾添加
export HADOOP_HOME=/home/software/hadoop-3.1.3
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出,重新生效
source /etc/profile
可以通过hadoop version来查看是否配置成功 - 三台主机需要启动Zookeeper
cd /home/software/apache-zookeeper-3.5.7-bin/bin
sh zkServer.sh start
sh zkServer.sh status
如果出现了1个leader+2个follower表示启动成功 - 在第一台主机上格式化Zookeeper - 实际上就是在Zookeeper上注册节点
hdfs zkfc -formatZK
如果出现Successfully created /hadoop-ha/ns in ZK.表示格式化成功 - 在三台主机上启动JournalNode
hdfs --daemon start journalnode - 在第一台主机上格式化NameNode
hadoop namenode -format
如果出现Storage directory /home/software/hadoop-3.1.3/tmp/hdfs/name has been successfully formatted.表示格式化成功 - 在第一台主机上启动NameNode
hdfs --daemon start namenode - 在第二台和第三台主机上格式化NameNode
hdfs namenode -bootstrapStandby
如果出现Storage directory /home/software/hadoop-3.1.3/tmp/hdfs/name has been successfully formatted.表示格式化成功 - 在第二台和第三台主机上启动NameNode
hdfs --daemon start namenode - 在三台节点上启动DataNode
hdfs --daemon start datanode - 在三个节点上启动zkfc
hdfs --daemon start zkfc - 在第三台主机上启动YARN
start-yarn.sh
通过jps查看,第一台主机上出现
NameNode
DataNode
JournalNode
ResourceManager
NodeManager
DFSZKFailoverController
QuorumPeerMain
第二台主机上出现
NameNode
DataNode
JournalNode
NodeManager
DFSZKFailoverController
QuorumPeerMain
第三台主机上出现
NameNode
DataNode
JournalNode
ResourceManager
NodeManager
DFSZKFailoverController
QuorumPeerMain