Hadoop集群环境搭建
一、网络配置
1.准备CentOS7.7操作系统
2.完整克隆创建好的虚拟机
以如下方式命名:hadoop01,hadoop02,hadoop03
3.检查网络ip是否存在,如果不存在,需要关闭NetworkManager
systemctl stop NetworkManager (临时)
systemctl disable NetworkManager (永久)
4.修改ip地址 (其它均按照此方法配置)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.101/102/103
GATEWAY=192.168.100.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
5.修改主机名(其它2台同样按照此方法修改)
临时修改:hostnamectl set-hostname hadoop01,hadoop02 ,hadoop03
su – 切换
6.修改hosts文件
vim /etc/hosts
192.168.10.101 hadoop01
192.168.10.102 hadoop02
192.168.10.103 hadoop03
7.关闭所有主机01-03的防火墙及selinux
临时: systemctl stop firewalld
永久: systemctl disable firewalld
selinux:
getenforce: 查看selinux的状态
setenforce 0 临时修改状态为警告
vim /etc/selinux/config : enforcing -> disabled (永久关闭)
8.相同内容的文件可以采用scp命令
在hadoop01上使用scp命令将配置文件拷贝到其他服务器上
你所在机器,比如01 发文件 给 02
**scp /etc/hosts 用户@ip/主机名 : 路径**
复制文件夹加参数: scp **-r** /etc/hosts 用户@ip/主机名 : 路径
9. 配置ssh免密码登录
先在**hadoop01和hadoop02**主节点上生成一对密钥,需要在主节点生成秘钥下发到其它机器上(主节点需要通过 ssh协议启动子节点)
ssh-keygen (-t rsa)
(三个回车)
把公钥复制到其余机器上
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
注意:下发公钥能实现hadoop01或02机器免密码访问其它几台主机,但不代表其它机器也可以免密码访问01
10. 集群角色分配(3台)
hadoop01 NameNode、DataNode、NodeManager、SecondaryNameNode
hadoop02 ResourceManager、DataNode、NodeManager
hadoop03 DataNode、NodeManager
二、 集群搭建
1.安装上传工具rz
使用yum 安装,工具在centos系统盘中 yum install lrz* -y
2.上传文件相关文件到hadoop01
JDK1.8.0_xx (java development toolkit 开发工具包)
hadoop2.10.0.tar.gz
3. 解压文件到指定目录
tar -zxvf jdk1.8.0_xx -C /usr/local
tar -zxvf hadoop-2.10.0 -C /hadoop (hadoop目录需要在根目录下自己创建)
在hadoop01上执行拷贝jdk,下发到其它机器上
scp -r /usr/local/jdk1.8.0_xx root@hadoop02: /usr/local/
scp -r /usr/local/jdk1.8.0_xx root@hadoop03: /usr/local/
在hadoop01上执行拷贝hadoop,下发到其它机器上
scp -r /hadoop/hadoop-2.10.0 root@hadoop02: /hadoop
scp -r /hadoop/hadoop-2.10.0 root@hadoop03: /hadoop
4. 配置系统的profile文件(同伪分布式)
1)Java环境变量,不要加空格
vim编辑器输入shell命令:
输入括号里的, **( :r! )** 后面就是终端中输入的命令
export JAVA_HOME=/usr/local/jdk1.8.0_xx
2)hadoop环境变量
export HADOOP_HOME=/hadoop/hadoop-2.10.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
**#刷新配置文件**
source /etc/profile (刷新前检查是否有问题)
**注意:配制完成后使用scp 命令发送给其它2台主机**
5.修改Hadoop相关配置文件(6个)
1) hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_xx
2) core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hadoop-2.10.0/data</value>
</property>
</configuration>
3) hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4) mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5) yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6) 修改slaves配置文件 (配置子节点所在的位置)
hadoop01
hadoop02
hadoop03
6. 将配置好的hadoop拷贝到其他服务器上
在所有的节点的根目录上创建一个hadoop目录
mkdir /hadoop
在hadoop01上执行拷贝命令
scp -r / hadoop /hadoop-2.10.0/etc/hadoop hadoop02:/hadoop/hadoop-2.10.0/etc
scp -r / hadoop /hadoop-2.10.0/etc/hadoop hadoop03:/ hadoop /hadoop-2.10.0/etc
7. 初始化HDFS,即格式化NameNode
在NameNode所在的那一台机器上执行格式化即可hadoop01
格式化一次即可(在NamaNode所在的机器)
格式化命令:**hdfs namenode -format**
8. 启动HDFS
在hadoop01上启动HDFS
sbin/start-dfs.sh
(在本机上启动NameNode,读取slaves文件,然后通过ssh将所有的DataNode启动,然后启动 SecondaryNameNode )
查看jps进程:
hadoop01 应该有 namenode 和datanode,secondarynamenode
hadoop02 03 应该有datanode
9. 启动YARN
sbin/start-yarn.sh
查看jps进程
hadoop02 应该有 resourceManager,datanode,nodemanager
hadoop01 应该多了一个nodeManager进程
hadoop03 应该有datanode,nodemanager
10. 查看节点运行情况及管理界面
查看hdfs节点命令: hdfs dfsadmin -report
hdfs的管理界,http://hadoop01:50070,查看如下datanode节点
hadoop02:50010 (192.168.100.103:50010)
hadoop03:50010 (192.168.100.104:50010)
yarn的管理界面,http://hadoop02:8088,查看如下NodeManager节点
hadoop01:8042
hadoop03:8042
用于单独启动某个进程的命令
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start nodemanager