1. 集群结构(hadoop3.1.1 + zookeeper3.5.5 + hbase2.0.0 + spark2.3.4 + phoenix5.0.0)
类型 | zookeeper | Hbase | Spark | Phoenix | |
---|---|---|---|---|---|
master | NameNode | 否 | HMaster | Master | core+server jar包 |
slave1 | DataNode | 是 | HRegionServer | Worker | core+server jar包 |
slave2 | DataNode | 是 | HRegionServer | Worker | core+server jar包 |
slave3 | DataNode | 是 | HRegionServer | Worker | core+server jar包 |
2. hosts
文件
IP | hostname |
---|---|
10.18.218.241 | master |
10.18.218.242 | slave1 |
10.18.218.243 | slave2 |
10.18.218.244 | slave3 |
3. hadoop
安装
3.1 修改主机名(全部主机上实现)
vim /etc/hostname
将内容全删除后修改为:master(slave1\slave2\slave3同样操作)
3.2 查看当前host
:$ hostname
3.3 修改hosts文件(全部主机上实现)
vi /etc/hosts
修改为上述hosts文件,将ip和hostname作映射
3.4 关闭防火墙和selinux(使用root用户,全部主机进行该操作)
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭selinux
vi /etc/selinux/config
将SELinux status参数设定为关闭状态
SELinux status: disabled
需要重启,需要重启,需要重启
3.5 建立hadoop用户(全部主机上实现)
useradd -m hadoop
passwd hadoop #123456(忽略警告)
usermod -a -G hadoop hadoop # 将hadoop用户移进hadoop用户组
cat /etc/group #查看用户组
3.6 为hadoop用户添加超级用户权限(全部主机上实现)
$ visudo
##在行 root ALL=(ALL) ALL下添加
%hadoop ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
并切换到hadoop用户:$ su hadoop
3.7 设置hadoop用户ssh免密通信
先对每个主机都生成rsa密钥,如生成master的rsa密钥
ssh-keygen -t rsa
后面都可以在master操作,将生成的rsa追加写入授权文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
给授权文件权限
chmod 600 ~/.ssh/authorized_keys
对本机ssh测试(第一次需要密码)
ssh master
将master上的authorized_keys传到slave1
sudo scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
登陆连接到slave1进行操作:
ssh slave1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
#修改权限
chmod 600 ~/.ssh/authorized_keys
#退出slave1
exit
进行免密测试
ssh slave1
其他主机同理
3.8 安装java(统一版本)
这里安装的版本为:jdk-8u211-linux-x64.tar.gz 编辑环境变量
vi ~/.bashrc
将java目录添加进环境
#java 1.8
JAVA_HOME=/usr/local/java/jdk1.8.0_211
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
查看JAVA环境变量
echo $JAVA_HOME
3.9 下载hadoop
3.10 解压
使用命令将解压放至home/hadoop 下,我的解压完后目录为:
/home/hadoop/hadoop-3.1.1
3.11 修改配置文件(都在hadoop/hadoop-3.1.1/etc/hadoop/目录下)
3.11.1 修改hadoop-env.sh文件
vi hadoop/hadoop-3.1.1/etc/hadoop/hadoop-env.sh
把JAVA_HOME添加进去
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
3.11.2 修改 core-site.xml
<configuration>
<!-- 指定 namenode 的通信地址 默认 8020 端口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000/</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-3.1.1/tmp</value>
</property>
<!-- 安装zookeeper需要,否则不要-->
<!-- 指定zookeeper地址,clientPort=2181 -->
<property>
<name>ha.zookeeper.quorum</name>