前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop 集群搭建

Hadoop 集群搭建

作者头像
兮动人
发布2021-06-11 19:08:22
1.3K0
发布2021-06-11 19:08:22
举报
文章被收录于专栏:兮动人的博客

1. Hadoop 集群简介

  • Hadoop集群包括两个集群:HDFS集群、YARN集群
  • 两个集群逻辑上分离、通常物理上在一起
  • 两个集群都是标准的主从架构集群
  • 逻辑上分离 两个集群互相之间没有依赖、互不影响
  • 物理上在一起 某些角色进程往往部署在同一台物理服务器上
  • MapReduce集群呢? MapReduce是计算框架、代码层面的组件没有集群之说

2. Hadoop 部暑模式

3. Hadoop 源码编译

  • 随便选择一个镜像地址下载,第一个是北京外国语大学的镜像地址,第二个是清华大学的
  • 如果想下载其他比较早的版本,点击

https://archive.apache.org/dist/hadoop/common/,这里包含所有发布的版本

  • 为什么要重新编译Hadoop源码? 匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO 需要调用系统本地库( *.so|*.dll ) 修改源码、重构源码
  • 如何编译Hadoop 源码包根目录下文件:BUILDING.txt
  • 这里使用Hadoop3.1.4安装包,可以去官网下载

4. Hadoop 集群安装

step1:集群角色规划

  • 角色规划的准则 根据软件工作特性和服务器硬件资源情况合理分配 比如依赖内存工作的NameNode是不是部署在大内存机器上?
  • 角色规划注意事项 资源上有抢夺冲突的,尽量不要部署在一起 工作上需要互相配合的。尽量部署在一起

Step2:服务器基础环境准备

  • 主机名(3台机器)
代码语言:javascript
复制
vim /etc/hostname
  • Hosts映射(3台机器)|
代码语言:javascript
复制
vim /etc/hosts
  • 防火墙关闭(3台机器)
代码语言:javascript
复制
systemctl stop firewalld.service   #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开启自启
  • ssh免密登录(node1执行->node1|node2|node3
代码语言:javascript
复制
ssh-keygen #4个回车 生成公钥、私钥
ssh-copy-id node1、ssh-copy-id node2、ssh-copy-id node3 #
  • 检验:
  • 集群时间同步(3台机器)
代码语言:javascript
复制
yum -y install ntpdate
ntpdate ntp4.aliyun.com
  • JDK 1.8安装(3台机器)

Step3:上传安装包、解压安装包

  • 创建统一工作目录(3台机器),自定义创建,自己可以划分
代码语言:javascript
复制
mkdir -p /export/server/    #软件安装路径
mkdir -p /export/data/      #数据存储路径
mkdir -p /export/software/  #安装包存放路径
  • 上传、解压安装包(node1)
代码语言:javascript
复制
tar -zxvf hadoop-3.2.2 -C /export/server/

-C :表示指定安装路径

Step4:Hadoop安装包目录结构

Step5:编辑Hadoop配置文件(1)

  • 打开Hadoop根目录下的 etc/hadoop-env.sh 文件
代码语言:javascript
复制
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim hadoop-env.sh
代码语言:javascript
复制
export JAVA_HOME=/export/server/jdk1.8.0_65
  • 在文件末尾加上如下命令,设置用户以执行对应角色shell命令
代码语言:javascript
复制
#设置用户以执行对应角色shell命令
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 

Step5:编辑Hadoop配置文件(2)

  • 还是在Hadoop的根目录下的 etc 下配置 core-site.xml,在 <configuration> 下添加如下代码
  • 注意:下面的域名要改成自己主机对应的
代码语言:javascript
复制
<!-- 默认文件系统的名称。通过URI中schema区分不同文件系统。-->
<!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
<!-- hdfs文件系统访问地址:http://nn_host:8020。-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1.xdr630.com:8020</value>
</property>
<!-- hadoop本地数据存储目录 format时自动生成 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/data/hadoop-3.1.4</value>
</property>
<!-- 在Web UI访问HDFS使用的用户名。-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

Step5:编辑Hadoop配置文件(3)

  • 配置 hdfs-site.xml,在在 <configuration> 下添加
代码语言:javascript
复制
<!-- 设定SNN运行主机和端口。-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2.xdr630.com:9868</value>
</property>

Step5:编辑Hadoop配置文件(4)

  • 配置 mapred-site.xml ,添加
代码语言:javascript
复制
<!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

Step5:编辑Hadoop配置文件(5)

  • 配置 yarn-site.xml,添加
代码语言:javascript
复制
<!-- yarn集群主角色RM运行机器。-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1.xdr630.com</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
</property>

Step5:编辑Hadoop配置文件(6)

  • 配置 workers ,添加
代码语言:javascript
复制
node1.xdr630.com
node2.xdr630.com
node3.xdr630.com

Step6:分发同步安装包

  • 在node1机器上将Hadoop安装包scp同步到其他机器
代码语言:javascript
复制
cd /export/server/
scp -r hadoop-3.1.4 root@node2:/usr/local/
scp -r hadoop-3.1.4 root@node3:/usr/local/

Step7:配置Hadoop环境变量

  • 在node1上配置Hadoop环境变量
代码语言:javascript
复制
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 将修改后的环境变量同步其他机器
代码语言:javascript
复制
scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/
  • 重新加载环境变量 验证是否生效(3台机器)
代码语言:javascript
复制
source /etc/profile
hadoop #验证环境变量是否生效

5. 总结

  1. 服务器基础环境
  2. Hadoop源码编译
  3. Hadoop配置文件修改
  4. shell文件、4个xml文件、workers文件
  5. 配置文件集群同步
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Hadoop 集群简介
  • 2. Hadoop 部暑模式
  • 3. Hadoop 源码编译
  • 4. Hadoop 集群安装
    • step1:集群角色规划
      • Step2:服务器基础环境准备
        • Step3:上传安装包、解压安装包
          • Step4:Hadoop安装包目录结构
            • Step5:编辑Hadoop配置文件(1)
              • Step5:编辑Hadoop配置文件(2)
                • Step5:编辑Hadoop配置文件(3)
                  • Step5:编辑Hadoop配置文件(4)
                    • Step5:编辑Hadoop配置文件(5)
                      • Step5:编辑Hadoop配置文件(6)
                        • Step6:分发同步安装包
                          • Step7:配置Hadoop环境变量
                          • 5. 总结
                          相关产品与服务
                          容器服务
                          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档