文章目录
1. 基础环境准备
1.1 三台Linux服务器:CentOS7
VMware搭建CentOS7,参考VMware14安装CentOS7,以及网络连接设置
1.2 JDK1.8
CentOS7安装JDK8,参考CentOS7安装JDK1.8
搭建好一台之后,克隆出两份。右键虚拟名称–管理–克隆–下一步–下一步–创建完整克隆。
克隆完毕后,需要修改ip地址和主机名
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
分别修改下ip地址即可。
改完之后,重启网络服务:
service network restart
另外还需要修改一下主机名:
参考:centos修改主机名的正确方法
1.3 修改hosts
三台Linux服务器,分别:
vi /etc/hosts
将下面语句复制进去保存
172.16.1.252 keji01
172.16.1.253 keji02
172.16.1.254 keji03
这样我们可以使用主机名来操作了。
1.4 关闭防火墙
查看防火墙状态:
firewall-cmd --state
关闭防火墙:
systemctl stop firewalld.service
开机不启动防火墙
systemctl disable firewalld
参考CentOS7使用firewalld打开关闭防火墙与端口
1.5 设置ssh免密码登录
ssh-keygen -t rsa //在root用户使用ssh工具生成秘钥(也可以使用普通用户)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //复制一份秘钥
之后输入ssh keji01 输入yes,不用输入密码即可登录表示成功
完成这一步之后,还需要配置主节点ssh免密码登录从节点,因为从节点的进程由主节点启动。
将主节点的秘钥文件传输给从节点即可:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@keji02
root为从节点的一个用户,keji02为从节点主机名
输入从节点密码即可。
2.Hadoop集群安装
2.1 Hadoop安装包下载
本文选择最新的Hadoop3.1.1。下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz。
下载完成之后,上传到虚拟机中,我的上传目录是/home/develop/app
2.2 集群规划
主节点:keji01 从节点:keji02、keji03
keji01 namenode、resourcemanager、secondarynamenode
keji02 datanode、nodemanager
keji03 datanode、nodemanager
2.3 解压
cd /home/develop
tar -zxvf hadoop-3.1.1.tar.gz
解压之后,会出现hadoop-3.1.1目录
2.4 修改配置文件
hadoop的配置文件,主要在etc/hadoop下面
cd /home/develop/hadoop-3.1.1/etc/hadoop/
修改hadoop-env.sh
主要魔改JAVA_HOME和日志目录
export JAVA_HOME=/home/develop/jdk1.8.0_191
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
修改yarn-env.sh
export JAVA_HOME=/home/develop/jdk1.8.0_191
export YARN_LOG_DIR=/data/hadoop_repo/logs/yarn
修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://keji01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
注意修改主机名
修改hdfs-site.xml(fixme)
修改从节点数量,这里有2个。
在哪个节点启动secondary
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>keji01:50090</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>keji01</value>
</property>
</configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
表示MapReduce在Yarn上运行
修改workers
vi workers
keji02
keji03
2.5 定义用户
cd /home/develop/hadoop-3.1.1/sbin
vim start-dfs.sh
vim stop-dfs.sh
添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.sh
vi stop-yarn.sh
添加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
2.6 将Hadoop安装包拷贝到从节点
scp -rq hadoop-3.1.1 keji02:/home/develop
scp -rq hadoop-3.1.1 keji03:/home/develop
2.7 在主节点格式化HDFS系统
cd /home/develop/hadoop-3.1.1/bin
./hdfs namenode -format
看到success表示格式化成功
3. 启动Hadoop
cd /home/develop/hadoop-3.1.1/sbin
./start-all.sh
keji01输入jps
keji02输入jps
keji03输入jps
看到这些即表示成功。
如果提示-bash: /home/develop/jdk1.8.0_191/bin/jps: 权限不够
执行
chmod +x /home/develop/jdk1.8.0_191/bin/jps