Hadoop完全分布式配置详解
centos7+VMwork+Hadoop3.2.1+JDK1.8
辅助工具:SecureCRT/Xshell+WInSCP+Notepad++
准备客户机
1、VMwork安装Linux系统(centos7)
网络适配器:NAT
用户名:root
密码:123456
也可以建立自定义用户,不过自定义的用户在后续会遇到许多权限问题,这里就直接用root用户进行操作了。下面是自定义建立用户命令,有兴趣的小伙伴可以尝试。
useradd hadoop
passwd hadoop
2、网络配置
1)打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33
2)修改配置文件:
TYPE=Ethernet
NAME=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.114.101
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.114.2 //网关
DNS1=114.114.114.114
DNS2=8.8.8.8
其中IPADDR需要根据自己的虚拟网络进行设置,在VMWork中:编辑->虚拟网络编辑器,查看子网IP,我这里的子网IP为192.168.114.0,所以IPADDR可以设置192.168.114.*,其中星号可以是2-254的任意值。
3)查看Ip:ip addr
注:静态IP修改后,重启生效,可以关闭防火墙和修改主机名后,重启客户机。
重启命令:
init 6
3、关闭防火墙
1)即时生效,重启后无效:systemctl stop firewalld
2)重启后永久生效:systemctl disable firewalld
3)查看防火墙状态:firewall-cmd --state
4、主机名
修改主机名:
vi /etc/hostname
hadoop101
安装JDK
1)在安装之前,在/opt文件目录下建立software、module两个文件夹,software用来存放软件包,module用来存放安装的本地文件。
mkdir /opt/software
mkdir /opt/module
2)官网下载JDK:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
选择对应的版本下载
3)利用WinSCP工具,连接虚拟机,把JDK文件上传到/opt/software文件中,然后解压到/opt/module目录中
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/model
安装Hadoop
进入Apache hadoop官网,选择hadoop 3.2.1 Binary下载。(binary表示已编译好的文件,可以直接使用的版本;source表示源代码版本,需要自己编译;注意:下载jar包时请选择binary)
配置环境变量(hadoop+JDK)
1)输入下面的命令进入文件,再按I进入编辑模式
vi /etc/profile
2)往里面添加字段
自定义配置
export JAVA_HOME=/opt/model/jdk1.8.0_241
export HADOOP_HOME=/opt/model/hadoop-3.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3)使环境变量生效
source /etc/profile
注:java -version
检查jdk环境是否配置成功
克隆客户机
关闭hadoop101客户机,克隆两台虚拟机,配置方法可以选择“创建链接克隆”也可以“创建完整克隆”,具体区别可自行学习,这里选择“创建链接克隆”
1)修改主机名
分别在两台克隆的客户机中打开配置文件
vi /etc/hostname
分别命名为hadoop102、hadoop103
2)修改静态IP
分别在克隆客户机中修改:
IPADDR=192.168.114.101
hadoop102: IPADDR=192.168.114.102
hadoop103: IPADDR=192.168.114.103
3)域名配置
分别在三台客户机的/etc/hosts中配置:
192.168.114.101 hadoop101
192.168.114.102 hadoop102
192.168.114.103 hadoop103
配置集群
集群部署规则
1、核心配置文件
配置在/opt/module/hadoop-3.2.1/etc/hadoop 下的core-site.xml
vi core-site.xml
在该文件中编写如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.2.1/data/tmp</value>
</property>
2、HDFS配置文件
1)配置/opt/module/hadoop-3.2.1/etc/hadoop下的hadoop-env.sh
vi hadoop-env.sh
export JAVA_HOME=/opt/module