版本:Centos7 Haddop3.2.1 JDK1.8
装备工作:
在安装前先要确保三台服务器之间能够ping通,已经安装了jdk,主机名的设置以及hosts文件的修改(ip和主机名映射关系),还有各主机的免密登录以及关闭防火墙。
本次安装用到的三台虚拟机如下:
ip | hostname |
192.168.59.101 | hadoop1(主机节点) |
192.168.59.102 | hadoop2(从节点) |
192.168.59.103 | hadoop3(从节点) |
1、设置主机名称
hostnamectl set-hostname hostname
2、修改hosts文件添加ip映射关系
在三台机器中打开并编辑 vim /etc/hosts文件并追加ip和主机名的映射关系
3、配置免密登录
以hoaddp1为例,我们执行如下命令生成密匙
ssh-keygen -t rsa
执行这条命令一直按回车即可,生成成功后出现如下界面:
然后另外两台机器也要执行如上操作,这样三台机器就成功的生成了密匙,我这里使用的是root用户,密匙生成在~/.ssh/目录下,接下来我们需要把三台服务器生成的公匙都追加到各服务器的~/.ssh/authorized_keys文件中,操作如下:
#在hadoop1、hadoop2、hadoop3中都执行下面这三台命令
ssh-copy-id -i hadoop1
ssh-copy-id -i hadoop2
ssh-copy-id -i hadoop3
这样我们三台机器之间就可免密登录了。
4、关闭防火墙
#关闭防火墙
systemctl stop firewalld
#禁止开机启用防火墙
systemctl disable firewalld
集群安装Hadoop
1、下载安装包
在安装之前需要下载一下hadoop的安装包,由于官网下载较慢我这里贴出了一个镜像下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
2、解压
下载好之后上传到服务器,我这里上传到/opt目录中,然后解压:
tar -zxvf hadoop-3.2.1.tar.gz
3、修改配置文件
hadoop的配置文件在hadoop目录下的etc/hadoop中,这里只修改其中一台服务器的,其他的也一样,只要拷贝过去就行。
3.1、修改hadoop-env.sh文件,增加环境变量信息
vim /opt/hadoop/etc/hadoop/hadoop-env.sh
添加如下配置:
export JAVA_HOME=/usr/local/src/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
注意:这两个目录是根据你的自己的配置而定的,不一定和我的一样。
3.2、修改core-site.xml文件
注意fs.defaultFS属性中的主机名需要和你配置的主机名保持一致
vim /opt/hadoop/etc/hadoop/core-site.xml
添加如下配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
3.3、修改hdfs-site.xml文件
注意:这里把hdfs中文件副本的数量设置为2,集群中副本数一定要小于等于从节点数
vim /opt/hadoop/etc/hadoop/hdfs-site.xml
添加如下配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:50090</value>
</property>
</configuration>
3.4、修改mapred-site.xml
设置mapreduce使用的资源调度框架
vim /opt/hadoop/etc/hadoop/mapred-site.xml
添加如下配置:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.5、修改yarn-site.xml
设置yarn上支持运行的服务和环境变量白名单
vim /opt/hadoop/etc/hadoop/yarn-site.xml
添加如下配置:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
</configuration>
3.6、修改workers文件
增加所有从节点的主机名,一个一行,我这里使用hadoop1做主节点,那么hadoop2、hadoop3就是从节点了
vim /opt/hadoop/etc/hadoop/workers
首先删除文件中的默认localhost,然后添加从节点的主机名:
hadoop2
hadoop3
4、修改启动脚本
1、修改start-dfs.sh,stop-dfs.sh这两个脚本文件在文件中前面都增加如下内容:
这两个文件在hadoop目录下的sbin/目录下,修改内容如下:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2、修改start-yarn.sh,stop-yarn.sh这两个文件在文件前面增加人如下内容:
这两个文件在hadoop目录下的sbin/目录下,修改内容如下:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
到此一台服务器就配置完成了,其他两台也配置也和上面一模一样,你只需要拷贝过去就行了,拷贝很多种怎么方便怎么来、就不贴出来了。
5、格式化namenode
在hadoop1中切换到hadoop目录下,执行如下命令:
bin/hdfs namenode -format
如果你看得到如下输出就说明你格式化成功了!
6、启动集群
在主节点的hadoop目录下执行如下命令启动所有进程:
sbin/start-all.sh
7:验证集群
接下来用jps这个命令来查看三个节点中已启动的进程来验证集群是否成功:
hadoop1:
hadoop2:
hadoop3:
除了用jps来验证还可以在浏览器中访问cluster界面也是可以的:
http://节点ip:8088
我的如下:
如果你没有访问到有可能是你的防火墙没有关闭。
到此一个简单的hadoop集群就搭建好了,理解有限,仅供自己参考!
来源:CSDN
作者:zzqit
链接:https://blog.csdn.net/zzqaaasss/article/details/104644911