本文共 3238 字,大约阅读时间需要 10 分钟。
Hadoop添加节点的方法 自己实际添加节点过程: 1. 先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝; 2. 将新的datanode的host加到集群namenode及其他datanode中去; 3. 将新的datanode的ip加到master的conf/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也可以在有mrjob的cluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mr job时,可以提高该设置加快负载均衡时间。 其他备注: 1. 必须确保slave的firewall已关闭; 2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中 mapper及reducer个数 url地址:
较好的建议: 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.修改需要新加硬盘的node的dfs.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] and[WWW] . hadoop监控 OnlyXP(52388483) 131702 用nagios作告警,ganglia作监控图表即可
转载地址:http://zjrsi.baihongyu.com/