目录
搭建需要准备:
- 虚拟机:VMware Workstation Pro 17
- ISO映像文件:CentOS-6.5-x86_64-bin-DVD1.iso
- JDK版本:jdk-8u171-linux-x64.tar.gz
- Hadoop版本:hadoop-3.3.0.tar.gz
- 远程连接工具:MobaXterm
搭建过程:
一. 安装虚拟机
需要一台虚拟机HadoopMaster作为主节点(主机名可自取,不唯一)
需要两台以上主机作为从节点(我们这里取名HadoopSlave1和HadoopSlave2)
二. 配置网络
- 进入命令提示符输入命令ipconfig查看ip和网关。
- 我们用桥接(自动),所有换WiFi后要保证网段一样,否则虚拟机会ping不通网关。
- 这里我们的网段是43 , WiFi的IP地址是192.168.43.146,网关是192.168.43.1 。
- 在配置虚拟机网卡时要保证IP地址不与这里WiFi的地址冲突,但网关必须一致。
打开虚拟机并需要使用 root 用户编辑文件 ifcfg-eth0 配置网络,否侧权限不够
切换到 root 用户:su -
编辑ifcfg-eth0以配置网络:vim /etc/sysconfig/network-scripts/ifcfg-eth0
- 保留 DEVICE=eth0 ,ONBOOT,BOOTPROTO
- 其余的用 # 号注释掉
- 设计开机启动:ONBOOT=no 改为 ONBOOT=yes
- IP设为静态IP:BOOTPRO=dhcp 改为 BOOTPRO=static
注意:HadoopMaster,HadoopSlave1,HadoopSlave2 除 IP 地址不同外,其它配置都一样。
ifcfg-eth0 配置完成后:
- 关闭防火墙:chkconfig iptables off
- 刷新网卡:service network restart
注意:三台虚拟机都需要执行
保证每一台虚拟机的ip和网关都能ping通
三. 修改主机名
需要在配置文件中修改。
使用命令:vim /etc/sysconfig/network
- 将 HOSTNAME 改为自己的主机名
注:三台虚拟机都要执行
四. 将主机名和IP绑定
使用命令:vim /etc/hosts
每一台的IP地址 对应 自己主机名
- 192.168.43.110 HadoopMatser
- 192.168.43.111 HadoopSlave1
- 192.168.43.112 HadoopSlave2
注:每一台虚拟机都要执行
保证能够ping 通主机名:
五.配置免密登录
- 生成密钥对:
ssh-keygen -t rsa
- 一直回车
- 公钥复制到密钥文件中:
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
注:在每一台虚拟机中都需要执行
- 将密钥文件远程复制到从节点
scp ~/.ssh/authorized_keys zxa@HadoopSlave1:~/.ssh/ scp ~/.ssh/authorized_keys zxa@HadoopSlave2:~/.ssh/
从主节点登录到从节点,使用ssh验证:
六. 使用远程连接工具上传jdk和hadoop
上传文件用Xshell,MobaXterm,WinSCP都可以,这里用MobaXterm。
创建一个普通用户zxa,并在家目录下创建一个文件夹software,再将Hadoop和jdk的压缩包上传至文件夹software下。
- useradd zxa
- su - zxa
- mkdir software
- 上传jdk和hadoop压缩包至software下
注:创建普通用户zxa和目录software每一台虚拟机都需要做
可以依次连接各个虚拟机上传到software下,也可以上传到主节点HadoopMaster后远程复制到从节点HadoopSlave1和HadooSlave2
scp /home/zxa/software/hadoop-3.3.0.tar.gz zxa@HadoopSlave1:/home/zxa/software/
scp /home/zxa/software/hadoop-3.3.0.tar.gz zxa@HadoopSlave2:/home/zxa/software/
scp /home/zxa/software/jdk-8u171-linux-x64.tar.gz zxa@HadoopSlave1:/home/zxa/software/
scp /home/zxa/software/jdk-8u171-linux-x64.tar.gz zxa@HadoopSlave2:/home/zxa/software/
七. 安装jdk和Hadoop
一. 解压jdk和hadoop
- 解压jdk压缩包:tar -zxvf jdk-8u171-linux-x64.tar.gz
- 解压hadoop压缩包:tar -zxvf hadoop-3.3.0.tar.gz
- 在software下创建目录hadooptmp:mkdir hadooptmp
注:每一台虚拟机都需要执行
二. 配置jdk和hadoop环境变量
- vim /home/zxa/.bash_profile
#jdk export JAVA_HOME=/home/zxa/software/jdk1.8.0_171 export PATH=$JAVA_HOME/bin:$PATH #hadoop export HADOOP_HOME=/home/zxa/software/hadoop-3.3.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- source /home/zxa/.bash_profile
- java -version(检验jdk配置是否成功)
注:一定要source,否则配置不生效,每一台虚拟机都需要配置
三. 在添加jdk环境
切换目录至hadoop,全路径为:/home/zxa/software/hadoop-3.3.0/etc/hadoop/
在文件hadoop-env.sh和yarn-env.sh中添加内容
export JAVA_HOME=/home/zxa/software/jdk1.8.0_171
四. 文件core-site.xml 中
内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://HadoopMaster:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/zxa/software/hadooptmp</value> </property> </configuration>
注:只需要在HadoopMaster 中操作
五. hdfs-site.xml 中
内容:
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
注:只需在主节点HadoopMaster 中操作
六. yarn-site.xml 中
内容:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>HadoopMaster:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>HadoopMaster:18030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>HadoopMaster:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>HadoopMaster:18141</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>HadoopMaster:8088</value> </property> </configuration>
注:只需在HadoopMaster中操作
七. mapred-site.xml 中
内容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
注:只需要在主节点HadoopMaster 中操作
八. workers 中
vim /home/zxa/hadoop-3.3.0/etc/hadoop/workers用下面内容替换 worker s 中的内容:HadoopSlave1HadoopSlave2
八. 将复制到从节点
使用下面的命令将已经配置完成的 Hadoop 目录复制到从节点 上:scp -r hadoop-3.3.0 zxa@HadoopSlave1:~/software/ scp -r hadoop-3.3.0 zxa@HadoopSlave2:~/software/
注:只需在主节点 HadoopMaster 中执行
九. 格式化 NameNode 文件系统
格式化命令如下,该操作只需要在 HadoopMaster 节点上执行:hdfs namenode -format
十. 启动Hadoop集群
启动命令:start-all.sh
查看启动了的进程:jps
注:启动命令只需在主节点HadoopMaster 中输入,主节点中四个进程,从节点只有三个
十一. 测试是否能连接到Hadoop平台
主节点HadoopMaster的ip地址+英文冒号+端口号
192.168.43.110:9870
192.168.43.110.8088
hadoop的9870端口
hadoop的8088端口
至此,Hadoop全分布集群搭建成功!