切记:反复安装6遍,直到对安装配置过程了熟于心。
基础软件清单
- VMware Station15 Pro
- Centos 7
- JDK
- xshell & xftp
- Hadoop 3.2.0 :https://mirrors.aliyun.com/apache/hadoop/core/
一、虚拟机安装配置步骤如下:
1、vmware安装centos7
- 配置时,网络适配器 指定为:vmnet8
2、打开虚拟机,配置centos7系统
- 配置root用户账户和密码:root/root 等待自动安装完毕
- 安装成功后,重启,通过root登录进系统
3、修改虚拟机主机名
-命令:vi /etc/hostname 或者 hostnamectl set-hostname master
-修改虚拟机主机名称:master
4、修改虚拟机ip地址,并定义为静态IP
- windows中查看虚拟机网络适配器VMnet8:
IP地址:192.168.146.1
子网掩码:255.255.255.0
默认网关:192.168.146.2
设置默认网关:192.168.146.2(若没有,则设置)
-
调整虚拟机中的网络驱动设置,将其指定为VMnet8,取消DHCP,然后点击“NAT配置”
进入虚拟机Centos7中,将ip配置为静态IP
输入命令行:vi /etc/sysconfig/network-script/ifcfg-en33,并修改以下内容:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.146.15
NETMASK=255.255.255.0
GATEWAY=192.168.146.2
DNS1=192.168.146.2 (没配DNS导致后面无法ping通)
- 配置完成后保存退出,并重启网关: 或者service network restart
sudo systemctl restart network
sudo systemctl enable network
- 关闭防火墙
关闭防火墙systemctl disable firewalld
关闭开机自启systemctl stop firewalld
查看状态 systemctl status firewalld
- 然后尝试ping windows系统和虚拟机IP,能ping通说明虚拟机配置完成。
- 提前编辑hosts文件,为hadoop配置做准备
192.168.146.15 master
192.168.146.16 slave1
192.168.146.17 slave2
二、配置Java JDK
1、上传jdk安装包到服务器
- 解压缩jdk压缩包
tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/java
- 修改java在linux中的配置文件
vi /etc/profile
添加:JAVA_HOME=/usr/java/jdk1.8.0_261
添加:JRE_HOME=$JAVA_HOME/jre
添加:PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
添加:CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
添加:export JAVA_HOME JRE_HOME PATH CLASSPATH
- 使java配置文件生效
source /etc/profile
检查java版本:java -version
三、安装配置Hadoop
1、下载并上传hadoop至服务器
2、解压缩hadoop文件至/usr/hadoop
创建文件夹:mkdir /usr/hadoop
解压缩hadoop至目标目录:tar -zxvf hadoop-3.2.1.tar.gz -C /usr/hadoop
3、配置hadoop的jdk配置文件中
vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/hadoop-env.sh
修改:export JAVA_HOME=/usr/java/jdk1.8.0_261
4、到此为止,hadoop基础配置完成,接下来开始克隆创建hadoop集群。
四、hadoop集群克隆
以下操作适用于slave1和slave2配置
1、修改hostname
查看hostname : cat /etc/hostname
修改hostname: hostnamectl set-hostname slave2
2、修改ip
vi /etc/sysconfig/network-scripts/ifcfg-en33
确认:BOOTPROTO=static
确认:ONBOOT=yes
修改:IPADDR=192.168.146.17
3、重启网络
service network restart
4、检查网络是否配置成功:
ping 192.168.146.15 / 16 / 17
ping通,则服务器网络配置完成
5、配置集群间免密登录访问
- 首先确认防火墙状态:systemctl status firewalld
- 配置密钥,所有节点切换到root根目录
输入:ssh-keygen -t rsa -P ''
都回车后,查看密钥清单:cd /root/.ssh/
- 新增authorized_keys文件
1、touch /root/.ssh/authorized_keys
2、想办法将master/slave1/slave2中的id_rsa.pub本文统一放到authorized_keys中,并将合并后的文件分发到三个节点中
3、尝试ssh slave1/slave2/master,遇到选择时填入yes,此时可无密码访问节点
五、hadoop属性配置
该部分全部在master节点进行配置
1、hadoop的配置文件路径:/usr/hadoop/hadoop-3.2.1/etc/hadoop/
配置项 | 说明 |
---|---|
core-site.xml | 集群全局变量设置,如HDFS URL,Hadoop的临时目录 |
hdfs-site.xml | hdfs参数,如节点namenode和数据节点datanode的存放位置、文件副本的个数、文件读取权限等 |
mapred-site.xml | mapreduce参数,包括jobhistory server和应用程序参数两部分,如reduce任务的个数,内存默认上下限等 |
yarn-site.xml | 集群资源管理系统参数,配置resoucemanager、nodemanager等 |
hadoop-env.sh | hadoop运行环境配置 |
workers |
2、创建临时hadoop存储目录
- mkdir /root/hadoop
- mkdir /root/hadoop/tmp
- mkdir /root/hadoop/var
- mkdir /root/hadoop/dfs
- mkdir /root/hadoop/dfs/name
- mkdir /root/hadoop/dfs/data
3、配置core-site.xml:vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/core-site.xml
在configuration中间添加property配置信息:
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>temporary directions</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
4、配置hdfs-site.xml: vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/hdfs-site.xml
在configuration中间添加property配置信息:
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoop/dfs/data</name>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
5、配置mapred-site.xml : vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>master:49001</value>
</property>
6、配置workers: vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/workers
delete localhost
添加:slave1,slave2
7、配置yarn-site.xml: vi /usr/hadoop/hadoop-3.2.1/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>1024</value>
</property>
备注:其他的采用默认的即可
8、切换到sbin目录下下面,修改执行权限
- 修改start-dfs.sh 和 stop-dfs.sh;注意,是在shell文件的 第二行开始录入
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
- 修改start-yarn.sh 和 stop-yarn.sh;注意,是在shell文件的 第二行开始录入
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
以上配置,确保三台服务器中hadoop配置一致!
9、启动hadoop
1、初始化hadoop文件系统,master和slave都需要做format
cd /usr/hadoop/hadoop-3.2.1/bin
./hadoop namenode -format
2、启动hadoop,只需要master中启动
cd /user/hadoop/hadoop-3.2.1/sbin
./start-all.sh
此时即可成功!
10、输入masterIP:9870 和masterip:8088验证登陆结果
异常情况处理
1、安装Centos 7打开后提示:vmware 无法获得VMCI驱动程序的版本
解决方案:编辑hd-001.vmx文件,找到其中的vmci0.present,将TRUE修改为FALSE.
2、安装Centos 7打开后提示:无法安装
解决方案:路径不能与VMWare软件同一个目录