Scala Hbase 问题汇总 stack overflow

原创 2015年11月18日 14:33:57

1.

object hbase is not a member of package org.apache.hadoop when compiling scala
在Scala工程中使用HBase API,import hbase时,

import org.apache.hadoop.hbase

出现编译错误

解决(大概,没有尝试):
使用sbt构建工程时,添加依赖:
hbase-client,hbase-common,hbase-server然后sbt assembly

libraryDependencies ++=Seq(
    "org.apache.hbase" % "hbase-server" % "0.99.2",
    "org.apache.hbase" % "hbase-common" % "0.99.2"
    "org.apache.hbase" % "hbase-client" % "0.99.2"

2.

Spark读取Hbase中的数据
加入如下依赖:

libraryDependencies ++= Seq(
        "org.apache.spark" % "spark-core_2.10" % "0.9.1",
        "org.apache.hbase" % "hbase" % "0.98.2-hadoop2",
        "org.apache.hbase" % "hbase-client" % "0.98.2-hadoop2",
        "org.apache.hbase" % "hbase-common" % "0.98.2-hadoop2",
        "org.apache.hbase" % "hbase-server" % "0.98.2-hadoop2"
)

在测试的时候,需要配置好Hbase、Hadoop环境,否则程序会出现问题,特别是让程序找到Hbase-site.xml配置文件。

import org.apache.spark._
import org.apache.spark.rdd.NewHadoopRDD
import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor}
import org.apache.hadoop.hbase.client.HBaseAdmin
import org.apache.hadoop.hbase.mapreduce.TableInputFormat

/////////////////////////////////////////////////////////////////////
 User: 过往记忆
 Date: 14-6-29
 Time: 23:59
 bolg: http://www.iteblog.com
 本文地址:http://www.iteblog.com/archives/1051
 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
 过往记忆博客微信公共帐号:iteblog_hadoop
/////////////////////////////////////////////////////////////////////

object HBaseTest {
  def main(args: Array[String]) {
    val sc = new SparkContext(args(0), "HBaseTest",
      System.getenv("SPARK_HOME"), SparkContext.jarOfClass(this.getClass))

    val conf = HBaseConfiguration.create()
    conf.set(TableInputFormat.INPUT_TABLE, args(1))

    val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], 
      classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
      classOf[org.apache.hadoop.hbase.client.Result])

    hBaseRDD.count()

    System.exit(0)
  }
}

3.

How to read from hbase using spark
使用Spark(Scala)读取HBase的基本范例:

mport org.apache.hadoop.hbase.client.{HBaseAdmin, Result}
import org.apache.hadoop.hbase.{ HBaseConfiguration, HTableDescriptor }
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.io.ImmutableBytesWritable

import org.apache.spark._

object HBaseRead {
  def main(args: Array[String]) {
    val sparkConf = new SparkConf().setAppName("HBaseRead").setMaster("local[2]")
    val sc = new SparkContext(sparkConf)
    val conf = HBaseConfiguration.create()
    val tableName = "table1"

    System.setProperty("user.name", "hdfs")
    System.setProperty("HADOOP_USER_NAME", "hdfs")
    conf.set("hbase.master", "localhost:60000")
    conf.setInt("timeout", 120000)
    conf.set("hbase.zookeeper.quorum", "localhost")
    conf.set("zookeeper.znode.parent", "/hbase-unsecure")
    conf.set(TableInputFormat.INPUT_TABLE, tableName)

    val admin = new HBaseAdmin(conf)
    if (!admin.isTableAvailable(tableName)) {
      val tableDesc = new HTableDescriptor(tableName)
      admin.createTable(tableDesc)
    }

    val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
    println("Number of Records found : " + hBaseRDD.count())
    sc.stop()
  }
}

4.

Spark 下操作 HBase(1.0.0 新 API)
这个个人博客外观挺好的

5.

How to configure hbase in spark?
Q:Spark连接HBase的步骤是什么?是不是只要把HBase的地址添加到spark的classpath?
A:No,事实上,你需要把HBase的配置文件加到Spark的classpath(put the HBase configuration files in the Spark classpath),如果不这样,你应该在代码中设置,如:

Configuraiton hConf = HBaseConfiguration.create(conf);
hConf.set("hbase.zookeeper.quorum","PDHadoop1.corp.CompanyName.com,PDHadoop2.corp.CompanyName.com");
hConf.setInt("hbase.zookeeper.property.clientPort",10000);

Q:如何将hbase configuration加入spark classpath,是不是像这样:export SPARK_CLASSPATH=/path/to/hbaes/conf
A:对,但这只能在driver里用。

HBase客户端访问超时原因及参数优化

默认的HBase客户端的参数配置是没有做过优化的,所以对于低延时响应的HBase集群,需要对客户端的参数进行优化。1.      hbase.rpc.timeout以毫秒计算的所有HBase RPC超...
  • jiangshouzhuang
  • jiangshouzhuang
  • 2016年08月29日 18:53
  • 4668

Spark写入HBase长时间没有反应的问题解决(子节点没有HRegionServer)

在测试spark写入到HBase数据库的时候,碰到了卡壳的情况。查看状态,一直停留在connect阶段,跳不过去。。 于是只能一步一步查,终于发现当在Master上启动start-hbase...
  • sparkexpert
  • sparkexpert
  • 2016年06月24日 08:45
  • 682

Hbase在连接api时遇到的问题

一,首先请先看图,是不是遇到了这样的问题: 二,解决方法: 这是因为连接不上你的虚拟机,或是你在运行时没有将hadoop,zookeeper,hbase,其中的一个启动好。 如果是第一种情况: ...
  • young_so_nice
  • young_so_nice
  • 2016年05月14日 13:02
  • 500

Windows 远程连接Hbase常见错误

错误1: 15/10/13 16:49:04 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quo...
  • L668303
  • L668303
  • 2015年10月30日 20:48
  • 2320

使用传统hbase的api创建hbase表(scala)

使用传统hbase的api创建hbase表(scala)
  • high2011
  • high2011
  • 2016年09月10日 12:38
  • 1942

编译hbase-1.2.3源代码

目录 目录 1 1. 约定 1 2. 安装jdk 1 3. 安装maven 1 4. 网络配置 2 4.1. eclipse 3 4.2. maven 3 5. 从hbase官网下载源代码包: 4 6...
  • Aquester
  • Aquester
  • 2016年10月25日 17:25
  • 1631

如何解决C、C++中stack overflow问题

转自:http://wenku.baidu.com/link?url=qQJbEF8-tiu-ijhjkn-SMv71Yv9zyYqvo67xVz570nPZsgpzmFupIticPO0hhAuB_...
  • u011909633
  • u011909633
  • 2015年02月17日 10:22
  • 1386

Stack overflow错误的一个原因

前两天,将已经在TCPMP下完成的文件列表与LRC移植到一个新的EVC4 MFC工程中,调用初始化文件列表后,运行出现Stack overflow错误。分析原因:局部变量申请太多,默认stack只有1...
  • 91program
  • 91program
  • 2008年04月24日 08:28
  • 1975

Stack overflow at line:0网页提示终极解决大法

Stack overflow at line:0网页提示终极解决大法
  • u010509401
  • u010509401
  • 2014年09月18日 10:46
  • 1256

Stack overflow at line  错误原因

场景:点击页面上一个超链接,弹出模态窗口。
  • yanan_seachange
  • yanan_seachange
  • 2013年11月29日 16:48
  • 974
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Scala Hbase 问题汇总 stack overflow
举报原因:
原因补充:

(最多只允许输入30个字)