分布式集群配置"/>
Hadoop分布式集群配置
1.三台虚拟机(Centos7.6),配置JDK,HADOOP环境,在搭建虚拟机时,可以先将一台的环境配置,再克隆两台改IP就好。三台虚拟机最小化安装,必须拥有必要的插件
<!--解释-->
HADOOP集群搭建时,至少需要三台虚拟机,JDK是作为HADOOP集群启动的环境变量,
2.更改虚拟机IP地址,使3台虚拟机与主机互通,主机使用XSHELL软件连接虚拟机进行指令操作
3.创建新用户,在新用户下配置环境变量以及将集群文件传入在新用户文件夹下
4.编写群发XSYNC脚本,可以做到将操作的电脑中的数据同步到另外几台电脑中
5.配置SSH免密登录,能够帮助集群中的电脑互通
6.将集群部署规划做好,并写入配置文档
7.使用命令启动集群,配置历史服务器,配置日志聚集,最后配置集群时间同步
下载好包
1.虚拟机配置IP,互相ping通,能够主机和虚拟机互通,虚拟机与互联网互通,并创建新用户,安装插件,在新用户下创建/opt文件夹给予。
(1)设置ip
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="349e681f-a334-450a-a73e-0a3845059237"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.145.170
NETMASK=255.255.255.0
GATEWAY=192.168.145.2
(2)安装必要的插件(可以配好一个在克隆)
sudu yum -y install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
(3)修改主机映射(本地域名解析)
vim /etc/hosts
192.168.145.170 hadoop102
192.168.145.171 hadoop103
192.168.145.172 hadoop104
(4)关闭防火墙
systemctl stop firewalld
(5)创建新用户 ,并设置密码
useradd atguigu
passwd atguigu
(6)在新用户下,创建文件夹,将用户所有者给新用户
mkdir -p /opt/module /opt/software
chown atguigu:atguigu /opt/module /opt/software
(7)修改/etc/sudoers文件,找到下面一行(102),在%wheel下面添加一行:
atguigu ALL=(ALL) NOPASSWD:ALL
2.安装JDK以及HADOOP,并配置环境变量,并编写分发脚本
(1)如果有jdk先卸载之前的jdk
rpm -qa | grep -i java | xargs -nl sudo rpm -e --nodesps
(2)在新用户登陆的情况下,导入JDK安装包到/opt/software,这个文件夹存放安装包,并解压在/opt/module文件夹下,将将Hadoop安装包也导入到/opt/software中,并解压在/opt/module文件夹下。
rz -etar -xvf jdk-8u212-linux-x64.tar -C /opt/softwaretar -xvf hadoop-3.1.3.tar -C /opt/software
(3)配置环境变量,切记是在新用户下,并且不要在/etc/profile中添加环境变量,必须创建新的my_env.sh,在/etc/profile.d/下创建
vim /etc/profile.d/mv_env.sh
=====================================
#JAVA_HOME
export JAVA_HOME=/ opt/ module/ jdk-8u212-linux-x64
export PATH=PATH :JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/ hadoop-3.1.3
export PATH=PATH:HADOOP_HOME/bin
export PATH=PATH : HADOOP_HOME / sbin
=====================================
source /etc/profile.d/mv_env.sh
3.完全分布式
(1)配置完全分布式前,要确保需要的插件都有,并配置xsync(rsync命令制作的)集群分发脚本,可以循环复制文件到所有节点的相同目录下,并放在/home/atguigu/bin下,以确保用户可以在系统任何地方执行,修改执行权限
cd /home/atguigu/bin
vim xsync
=====================================
#!/bin/bash
#1. 判断参数个数
if [ # -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
doecho ====================host ====================#3. 遍历所有目录,挨个发送for file in @do#4 判断文件是否存在if [ -efile ]then#5. 获取父目录pdir=(cd -P(dirname file); pwd)#6. 获取当前文件的名称fname=(basename file)sshhost "mkdir -p pdir"rsync -avpdir/fnamehost:pdirelseechofile does not exists!fidone
done
========================================
chmod +x xsync
(2)配置免密登陆,三台虚拟机都需要传递各自的公钥到集群各个机器中
ssh -keygen -t rsa
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
(3)配置集群规划如下
#hadoop102:NameNode DataNode Nodemanager
#hadoop103:DataNode ResourceManager NodeManager
#hadoop104: SecondaryNameNode DataNode NodeManager
4>设置核心文件core-site.xml 此文件在/opt/module/hadoop.../etc/core-site.xml 在此文件中的<configuration>内容</configuration>中间添加配置信息。cd HADOOP_HOME /etc/hadoop
vim core-site.xml
========================================
<configuration>
<!--指定HDFS中NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop102:9820</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 通过web界面操作hdfs的权限 -->
<property><name>hadoop.http.staticuser.user</name><value>atguigu</value>
</property>
<!-- 后面hive的兼容性配置 --><property><name>hadoop.proxyuser.atguigu.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.atguigu.groups</name><value>*</value>
</property>
</configuration>
========================================
5>配置hdfs-site.xml 此文件和core-site.xml文件在一个目录下,为/opt/module/hadoop.../hdfs-site.xml ,同样都是在<configuration>内容</configuration>标签下添加
vim hdfs-site.xml
===================
<configuration>
<property>
<name>dfs.namenode.secondary.http- address</ name>
<value>hadoop104:9868</value>
</ property>
</ configuration>
==================
6.配置yarn-site.xml 和core-site.xml以及hdfs-site.xml都在同一个目录下/opt/module/hadoop.../yarn-site.xml 同样都是在<configuration>内容</configuration>标签下添加
vim yarn-site.xml
========================================
<configuration>
<!-- Reducer获取数据的方式--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>hadoop103</value>
</property>
<!-- 环境变量通过从NodeManagers的容器继承的环境属性,对于mapreduce应用程序,除了默认值 hadoop op_mapred_home应该被添加外。属性值 还有如下--><property><name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>
<!-- 后面hive的兼容性配置 --><property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value>
</property>
</configuration>
========================================
7>配置MapReduce-site.xml文件,与上都在同一目录下
vim MapRed-site.xml
====================
<configuration>
<!--指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
=======================
8>在集群上配发刚才配置的文件,
xsync /opt/module/Hadoop-3.1.3/etc/Hadoop/
9>发起集群,配置工作组,WORKERS,为了让集群知道自己所在的集群中都有哪些计算机,workers在/opt/module/hadoop-3.1.3/etc/hadoop/workers目录,并使用xsync同步更新集群中所有的计算机WORKERS文件
vim /opt/module/Hadoop-3.1.3/etc/Hadoop/workers
===============================
hadoop 102
hadoop 103
hadoop 104
==============================
xsync /opt/modele/Hadoop-3.1.3/etc
10>启动集群,如果集群是第一次启动,需要将NameNode所在的节点初始化,如果已经初始化过则需要删除NameNode节点中hadoop目录下的data和logs文件
hdfs namenode -format
start-dfs.sh
< -- 在配置了RescourceManager的节点下开启-->
start-yarn.sh
11>各个服务逐一启动/停止命令
hdfs --dameon start/stop namenode/datanode/secondarynamenode
yarn --daemon start/stop RessourceManager/NodeManager
12>配置历史服务器,需要更改mapred-site.xml,并且三台虚拟机都需要拥有此配置,然后启动
cdHADOOP_HOME/etc/hadoopvim mapred-site.xml
========================================
<!-- 历史服务器端地址 -->
<property><name>mapreduce.jobhistory.address</name><value>hadoop102:10020</value>
</property><!-- 历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop102:19888</value>
</property>
========================================xsync HADOOP_HOME/etc/hadoop/mapred-site.xmlmapred --daemon start historyserver
13>配置日志聚集,需要在HADOOP_HOME/etc/hadoop目录下的yarn增加配置信息,关闭后再重启服务
vim yarn-site.xml
========================================
<!-- 开启日志聚集 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<!-- 访问路径-->
<property> <name>yarn.log.server.url</name> <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 保存的时间7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
========================================xsync $HADOOP_HOME/etc/hadoop/yarn-site.xmlstop-yarn.sh
start-yarn.sh
14.浏览器输入http://192.168.145.170:9870
15.输入http://192.168.145.171:8088/
更多推荐
Hadoop分布式集群配置
发布评论