查看压缩文件、普通文件
hadoop fs -text filename
hadoop fs -text /user/vsearch/offline/bangxi/il/part-r-02998.snappy | head
hadoop fs –cat filename //只能查看未压缩文件
kill任务
hadoop job -kill-task xxx
迁移队列
yarn application -movetoqueue applicaiton_xxx -queue root.search.data
限制mapper/reducer并发数量
mapreduce.job.running.map.limit
mapreduce.job.running.reduce.limit
设置Mapper/Reducer任务内存
mapreduce.map.memory.mb=2048
mapreduce.reduce.memory.mb=2048
AM内存配置
-Dyarn.app.mapreduce.am.command-opts=-Xmx5000m
-Dyarn.app.mapreduce.am.resource.mb=6000
设置Mappeer/Reducer进程JVM参数
mapreduce.map.java.opts=-Xmx3276
mapreduce. reduce.java.opts=-Xmx3276
设置hdfs备份
hadoop fs -setrep -w 1 /
设置队列
mapreduce.job.queuename =root.search.test
关闭物理、虚拟内存检查
yarn.nodemanager.pmem-check-enabled=false
yarn.nodemanager.vmem-check-enabled=false
yarn计算内存大小只是一个估计值,而且可能没有考虑除强引用之外的其他引用的情况(如:软引用、弱引用),则会导致container被am kill掉。
虚拟内存和物理内存的比例
yarn.nodemanager.vmem-pmem-ratio 默认值2.1
map/reduce重试次数
mapreduce.map.maxattempts=3
mapreduce.reduce.maxattempts=3
错误重试3次,才会认为任务失败
dfs文件备份数
dfs.replication
map/reduce容错比例
mapreduce.map.failures.maxpercent=20
mapreduce.reduce.failures.maxpercent=20
容错20%
hadoop跨集群迁移数据
hadoop distcp -m 100 hdfs://pachong-Ana-192-168-2-122.ali-shenzhen-b.vivo.lan:9000/hbase/data/default/* hdfs://pachong-pool-192-168-2-114-cn-shenzhen-b-ali:9000/hbase/data/default/
-m 指定mapper并发数,避免占用过多资源对影响其他业务。
hadoop动态添加节点
1.namenode节点添加slaves配置
2.在datanode上启动datanode和nodemanager
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start nodemanager
3.namenode上刷新节点
bin/hdfs dfsadmin -refreshNodes
4.namenode上启动均衡器
sbin/start-balancer.sh
hadoop动态删除节点
1.增加excludes文件,每行写一个要删除的节点的主机名
2.在hdfs-site.xml中增加
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
</property>
3.在mapred-site.xml中增加
<property>
<name>mapred.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
<final>true</final>
</property>
4.刷新节点 bin/hadoop dfsadmin -refreshNodes
5.运行负载均衡器
/sbin/start-balancer.sh
6.查看节点状态hadoop dfsadmin -report或者web管理端页面,可以看到该节点是decomissioning状态,等它变化为decomissioned,就可以把这个节点拿掉了。
sbin/hadoop-daemon.sh stop datanode
sbin/yarn-daemon.sh stop nodemanager
检查hadoop本地依赖是否存在
hadoop checknative –a //-a表示检查所有依赖
本地运行测试MR程序
conf.set("fs.default.name", "file:///");
conf.set("mapreduce.framework.name", "local");
Mapper心跳检测
mapred.task.timeout参数为超时时间配置,如果mapred.task.timeout=0,则表示不进行心跳检测。
设置输入输出路径
输出目录 -Dmapreduce.output.fileoutputformat.outputdir=/output/path/
输入目录 -Dmapreduce.input.fileinputformat.inputdir=/input/path/
压缩
Reducer压缩
mapreduce.output.fileoutputformat.compress=true
true启用压缩
mapreduce.output.fileoutputformat.compress.type=BLOCK
只对顺序文件有用:BLOCK块压缩,RECORD默认,NONE。
mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec
压缩格式Snappy,可以设置为其他格式。
Mapper压缩
mapreduce.map.output.compress=true
true对mapper输出进行压缩
mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec
压缩格式
文件切分
公式:splitSize=max{minSize,min{maxSize,blockSize}}
minSize通过mapreduce.input.fileinputformat.split.minsize配置,默认值0
maxSize通过mapreduce.job.split.metainfo.maxsize配置,默认值Long.MAX_VALUE
blockSize是hdfs文件块大小,配置为dfs.block.size,默认值128M
另外,hdfs文件不满128M时,在linux文件系统里也只占用文件的实际大小,而不是128M。
mapreduce.input.fileinputformat.split.minsize=1073741824,配置splitSize为1G。