gpt4 book ai didi

scala - 连接到本地 HBase

转载 作者:行者123 更新时间:2023-12-04 18:51:31 24 4
gpt4 key购买 nike

大家好

我尝试开发可与 HBase 一起使用的 Scala 应用程序,但遇到了一个奇怪的问题。

我的环境:

Workstation - Ubuntu 14.04 x64
Java - Oracle JDK 1.7

系统变量:
~/.bashsr 文件:
export SCALA_HOME=/usr/local/scala/scala-2.10.5
export PATH=$SCALA_HOME/bin:$PATH
export HBASE_HOME=/usr/local/hbase-0.94.18
export HBASE_CONF=/usr/local/hbase-0.94.18/conf
export PATH="$JAVA_HOME/bin:$HBASE_HOME/bin:/usr/local/bin:/usr/local/sbin:$PATH"
export SPARK_HOME=/usr/local/spark-1.3.1-hd2.4
export PATH=$PATH:$SPARK_HOME/bin

对于我的应用程序,我下载并安装了 HBase 0.94.18(相当于 AWS EMR 3.9.0 AMI 的 HBase 版本)。
HBase 配置文件:
1. $HBASE_HOME/conf/hbase-env.sh 包含下一个设置
export HBASE_LOG_DIR=/home/yustas/hbase/logs
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export HBASE_OPTS="-XX:+UseConcMarkSweepGC -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
  • $HBASE_HOME/conf/hbase-site.xml
    <configuration>
    <property>
    <name>hbase.rootdir</name>
    <value>file:///home/yustas/hbase/data</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/yustas/hbase/zookeeper</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
    </property>
    </configuration>

  • 我可以通过以下命令开始结束本地 HBase:
    start-hbase.sh
    stop-hbase.sh

    另外,我可以通过hbase shell打开shell并创建一个表并将一些数据放在这个表中。
    我可以通过 Web UI 查看我的 HBase 状态: http://localhost:60010/master-status

    斯卡拉程序

    我有 的副本hbase-site.xml {PROJECT}/src/main/resource 文件夹中的文件并将其用作资源。
    我尝试运行非常简单的代码:
    import org.apache.hadoop.hbase.{HTableDescriptor, HColumnDescriptor, HBaseConfiguration}
    import org.apache.hadoop.hbase.client.{HTable, HBaseAdmin}

    object DataLoad {
    var tableName: String = "table"
    var tableCF : String = "field_set"
    var hbaseAdmin: HBaseAdmin = null

    def main(args: Array[String]): Unit = {
    val conf = HBaseConfiguration.create()
    hbaseAdmin = new HBaseAdmin(conf) //program stops responding in this line, and just hanging out.
    if(!hbaseAdmin.tableExists(tableName)){
    val tdesc = new HTableDescriptor(tableName)
    tdesc.addFamily(new HColumnDescriptor(tableCF));
    hbaseAdmin.createTable(tdesc)
    }
    println("HBase: table " + tableName + " available state is " + hbaseAdmin.isTableAvailable(tableName))
    }
    }

    问题

    我的代码已编译并成功运行,但在 hbaseAdmin = new HBaseAdmin(conf) 行中,程序在此行中停止响应并且只是闲逛。我等了〜5分钟 - 没有变化。

    我想知道我哪里有错误?我今天在此站点和其他特定站点中找不到此问题。

    最佳答案

    尝试在 hbase-site.xml 中也设置此属性

    <property>
    <name>hbase.master</name>
    <value>localhosts:60000</value>
    </property>
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
    </property>

    关于scala - 连接到本地 HBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462868/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com