程序员的自我修养
Home » CDH » CDH集群常用管理操作

CDH集群常用管理操作

1条评论4,122次浏览

调整replication

随着业务数据的不断增加,hdfs可用空间逐渐减少。经过再三考虑决定将集群的备份数量由2变为1,也就是不在备份,每个数据块只有唯一的一份存档。

当初备份数由3调成2时只是简单的将dfs.replication由3变成了2,然后分发配置重启集群。记得当时通过hdfs dfsadmin -report查看hdfs占用大小发现大小一直在减少。心想着hdfs还挺智能的,知道备份数减少了,自己去删除多余的副本了。

结果这次将dfs.replication由2变成了1后发现hdfs空间一直保持不变。难道上次的记忆出错了,hdfs其实并不会自己去调整备份数?

后来查了相关资料,证实hdfs确实不会根据dfs.replication参数来自动调整备份数。这个参数是给client端用的,当有新文件写入时,会根据该参数确定复制几份,但集群已有的文件备份数不受该参数的影响。

于是使用命令hadoop fs -setrep -R 1 /将集群全部文件的备份数变为1。再次查看集群空间大小,发现下降了一半。成功。

自己想想上次由3变成2时hdfs空间自己减少应该是记忆出错了,因为当时通过hdfs fsck /查看备份数的时候,平均备份数好像是2.03X,也就是当时应该有部分文件的备份时还是3,此后写入的文件的备份数才为2。

Balancer

集群运行一段时间后各个节点的磁盘使用率可能会产生较大的差异,这时可以用balancer来重新平衡各个节点。

首先调大balancer的带宽hadoop dfsadmin -setBalancerBandwidth 52428800,这里设置为50MB。默认的带宽较小,防止占用太多资源。若需要快速平衡可以将带宽调为一个较大的值。

接着启动balancer。可以在CM里启动(hdfs-balancer-示例-操作-重新平衡),也可以命令启动(hadoop balancer [-threshold ])。

删除节点

为啥没事要删除节点?我也不想,只能说前方施工的孩子们太不靠谱了,将本来归属集群的5台机器和归属应用服务器的5台机器弄混了。当时拿到配置列表的时候我就问了,为啥集群所有集群的配置不一样,这5台机器为啥配置这么差?答曰:就是这样的。

现在终于被局方发现不对了,又要调整回来,真是哔了狗了。

没办法,开始调整吧。首先,Decommission这5台机器。由于有一台机器上分配了SNN角色,决定先Decommission另外4台试试。通过Cloudera Manager在主机中选中需要Decommission的4台机器,选择从集群中删除,然后经过漫长的等待即可(视需要转移的数据量而定)。

期间发现正在Decommission的机器的DFS Used一直保持不变,但是监控显示HDFS IO增加了很多。也就是Decommission机器上的数据确实转移到了其它机器上,但是Decommission机器上的这些数据并不会删除。

接着开始处理分配了SNN的节点。首选找一台不会被Decommission的机器,添加SNN实例,然后停止正在运行的SNN实例并删除。然后启动后添加的SNN实例,重启集群即可。

增加节点

根据CDH离线安装手册配置好新加入的节点,启动新节点上的CM agent后即可在CM中主机列表中看到新加入的节点了。选中新加入的节点,应用模板并启动角色即可。最后重启集群。

待后续添加

(转载本站文章请注明作者和出处 程序员的自我修养 – SelfUp.cn ,请勿用于任何商业用途)
分类:CDH
标签:
1条评论
  1. 雪夜孤狼说道:

    请问有没有试过删除CDH的旧节点,重装之后再添加进去?我的CDH平台有个datanode被误操作释放掉了,后来一样的ip和host重建了一个,想重新加进集群

发表评论


profile
  • 文章总数:79篇
  • 评论总数:331条
  • 分类总数:31个
  • 标签总数:44个
  • 运行时间:1072天

大家好,欢迎来到selfup.cn。

这不是一个只谈技术的博客,这里记录我成长的点点滴滴,coding、riding and everthing!

最新评论
  • 增达网: 受教了!呵呵!
  • Anonymous: :!: :smile: :oops: :grin: :eek: :shock:
  • 27: :razz: dsa会报错,rsa不会
  • Anonymous: 看错了 忽略我
  • Anonymous: UserSideCF这个类在哪里
  • 晴子: 在主节点初始化CM5数据库的时候报错误:Verifying that we can write to /opt/cm-5.9.0/etc/cloudera-scm -server log4j:ERROR Could not...
  • zhangnew: 就4题 :?:
  • linxh: “ 但要是遇到预先并不知道数组的长度而又需要获取正确的(或者称之 为原始的)split长度时,该如何处理呢。。? ” 印象中可以split函数参数传-1?
  • linxh: 班门弄斧一下: ssh host cmd 和直接ssh上后cmd结果不一样是因为ssh直接运行远程命令 是非交互非登录模式与ssh上去得到一个登录交互式Shell二 者加载的环境变量不一样。
  • 匿名: 其实文本分类和数字分类是一样的,只是文本分类需要多一个步骤, 就是计算它的tf-idf值将其转换为double类型
  • yurnom: 可能苹果最近又改变了返回值吧,最近没做测试了。 BadDeviceToken一般测试环境和正式环境弄错的情况 下会出现。
  • Anonymous: :razz: 博主,良心贴啊, 最近也在弄apns推送。 有个问题想请教你一下啊。 你博客中写的 Unregistered 错误,有准确的说明吗, 我看你博客中写的:...
  • 一波清泉: 回复邮箱: 1004161699@qq.com 多谢
  • Anonymous: 17/02/09 01:15:02 WARN Utils: Service ‘SparkUI’ could not bind on port 4040. Attempting port...
  • pacificLee: :twisted:
  • 小码: 为什么没有后面的呢,只有前10个
  • Anonymous: :lol:
  • Anonymous: :razz: 楼主是属于会聊天的。 我想问,sqoop发了几个版本了,应该没这些问题了吧。
  • Anonymous: Config.kafkaConfig.kafkaGroupI d 这个是指自己配置的group id 还是从 import org.apache.kafka.common.config .Config 这个类...
  • Anonymous: ZkUtils.getPartitionsForTopics (zkClient, Config.kafkaConfig.topic) 那个方法是在 spark-streaming_2.10 中 kafka...