乐趣区

关于hadoop:Hadoop入门三-Hadoop集群搭建

一. Hadoop 集群简介


HADOOP 集群具体来说蕴含两个集群:HDFS 集群 YARN 集群 ,两者 逻辑上拆散 ,但 物理上在一起
HDFS 集群负责海量数据的存储,集群中的角色次要有:
NameNode、DataNode、SecondaryNameNode
YARN 集群负责海量数据运算时的资源调度,集群中的角色次要有:
ResourceManager、NodeManager
mapreduce 是一个分布式运算编程框架, 是利用程序开发包, 由用户依照编程标准进行程序开发, 后打包运行在 HDFS 集群上,并且受到 YARN 集群的资源调度治理。

二 . 集群部署形式

Hadoop 部署形式分三种:

  1. 独立模式(standalone mode)

    独立模式又称为单机模式,仅 1 个机器运行 1 个 java 过程,次要用于调试。

  2. 伪分布式模式(Pseudo-Distributed mode)

    伪分布模式也是在 1 个机器上运行 HDFS 的 NameNode 和 DataNode、YARN 的 ResourceManger 和 NodeManager,但别离启动独自的 java 过程,次要用于调试。

  3. 群集模式(Cluster mode)

    集群模式次要用于生产环境部署。会应用 N 台主机组成一个 Hadoop 集群。这种部署模式下,主节点和从节点会离开部署在不同的机器上

三 . Hadoop 集群装置

1. 集群布局

以三台主机为例,以下是集群布局:

  • 批改各服务器的主机名(三台)

    vim /etc/hostname
    

    将主机名批改为本人布局的主机名:

  • Host 映射(3 台)

vim /etc/hosts

  • 敞开防火墙
systemctl stop firewalld.service   #敞开防火墙
systemctl disable firewalld.service #禁止防火墙开启自启
  • ssh 免密登陆
  1. 生成公钥和私钥
ssh-keygen -t rsa(间接 Enter)

默认在 ~/.ssh 目录生成两个文件:
id_rsa:私钥
id_rsa.pub:公钥

  1. 导入公钥到认证文件
    导入本机

    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 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 同步三台机器的工夫
yum -y install ntpdate
ntpdate 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/software
rz

解压
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/hadoop
vim 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.cn
node2.uuicon.cn
node3.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/profile
export HADOOP_HOME=/export/server/hadoop-3.1.4
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:

source /etc/profile
退出移动版