Hadoop完全分布式部署
1、配置vm共享文件夹
注意:主要是实现window与虚拟机之间的文件共享,如果用实体机的,就不需要这步
1.1 linux系统创建共享目录
mkdir -p /work/software/share
1.2 vm配置共享文件夹
2、配置vm网络
三台服务器ip为:
hdp01 192.168.10.133
hdp02 192.168.10.134
hdp03 192.168.10.135
3、配置虚拟机
注意:以下内容三台服务器同样配置(以第一台服务器为例)
3.1 服务器配置
3.1.1 配置默认登录模式为init 3
#centos 7以前
vi /etc/inittab
#将id:5:initdefault改为id:3:initdefault
#centos 7以后
systemctl set-default multi-user.target
3.1.2 配置自动启动网络连接
#1.进入网络配置目录
cd /etc/sysconfig/network-scripts/
#2.修改要自动启动的网卡
sudo vi ifcfg-eth0
# ps: ifcfg-eth0 要根据实际情况修改,不同 server 或 多个网卡时应该时不一样的。
# 将
ONBOOT=no
#改成
ONBOOT=yes
3.1.3修改hostname文件
vim /etc/sysconfig/network
#修改为以下内容
NETWORKING=yes
HOSTNAME=hdp01
#保存后需要重启才生效
3.1.4 修改host文件
vi /etc/hosts
#添加以下内容
192.168.10.133 hdp01
192.168.10.134 hdp02
192.168.10.135 hdp03
需要把以上hosts配置到windows的hosts文件中,不然windows连接不上hdfs,也不能传输文件
路径:C:\Windows\System32\drivers\etc下的hosts文件
3.1.5 关闭防火墙和selinux(不关闭会造成我们的集群运行不成功)
关闭 iptables
#切换到root用户查看防火墙的状态
service iptables status
# 停止防火墙
service iptables stop
#永久关闭防火墙
chkconfig iptables off
#关闭selinux
vim /etc/sysconfig/selinux
关闭 firewalld
# 查看防火墙状态
firewall-cmd --state
(not running 表示防火墙未开启, running 表示防火墙开启)
# 关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
配置文件可以source一下,但hostname修改必须需要重启
reboot
3.2服务器的免登陆
注意:以下内容三台服务器同样配置(以第一台服务器为例)
3.2.1 生成公钥并拷贝到其他服务器
#生成公钥
ssh-keygen -t rsa #enter键一直敲到底
# 将自己生成的公钥写入authorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#拷贝生成的公钥到另外两台虚拟机
ssh-copy-id -i ~/.ssh/id_rsa.pub hdp02
ssh-copy-id -i ~/.ssh/id_rsa.pub hdp03
3.2.2 测试免密登录
# ssh到hdp02服务器
ssh hdp02
# 退出ssh连接
exit
出现如下表示免密登录成功
4、window系统向linux系统传输文件
注意:没有第一步配置VM共享文件夹的,可以考虑用这步,以下内容三台服务器同样操作(以第一台服务器为例)
4.1 liunx系统创建存放安装包目录
mkdir -p /work/software/share
4.2 文件传输
#下面相关的组件安装包自行去官网下载或者linux链接下载到服务器hdp01上那就不用以下步骤了
#window端打开cmd命令窗口,服务器名称,自行修改
scp E:\linux系统软件\jdk-linux-x64.tar.gz root@hdp01:/work/software/share/
scp E:\linux系统软件\hadoop-2.9.2.tar.gz root@hdp01:/work/software/share/
scp E:\linux系统软件\apache-zookeeper-3.6.2.tar.gz root@hdp01:/work/software/share/
scp E:\linux系统软件\scala-2.13.3.tgz root@hdp01:/work/software/share/
scp E:\linux系统软件\hbase-2.3.2-bin.tar.gz root@hdp01:/work/software/share/
scp E:\linux系统软件\mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz root@hdp01:/work/software/share/
#scp E:\linux系统软件\mysql80-community-release-el7-3.noarch.rpm root@hdp01:/work/software/share/
scp E:\linux系统软件\apache-hive-3.1.2-bin.tar.gz root@hdp01:/work/software/share/
5、hadoop集群安装和配置
5.1 集群方案
主机名 | NameNode | DataNode | ResourceManager | NodeManager | SecondaryNameNode |
---|---|---|---|---|---|
hdp01 | √ | √ | √ | ||
hdp02 | √ | √ | |||
hdp03 | √ | √ |
5.2 环境搭建
5.2.1 JDK安装
# 解压jdk安装包
tar -zxvf /work/software/share/jdk-linux-x64.tar.gz
# 重命名
mv jdk1.8.0_131 /work/software/jdk1.8
# 配置环境变量
vim /etc/profile
#添加如下内容
export JAVA_HOME=/work/software/jdk1.8
export JRE_HOME=/work/software/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
# 使用source命令生效
source /etc/profile
# 5.2.2 查看Java环境变量配置是否成功
java -version
出现以下内容表示配置成功
5.2.2 hadoop安装
# 解压jdk安装包
tar -zxvf /work/software/share/hadoop-2.9.2.tar.gz
# 重命名
mv hadoop-2.9.2 /work/software/hadoop2.9
# 配置环境变量
vim /etc/profile
#添加如下内容
export HADOOP_HOME=/work/software/hadoop2.9
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
# 使用source命令生效
source /etc/profile
# 5.2.2 查看Java环境变量配置是否成功
hadoop version
出现以下内容表示配置成功
5.2.3 hadoop相关文件配置
hadoop文件下的目录结构:
- etc目录存放配置文件
- sbin目录下存放服务的启动命令
- share目录下存放jar包与文档
(1)配置mapred-env.sh
#添加
export JAVA_HOME=/work/software/jdk1.8
(2)配置yarn-env.sh
export JAVA_HOME=/work/software/jdk1.8
(3)配置core-site.xml
vi /work/software/hadoop2.9/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/work/software/hadoop2.9/data/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hdp01:9000</value>
</property>
</configuration>
(4)配置hdfs-site.xml
vi /work/software/hadoop2.9/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>