玩转Hadoop的几个小技巧

转载 2013年12月05日 12:27:04

Hadoop添加节点的方法 
自己实际添加节点过程:
1.
先在slave上配置好环境,包括sshjdk,相关configlibbin等的拷贝;
2.
将新的datanodehost加到集群namenode及其他datanode中去;
3.
将新的datanodeip加到masterconf/slaves中;
4.
重启cluster,cluster中看到新的datanode节点;
5.
运行bin/start-balancer.sh,这个会很耗时间
备注:
1.
如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mr的工作效率;
2.
也可调用bin/start-balancer.sh命令执行,也可加参数 -threshold 5
   threshold
是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长。
3. balancer
也可以在有mrjobcluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mr job时,可以提高该设置加快负载均衡时间。

其他备注: 
1.
必须确保slavefirewall已关闭;
2.
确保新的slaveip已经添加到master及其他slaves/etc/hosts中,反之也要将master及其他slaveip添加到新的slave/etc/hosts
mapper
reducer个数 
url
地址: http://wiki.apache.org/hadoop/HowManyMapsAndReduces

较好的建议:
The right number of reduces seems to be 0.95 or 1.75 multiplied by (<no. ofnodes> * mapred.tasktracker.reduce.tasks.maximum).increasing the number ofreduces increases the framework overhead, but increases load balancing andlowers the cost of failures. 
<property>
  <name>mapred.tasktracker.reduce.tasks.maximum</name>
  <value>2</value>
  <description>The maximum number of reduce tasks that will berun
  simultaneously by a task tracker.
  </description>
</property>

单个node新加硬盘 
1.
修改需要新加硬盘的nodedfs.data.dir,用逗号分隔新、旧文件目录
2.
重启dfs

同步hadoop 代码 
hadoop-env.sh
# host:path where hadoop code should be rsync'd from.  Unset bydefault.
# export HADOOP_MASTER=master:/home/$USER/src/hadoop

用命令合并HDFS小文件 
hadoop fs -getmerge <src> <dest>

重启reduce job方法 
Introduced recovery of jobs when JobTracker restarts. This facility is off bydefault.
Introduced config parameters "mapred.jobtracker.restart.recover","mapred.jobtracker.job.history.block.size", and"mapred.jobtracker.job.history.buffer.size".
还未验证过。

HDFS
退服节点的方法 
目前版本的dfsadmin的帮助信息是没写清楚的,已经file了一个bug了,正确的方法如下:
1.
dfs.hosts 置为当前的slaves,文件名用完整路径,注意,列表中的节点主机名要用大名,即 uname -n 可以得到的那个。
2.
slaves 中要被退服的节点的全名列表放在另一个文件里,如 slaves.ex,使用 dfs.host.exclude 参数指向这个文件的完整路径
3.
运行命令bin/hadoop dfsadmin -refreshNodes
4. web
界面或bin/hadoop dfsadmin -report 可以看到退服节点的状态是 Decomission in progress,直到需要复制的数据复制完成为止
5.
完成之后,从slaves 里(指dfs.hosts 指向的文件)去掉已经退服的节点

