HDFS项目经验

一.项目经验:

  1.hdfs设置多目录

    why:当hdfs存储空间紧张,需要对datanode节点进行磁盘扩展

    what:(1)在 hdfs-site.xml 文件中配置多目录,注意新挂载磁盘的访问权限问题

<property> 
<name>dfs.datanode.data.dir</name> 
<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
<property> 
<name>io.compression.codecs</name> 
<value> 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 </value>
</property> <property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
       
        (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
 
原文地址:https://www.cnblogs.com/ldy233/p/13377416.html