一. Hadoop集群简介
HADOOP集群具体来说蕴含两个集群:HDFS集群和YARN集群,两者逻辑上拆散,但物理上在一起。
HDFS集群负责海量数据的存储,集群中的角色次要有:
NameNode、DataNode、SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色次要有:
ResourceManager、NodeManager
mapreduce 是一个分布式运算编程框架,是利用程序开发包,由用户依照编程标准进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度治理。
二 . 集群部署形式
Hadoop部署形式分三种:
独立模式(standalone mode)
独立模式又称为单机模式,仅1个机器运行1个java过程,次要用于调试。
伪分布式模式(Pseudo-Distributed mode)
伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但别离启动独自的java过程,次要用于调试。
群集模式(Cluster mode)
集群模式次要用于生产环境部署。会应用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会离开部署在不同的机器上
三 . Hadoop集群装置
1. 集群布局
以三台主机为例,以下是集群布局:
批改各服务器的主机名(三台)
vim /etc/hostname
将主机名批改为本人布局的主机名:
- Host 映射(3台)
vim /etc/hosts
- 敞开防火墙
systemctl stop firewalld.service #敞开防火墙systemctl disable firewalld.service #禁止防火墙开启自启
- ssh 免密登陆
- 生成公钥和私钥
ssh-keygen -t rsa (间接Enter)
默认在 ~/.ssh目录生成两个文件:
id_rsa :私钥
id_rsa.pub :公钥
导入公钥到认证文件
导入本机cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
导入要免明码登录的服务器
scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub
将公钥导入到认证文件(这一步的操作在服务器上进行)
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
在服务器上更改权限:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys
- 同步三台机器的工夫
yum -y install ntpdatentpdate ntp4.aliyun.com
2. 解压Hadoop安装包
上传解压hadoop 3.1.4安装文件
解压tar -xvzf hadoop-3.1.4.tar.gz -C ../server# 在每个节点中创立用于存放数据的data目录# NameNode数据mkdir -p /export/server/hadoop-3.1.4/data/namenode# DataNode数据mkdir -p /export/server/hadoop-3.1.4/data/datanode
3 . 筹备装置环境
上传解压hadoop 3.1.4安装文件cd /export/softwarerz解压tar -xvzf hadoop-3.1.4.tar.gz -C ../server# 在每个节点中创立用于存放数据的data目录# NameNode数据mkdir -p /export/server/hadoop-3.1.4/data/namenode# DataNode数据mkdir -p /export/server/hadoop-3.1.4/data/datanode
4. 编辑配置文件
1. 配置NameNode(core-site.xml)
cd /export/server/hadoop-3.1.4/etc/hadoopvim core-site.xml--------------------------------在第19行下增加以下内容:<property> <name>fs.defaultFS</name> <value>hdfs://node1.uuicom.cn:9820</value> <description>配置NameNode的URL</description></property>
2. 配置HDFS门路(hdfs-site.xml)
vim hdfs-site.xml--------------------------------<property> <name>dfs.namenode.name.dir</name> <value>/export/server/hadoop-3.1.4/data/namenode</value> <description>NameNode存储名称空间和事务日志的本地文件系统上的门路</description></property><property> <name>dfs.datanode.data.dir</name> <value>/export/server/hadoop-3.1.4/data/datanode</value> <description>DataNode存储名称空间和事务日志的本地文件系统上的门路</description></property>
3. 配置YARN(yarn-site.xml)
vim yarn-site.xml--------------------------------在第18行下增加以下内容:<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property><property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> <description>为每个容器申请调配的最小内存限度资源管理器(512M)</description></property><property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> <description>为每个容器申请调配的最大内存限度资源管理器(4G)</description></property><property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>4</value> <description>虚拟内存比例,默认为2.1,此处设置为4倍</description></property>
4. 配置MapReduce(mapred-site.xml)
vim mapred-site.xml----------------------------------在第20行下增加以下内容:vim mapred-site.xml----------------------------------在第20行下增加以下内容:<property> <name>mapreduce.framework.name</name> <value>yarn</value> <description>执行MapReduce的形式:yarn/local</description></property><property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property>
5. workers文件
vim /export/server/hadoop-3.1.4/etc/hadoop/workers----------------------------------# 删除第一行localhost,而后增加以下三行node1.uuicon.cnnode2.uuicon.cnnode3.uuicon.cn
6.批改hadoop.env环境变量
hadoop.env文件vim /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh 批改第54行为:export JAVA_HOME=/export/server/jdk1.8.0_241
7. 配置环境变量
vim /etc/profileexport HADOOP_HOME=/export/server/hadoop-3.1.4export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:source /etc/profile