jho*_*hop 7 performance hadoop accumulo
简而言之,我有一个客户想要将一堆ASCII文本文件(也就是"输入文件")中包含的数据包含在Accumulo中.
这些文件从不同的数据馈送设备输出,并将在非Hadoop /非Accumulo节点(也称为"馈送节点")上连续生成.预计所有供稿的总体数据吞吐率非常高.
为简单起见,假设所有数据都将在Accumulo中的一个正向索引表和一个反向[反向]索引表中结束.
我已经使用pyaccumulo编写了一个Accumulo客户端模块,它可以通过Thrift Proxy与Accumulo建立连接,从本地文件系统(而不是HDFS)读取和解析输入文件,在代码中创建适当的正向和反向索引突变,以及使用BatchWriter将突变写入正向和反向索引表.到现在为止还挺好.但还有更多.
从各种来源,我已经了解到至少有一些标准方法可以应用于我的场景中的Accumulo高速摄取,我要求就哪些选项在资源使用方面最有意义提出一些建议,易于实施和维护.以下是一些选项:
就个人而言,我最喜欢选项#2,只要Accumulo主节点可以处理自己涉及的处理负载(非并行输入文件解析).#2的变体,我可以在每个Accumulo节点上运行我的Accumulo客户端,并将不同的feed节点的输出发送到不同的Accumulo节点或循环,仍然具有在云端发送正向和反向索引突变的缺点网络到Accumulo master,但确实具有更多并行执行输入文件解析的优势.
我需要知道的是:我错过了任何可行的选择吗?我错过了每个选项的优点/缺点吗?无论我的问题背景如何,特别是网络带宽/ CPU周期/磁盘I/O权衡,是否有任何优点/缺点是微不足道的或非常重要的?与BatchWriter相比,使用或不使用rfiles的MapReduce值得麻烦吗?有人有"战争故事"吗?
谢谢!
即使对于每个用例,人们对于如何为特定用例实施解决方案都有个人偏好。实际上,我会在 feed 节点上运行 Flume 代理并收集 HDFS 中的数据,并使用 RFile 方法定期对到达 HDFS 的新数据运行 MapReduce。
| 归档时间: |
|
| 查看次数: |
989 次 |
| 最近记录: |