Scala(或Java)对HBase访问进行烫洗的替代方法

时间:2013-04-16 19:32:49

标签: java scala hadoop hbase scalding

有人可以建议从HBase(或Hadoop)应用程序访问Scala群集上的Java的良好解决方案(框架)吗?

到现在为止,我正朝scalding方向前进。我获得的原型允许我将scalding库与Maven结合起来,并将scalding job JAR与'library'代码包分开。这反过来又允许我从外部集群运行基于scalding的Hadoop作业,每个作业的开销最小('库'代码只在更改时才会发布到集群'分布式缓存'(很少需要),因此我可以快速加载作业代码)

现在我实际上开始玩HBase本身,我看到烫伤是好的,但它对HBase来说并不是那么“原生”。是的,有一些像hbase-scalding这样的东西,但是我总体上有一点点计划未来的行动,我想知道我可能错过的其他好的解决方案。

预期结果:

  • 启动开销的应用程序(作业)应该很低。我需要经营很多。
  • 应该可以(更容易 - 更好)在没有任何SSH的情况下从外部集群运行作业(仅基于'hadoop jar'命令,甚至仅仅通过应用程序执行)。
  • 乔布斯语言本身应该允许简短的逻辑语义。理想情况下,此代码应足够简单,以便自动生成。
  • 此解决方案应该在足够大的HBase表(最初高达100.000.000个条目)上高效。
  • 好的,解决方案应该是“活的”(正在积极开发),但在总体稳定性方面相对较好。

我认为这里的论证可能比解决方案本身更有用,这个问题应该为很多人添加一些想法。 任何和平的建议?

5 个答案:

答案 0 :(得分:4)

如果您正在使用烫伤(我推荐),那么有一个新项目,其中包含用于访问HBase的更新级联和烫印包装。您可能需要查看它 - https://github.com/ParallelAI/SpyGlass

答案 1 :(得分:3)

HPaste http://www.gravity.com/labs/hpaste/可能正是您所寻找的。

答案 2 :(得分:1)

更新(2014年8月):平流层现在称为Apache Flink(孵化)

结帐Stratosphere。如果提供Scala API并且HBase module并且正在积极开发中。

  • 应该可以在一秒左右的时间内开始工作(取决于您的群集大小。)
  • 您可以远程提交作业(它有一个名为RemoteExecutor的类,允许您以编程方式在远程群集上提交作业)

如果您有其他问题,请与我联系!

答案 3 :(得分:1)

您可能对Kiji project (https://github.com/kijiproject/)感兴趣。它在HBase之上提供了“架构”层。

它还有一个Scalding适配器(KijiExpress),因此您可以对源自这些模式化HBase表的元组的“管道”执行功能集合操作(​​map,groupby等)。

答案 4 :(得分:0)

我目前正在尝试在空闲时间维持hbase-scalding。因为我也在接受Scala。

请查看github