附带说一下 -refreshNodes 命令的另外三种用途: 
2.
添加允许的节点到列表中(添加主机名到 dfs.hosts 里来)
3.
直接去掉节点,不做数据副本备份(在 dfs.hosts 里去掉主机名)
4.
退服的逆操作——停止 exclude 里面和 dfs.hosts 里面都有的,正在进行 decomission 的节点的退服,也就是把 Decomission inprogress 的节点重新变为Normal (在 web 界面叫 in service)
distribute cache
使用 
类似一个全局变量,但是由于这个变量较大,所以不能设置在config文件中,转而使用distribute cache
具体使用方法:(详见《the definitive guide,P240)
1.
在命令行调用时:调用-files,引入需要查询的文件(可以是local file, HDFS file(使用hdfs://xxx?)), 或者 -archives (JAR,ZIP, tar)
% hadoop jar job.jar MaxTemperatureByStationNameUsingDistributedCacheFile \
  -files input/ncdc/metadata/stations-fixed-width.txt input/ncdc/alloutput
2.
程序中调用:
   public void configure(JobConf conf) {
      metadata = new NcdcStationMetadata();
      try {
        metadata.initialize(newFile("stations-fixed-width.txt"));
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
   }
另外一种间接的使用方法:在hadoop-0.19.0中好像没有
调用addCacheFile()或者addCacheArchive()添加文件,
使用getLocalCacheFiles() getLocalCacheArchives() 获得文件

hadoop
job显示web 
There are web-based interfaces to both the JobTracker (MapReduce master) andNameNode (HDFS master) which display status pages about the state of the entiresystem. By default, these are located at [WWW] http://job.tracker.addr:50030/and[WWW] http://name.node.addr:50070/ . 

hadoop
监控 
OnlyXP(52388483) 131702
nagios作告警,ganglia作监控图表即可

 

批量改名六大神技

批量改名六大神技shell实例1:改名指令rename的用法如下:[root@ChangerLee 批量改名]# touch file_{1..10}[root@ChangerLee 批量改名]# l...
  • ChangerJJLee
  • ChangerJJLee
  • 2016年08月11日 08:04
  • 331

Hadoop单机版环境搭建及第一个示例

1,安装JDK(1.8)与Hadoop(2.7.2) 1>将jdk与hadoop放到/opt/tool(自己建一个文件夹) 2>tar zxvf进行解压 3>配置JDK与Hadoop环境变量 ...
  • an_2016
  • an_2016
  • 2016年07月28日 19:30
  • 1763

Hadoop MapReduce之ReduceTask任务执行(三):Merger线程分析

在reduce端的文件拷贝阶段,会将数据放入内存或直接放入磁盘中,如果文件全部拷贝完再进行合并那样必然降低作业效率,所以在拷贝进行到一定阶段,数据的合并就开始了,负责该工作的有两个线程:InMemFS...
  • gjt19910817
  • gjt19910817
  • 2014年06月17日 02:31
  • 1260

Linux小技巧收集

 原贴地址:http://blog.chinaunix.net/u/26011/showart.php?id=364841 ...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年08月28日 12:53
  • 8279

Hadoop全分布式配置(2个节点)

Hadoop全分布式配置 所需文件: jdk-8u65-linux-x64.tar.gz hadoop-2.6.0.tar.gz 节点类型 I...
  • u014439581
  • u014439581
  • 2016年05月05日 17:08
  • 1637

Hadoop默认端口表及用途

端口 用途 9000 fs.defaultFS,如:hdfs://172.25.40.171:9000 9001 dfs.namenode.rpc-address,DataNode会...
  • huanbia
  • huanbia
  • 2017年04月14日 11:01
  • 845

mysql使用小技巧

1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat() 将取到的值用逗号连接,可以这么用:select group_concat(distinct id) fr...
  • lu_wei_wei
  • lu_wei_wei
  • 2016年05月03日 10:34
  • 2587

玩转Linux - 常用的命令和操作

简述 每个程序员基本都应该用过Linux操作系统,有的用来搭建服务器,有的用来安装前端扩展插件工具等等,但是无一例外都是需要操作Linux,所以我这次分享一些常见的实用的命令。 chk...
  • liu870915
  • liu870915
  • 2016年11月03日 09:58
  • 398

C语言的一些小技巧 小知识

http://soft.chinabyte.com/database/279/12408779.shtml点击打开链接 点击打开链接 点击打开链接...
  • wocao1226
  • wocao1226
  • 2014年04月26日 22:08
  • 842

hadoop 各个模块介绍

本文转自http://blog.csdn.net/gamer_gyt,主要用于个人学习 1:NameNode 2:SecondNameNode 3:DataNode ...
  • yangzhenzhen
  • yangzhenzhen
  • 2017年08月13日 14:58
  • 373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:玩转Hadoop的几个小技巧
举报原因:
原因补充:

(最多只允许输入30个字)