前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >提高hadoop的可靠性(上)

提高hadoop的可靠性(上)

作者头像
刀刀老高
发布2018-04-11 11:09:39
7200
发布2018-04-11 11:09:39
举报
文章被收录于专栏:奇点大数据奇点大数据

提高hadoop可靠性已经有很多方法了,我尝试着收集整理了5种,通过修改Hadoop默认配置就可以极大的提升Hadoop的可靠性,本文先列举了前3种:

(1)文件的删除和恢复

为了避免误删文件,hadoop提供了回收站功能,配置文件如下

core-site.xml

<property>

<name>fs.trash.interval</name>

<value>1440</value>

</property>

和windows的回收站一样,HDFS会在用户目录下创建一个.Trash目录,删除的文件会自动放入/user/用户名/.Trash下。fs.trash.interval参数的单位是分钟,回收站中的文件保留1天后,会被回收线程(Emptier)删除。当然,用户也可以手动删除。如果需要恢复数据的话,可以使用mv命令将文件移动回原有目录即可。

(2)复制份数的更改

hdfs默认保存的份数为3份,可以通过以下配置文件更改

hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

当前的复制份数可以通过以下命令查看到:

hadoop fsck -locations

也可以通过hdfs基本操作命令查看。

如:

[hadoop@test1 hadoop]$ hadoop dfs -ls /tmp

-rw-r--r-- 5 hadoop supergroup 1281 2016-01-05 18:24 /tmp/file3

-rw-r--r-- 1 hadoop supergroup 1281 2016-01-05 18:26 /tmp/file4

在/tmp下的file3 存储了5份,其他文件存储1份。注意: 这里的份数超过了datanode的个数会失败,通过日志可以体现

在生产环境修改了全局份数的配置文件后需要重启hadoop生效,也可以使用命令修改复制份数,如修改file4 为3份:

hadoop fs -setrep -R 3 /tmp/file4

也可以对指定目录修改,目录下所有文件的份数都会变化。这样可以实时修改复制份数

在上传时也可以指定复制份数,如上传file3时指定复制的份数为1份:

hadoop dfs -D dfs.replication=1 -copyFromLocal /etc/passwd /tmp/file3

(3)在线添加和移除datanode节点

由于各种原因经常需要调整datanode或yarn的数量,那就需要在线更改。首先看下在线增加datanode

首先为新增加的datanode建立ssh信任关系,然后修改配置文件slaves以便下次重启hadoop集群时能加载此datanode,并同步到新添加的datanode上。

启动独立的datanode方式如下:

hadoop-daemon.sh start datanode

yarn-daemon.sh start nodemanager

通过在新增节点执行jps 命令或者执行以下都可以查看。

yarn node -list

hadoop dfsadmin -report

还需要注意新添加节点之后不包含任何数据,hadoop需要进行数据平衡。默认每个节点的使用比例占相差10%,可以通过脚本设置平衡的比例

start-balancer.sh -threshold 80

也可以限制同步的带宽,这里以100M为例

hdfs dfsadmin -setBalancerBandwidth 104857600

另外值得一提的是hadoop能支持机架感知功能,可以利用预先设置好的机架位置确定多份数据的存储节点,提高可靠性

在线删除datanode操作其实利用了hadoop的Decommission状态。修改mapred-site.xml配置文件,增加

<property>

<name>dfs.hosts.exclude</name>

<value>/home/hadoop/hadoop/etc/hadoop/deny.list</value>

</property>

然后在deny.list写入要删除的datanode,每行一个。执行

hadoop dfsadmin -refreshNodes

刷新之后观察datanode状态,如果为Decommissioned即可停止datanode节点了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能工场AIWorkshop 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档