如何在amazon elastic mapreduce上使用更新版本的hbase?

nkoocmlb  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(233)

amazon的elasticmapreduce工具似乎只支持hbase v0.92.x和v0.94.x。
emr amis和hbase的文档似乎已经过时,最新的发行标签emr-4.0.0上没有关于hbase的信息。
使用aws工程师提供的这个例子,我能够想出一种方法在节点上安装另一个版本的hbase,但最终没有成功。
在用java sdk为emr提供更好的版本进行了多次尝试之后,我问:
是否可以将emr配置为使用更新版本的hbase(例如0.98.x和更高版本)

ih99xse1

ih99xse11#

经过几天对aws的试用、出错和支持,我能够在amazon的elasticmapreduce服务上实现hbase 0.98。下面介绍如何使用javasdk、一些基于bash和ruby的引导操作来实现这一点。
这些bash和ruby脚本归功于amazon支持。它们在开发脚本中,不受官方支持。这是一个黑客。
支持的版本:hbase 0.98.2 for hadoop 2
我还在googledrive中为支持文件创建了镜像,以防amazon从s3中删除它们。
java sdk示例

RunJobFlowRequest jobFlowRequest = new RunJobFlowRequest()
    .withSteps(new ArrayList<StepConfig>())
    .withName("HBase 0.98 Test")
    .withAmiVersion("3.1.0")
    .withInstances(instancesConfig)
    .withLogUri(String.format("s3://bucket/path/to/logs")
    .withVisibleToAllUsers(true)
    .withBootstrapActions(new BootstrapActionConfig()
        .withName("Download HBase")
        .withScriptBootstrapAction(new ScriptBootstrapActionConfig()
                .withPath("s3://bucket/path/to/wget/ssh/script.sh"))
    )
    .withBootstrapActions(new BootstrapActionConfig()
        .withName("Install HBase")
        .withScriptBootstrapAction(new ScriptBootstrapActionConfig()
                .withPath("s3://bucket/path/to/hbase/install/ruby/script"))
    )
    .withServiceRole("EMR_DefaultRole")
    .withJobFlowRole("EMR_EC2_DefaultRole");

“下载hbase”引导操作(bash脚本)
源于s3
谷歌硬盘镜像
“安装hbase”引导操作(ruby脚本)
源于s3
谷歌硬盘镜像
hbase安装tarball(用于“下载hbase”脚本)
源于s3
谷歌硬盘镜像
复制这些文件
我强烈建议您下载这些文件并将它们上传到自己的s3 bucket中,以便在引导操作/脚本中使用。必要时进行调整。

相关问题