你好,游客 登录 注册 搜索
背景:
阅读新闻

Hunk/Hadoop: 性能最佳实践

[日期:2015-09-28] 来源:InfoQ   作者: [字体: ]

  无论有没有使用Hunk,当运行Hadoop时,有很多种方式导致偶尔的性能底下。多数时候人们是增加更多的硬件来解决问题,但是有时候只需要简单更改下文件的名称就可以解决问题。

  运行Map-Reduce任务[Hunk]

  Hunk运行在Hadoop之上,但是这并不意味着一定做到有效的使用。如果Hunk运行在“复杂模式”,而不是“智能模式”的话,它就没有真正的用到Map-Reduce。相反它会直接将所有的Hadoop数据拉到Splunk引擎,并在那里处理它。

  HDFS存储[hadoop]

  在Hadoop的很多事项和Hunk有关联时如何部署文件?你需要在文件路径中包含时间戳,Hunk可以使用目录结构来当作一个过滤器,可以极大的减少被拉到Splunk的数据量。

  在文件名称中包含时间戳也可以生效,但是效果较差,因为Hunk仍然会读取所有的文件名。

  为了更好的性能,你可以在文件路径中包含一个健-值对。例如 “…/2015/3/2/app=webserver/…” 。在遍历目录时查询指令会将包含键-值对的过滤掉,再次减少了被拉到Splunk的数据量。

  基于时间戳的VIX/indexs.conf[hunk]

  当文件存储模式对于任何的Hadoop Map-Reduce有利时,你就需要修改indexs.conf,以让Hunk可以识别目录结构。

  文件格式[Hunk]

  诸如JSON和CSV这样的自我描述的文件,对于Hunk来说是很容易读取的,它们更加的详细,且消除了代价昂贵的映射操作。

  压缩类型/文件大小 [Hdaoop]

  要避免过大的文件,例如500MB的GZ压缩且没有分片的文件。(诸如LZO压缩的分片文件也是可以接受的。)对于没有分片的文件来说,在core和文件之间是一对一的映射关系,这就意味着只能有一个core来处理大文件,而其它定core只能空转等待。也就是说处理没有分片的文件花费了大量的时间,那么Map-Reduce的任务就无法快速的处理。

  同样,你也应该避免使用大量的大小在几十KB到几百KB之间的碎文件。如果文件太小,你会在启动和管理任务花费大量的时间,而不是真正的用在处理数据本身之上。

  报告加速[hunk]

  Hunk现在可以利用Splunk的报告加速功能了,这会在HDFS中缓存搜索的结果,减少或消除了需要从主的Hadoop集群中读取数据量。

  在你启用此功能之前,请确保你的Hadoop集群拥有足够的空间来存储缓存。

  硬件[Hadoop]

  确保你拥有合适的硬件。虽然Hadoop是能够运行在甚至是双核的笔记本电脑中,但是你要真正使用它,还是需要每个节点拥有至少4颗4个核的CPU,为了能够确保拥有足够的暂存空间,你须配置至少12GB的内存,两块本地磁盘(10K或固态)

  搜索Head Clustering[Hunk]

 

  搜索Head Clustering在Splunk 6.2中是相对较新的一个特性,在Splunk6.3中,对于基于Hunk的查询将是一个可行的属性。





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款