阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop集群部署时候的几个问题记录

403次阅读
没有评论

共计 5672 个字符,预计需要花费 15 分钟才能阅读完成。

本章部署一个 Hadoop 集群

由于 Hadoop 2.5.x 已经出来有好几个月了,网上配置类似架构的文章也有很多,所以在这里重点描述一下 namenode 和 secondary namenode 不再同一台机器上的配置方法,以及 namenode 宕机后 meta 数据的恢复方法,并且描述一下几个主要配置文件中配置项的意义。

集群大概框架为

1 个 namenode  一个 secondary namenode 两个 datanode。

其中 secondary namenode 和 datanode 理论上来说是可以无限扩展的。

安装 jdk、ssh 免密码登陆,下载 hadoop 神马的就不啰嗦了,主要来记录下几个主要配置文件的配置项

文件一 core-site.xml

 <configuration>
  <property>
        <name>fs.defaultFS</name>
        <value>hdfs://cloud001:9000</value>
        <description>NameNode URI<description/>
  </property>

 <property>
      <name>io.file.buffer.size</name>
      <value>4069</value>
      <description>Size of read/write buffer used in SequenceFiles.<description/>
 </property>

  <property>
      <name>hadoop.tmp.dir</name>
      <value>/snwz/hadoop/config/temp</value>
      <description><description/>
 </property>
</configuration>

io.file.buffer.size:hadoop 访问文件的 IO 操作都需要通过代码库。因此,在很多情况下,io.file.buffer.size 都被用来设置缓存的大小。不论是对硬盘或者是网络操作来讲,较大的缓存都可以提供更高的数据传输,但这也就意味着更大的内存消耗和延迟。这个参数要设置为系统页面大小的倍数,以 byte 为单位,默认值是 4KB,一般情况下,可以设置为 64KB(65536byte)

hadoop.tmp.dir:hadoop 文件系统依赖的基本配置,很多配置路径都依赖它,它的默认位置在 /tmp/{$user} 下面,建议修改默认路径,因为 linux 启动 会将 temp 目录下文件删除。

文件二:hdfs-site.xml

 

<configuration>

  <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>cloud001:9001</value>
  </property>

  <property> 
        <name>dfs.namenode.name.dir</name> 
        <value>file:/snwz/hadoop/config/name</value> 
  </property> 

  <property> 
        <name>dfs.datanode.data.dir</name> 
        <value>file:/snwz/hadoop/config/data</value> 
  </property> 

  <property>
        <name>dfs.replication</name>
        <value>2</value>
  </property>
 
  <property> 
        <name>dfs.webhdfs.enabled</name> 
        <value>true</value> 
  </property> 
</configuration>

dfs.namenode.name.dir:Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.

dfs.datanode.data.dir:Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.

dfs.replicatio:副本数量,建议配置和 slaves 数目相同

dfs.webhdfs.enabled:dfs 的 web 页面功能是否启用,建议启动

dfs.namenode.secondary.http-address:secondary namenode 的地址,在此着重说下这个配置。

大部分人包括我 仅仅认为 snn 是 nn 的一个热备份,其实它真正的用途,是用来保存 namenode 中对 HDFS metadata 的信息的备份,并减少 namenode 重启的时间。hadoop 的默认配置中让 snn 进程默认运行在了 namenode 的那台机器上,但是这样的话,如果这台机器出错,宕机,对恢复 HDFS 文件系统是很大的灾难,更好的方式是:将 snn 的进程配置在另外一台机器 上运行。在 hadoop 中,namenode 负责对 HDFS 的 metadata 的持久化存储,并且处理来自客户端的对 HDFS 的各种操作的交互反馈。为了保 证交互速度,HDFS 文件系统的 metadata 是被 load 到 namenode 机器的内存中的,并且会将内存中的这些数据保存到磁盘进行持久化存储。为 了保证这个持久化过程不会成为 HDFS 操作的瓶颈,hadoop 采取的方式是:没有对任何一次的当前文件系统的 snapshot 进行持久化,对 HDFS 最 近一段时间的操作 list 会被保存到 namenode 中的一个叫 Editlog 的文件中去。当重启 namenode 时,除了 load fsImage 意外,还会对这个 EditLog 文件中 记录的 HDFS 操作进行 replay,以恢复 HDFS 重启之前的最终状态。

而 SecondaryNameNode,会周期性的将 EditLog 中记录的对 HDFS 的操作合并到一个 checkpoint 中,然后清空 EditLog。所以 namenode 的重启就会 Load 最新的一个 checkpoint,并 replay EditLog 中 记录的 hdfs 操作,由于 EditLog 中记录的是从 上一次 checkpoint 以后到现在的操作列表,所以就会比较小。如果没有 snn 的这个周期性的合并过程,那么当每次重启 namenode 的时候,就会 花费很长的时间。而这样周期性的合并就能减少重启的时间。同时也能保证 HDFS 系统的完整性。

关于如何分离 namenode 和 secondary namenode  下面这篇文章说的很详细了

http://www.linuxidc.com/Linux/2015-02/113642.htm

关于如何恢复 在这里也不再啰嗦,感兴趣的朋友可以自己去搜一下。

关于 checkpoin 频率等优化问题我们后面再慢慢研究。

文件三:.mapred-site.xml

<configuration>
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property> 
        <name>mapreduce.jobtracker.http.address</name> 
        <value>cloud001:50030</value> 
    </property> 
    <property> 
        <name>mapreduce.jobhistory.address</name> 
        <value>cloud001:10020</value> 
    </property> 
    <property> 
        <name>mapreduce.jobhistory.webapp.address</name> 
        <value>cloud001:19888</value> 
    </property> 
</configuration>

mapreduce.framework.name:新框架支持第三方 MapReduce 开发框架以支持如 SmartTalk/DGSG 等非 Yarn 架构,注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运行在 locale 模式,而不是分布式模式。

mapreduce.jobtracker.http.address:job tracker 监听端口

mapreduce.jobhistory.*:hadoop 历史服务器,可以通过历史服务器查看已经运行完的 Mapreduce 作业记录,比如用了多少个 Map、用了多少个 Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop 历史服务器是没有启动的,我们可以通过下面的命令来启动 Hadoop 历史服务器。

sbin/mr-jobhistory-daemon.sh  start historyserver

这篇文章很详细的介绍了历史服务器的原理以及配置:http://www.linuxidc.com/Linux/2015-02/113645.htm

文件四:yarn-site.xml

<configuration>

<!– Site specific YARN configuration properties –>

      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>nameNode:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>nameNode:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>nameNode:8031</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.admin.address</name> 
        <value>nameNode:8033</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.webapp.address</name> 
        <value>nameNode:8088</value> 
    </property> 
</configuration>

mapreduce_shuffle : http://www.linuxidc.com/Linux/2011-11/47053.htm
yarn.resourcemanager.address:namenode 与 resourcemanager 通讯接口
yarn.resourcemanager.resource-tracker.address:新框架中 NodeManager 需要向 RM 报告任务运行状态供 Resouce 跟踪,因此 NodeManager 节点主机需要知道 RM 主机的 tracker 接口地址
yarn.resourcemanager.admin.address:管理命令通过 ResourceManager 主机访问 host:port
yarn.resourcemanager.webapp.address: 管理页面地址

主要配置就是这些了。后续会就事论事,遇到哪个配置不明白或者需要重点说明的 我会都记录下来跟大家一起分享。

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5672字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959259
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...