作者:麦尔小哈PICA | 来源:互联网 | 2023-08-19 21:22
一.项目经验:1.hdfs设置多目录why:当hdfs存储空间紧张,需要对datanode节点进行磁盘扩展what:(1)在hdfs-site.xml文件中配置多目录,注意新挂载磁
一.项目经验:
1.hdfs设置多目录
why:当hdfs存储空间紧张,需要对datanode节点进行磁盘扩展
what:(1)在 hdfs-site.xml 文件中配置多目录,注意新挂载磁盘的访问权限问题
<property>
<name>dfs.datanode.data.dirname>
<value>
file:///${hadoop.tmp.dir}/dfs/data1,
file:///hd2/dfs/ data2,
file:///hd3/dfs/data3,
file:///hd4/dfs/data4
value>
property>
(2)增加磁盘后,保证每个目录数据均衡
开启数据均衡命令: (当出现数据倾斜时也可以使用该命令)
bin/start-balancer.sh –threshold 10 (这样会使得hdfs各节点磁盘利用率相差不超过10%)
2.使用LZO压缩
why:在hadoop中使用lzo的压缩算法可以减小数据的大小和数据的磁盘读写时间,在HDFS中存储压缩数据,可以使集群能保存更多的数据,延长集群的使用寿命。不仅如此,由于mapreduce作业通常瓶颈都在IO上,存储压缩数据就意味这更少的IO操作,job运行更加的高效。
what:(1)将hadoop-lzo.jar放入hadoop/share/hadoop/common/
cd hadoop/share/hadoop/common/ , xsync hadoop-lzo-0.4.20.jar 分发hadoop-lzo.jar至其他服务器
(2)vim core-site.xml 别忘了分发core-site.xml
io.compression.codecs
org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec, org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec, com.hadoop.compression.lzo.LzopCodec
io.compression.codec.lzo.class
com.hadoop.compression.lzo.LzoCodec
(3)重新启动hdfs集群 stop-all.sh , start-all.sh
3.基准测试
why:测试hdfs集群性能
what:
(1)测试写性能 测试内容:向 HDFS 集群写 10 个 128M 的文件
hadoop jar hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-j obclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB
(2)测试读性能 测试内容:读取 HDFS 集群 10 个 128M 的文件
hadoop jar hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-j obclient-2.7.2-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB
(3)删除测试生成的数据
hadoop jar hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapredu ce-client-jobclient-2.7.2-tests.jar TestDFSIO -clean