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

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里用。
--------------------- 
作者:power0405hf 
来源:CSDN 
原文:https://blog.csdn.net/power0405hf/article/details/49906773 
版权声明:本文为博主原创文章,转载请附上博文链接!

Scala Hbase 问题汇总相关推荐

  1. Hbase问题汇总与解答

    今天早上分享了下HBase,分享的时候同事提出了一些问题,可能大部分有有这样的困惑,汇总下来: HBase问题汇总与解答 两个独立的服务器,一台用HDFS,一台不用HDFS可以吗?HDFS和Hbase ...

  2. 大数据平台技术——Scala+Hbase学习

    文章目录 Scala部分 2.Hbase部分 2.1 简介 什么是HBase 与其他部分的关系 Hbase的数据模型 HBase架构 Hbase访问接口 Hbase存储格式 2.2 安装与运行 2.3 ...

  3. 学习scala的网站汇总

    2019独角兽企业重金招聘Python工程师标准>>> https://www.codacy.com/blog/how-to-learn-scala/ 转载于:https://my. ...

  4. Spark 下操作 HBase

    HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本.这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API.虽然 1.0.0 兼容旧版本的 API,不过还是应 ...

  5. Hbase最全面入门指南

    1.1. 介绍 Section 1.2, "快速开始"会介绍如何运行一个单机版的HBase.他运行在本地磁盘上. Section 2, "配置" 会介绍如何运行 ...

  6. HBase(5):HBase进阶

    目录 0. 相关文章链接 1. Master架构 2. RegionServer 架构 3. 写流程 4. MemStore Flush 5. 读流程 5.1. HFile 结构 5.2. 读流程 5 ...

  7. HBase(6):HBase优化

    目录 0. 相关文章链接 1. RowKey 设计 1.1. 需求实现一 1.2. 需求实现二 1.3. 添加预分区优化 2. 参数优化 3. JVM 调优 4. HBase 使用经验法则 0. 相关 ...

  8. ES学习精品系列文章汇总及下载

    ES已经被很多企业使用,它是一个高扩展.开源的全文检索和分析引擎,它可以准实时地快速存储.搜索.分析海量的数据. 如果我们想学习.应用ES,就需要了解ES一些相关知识,下面汇总了比较经典的相关内容,供 ...

  9. 第五章 多范式的编程语言Scala

    第五章 多范式的编程语言Scala 1. Scala入门 1.1 Scala概述 1.1.1 为什么学习Scala Spark-新一代内存级大数据计算框架, 是大数据的重要内容 Spark就是使用Sc ...

最新文章

  1. 设置腾讯云linux服务器中 MySQL 允许远程访问
  2. JPA相关--Annotation
  3. SilverLight 双向绑定
  4. python 日志输出模块--两种方法
  5. jQuery监控页面所有ajax请求的方法
  6. 数据迁移方法之expdp
  7. 吴恩达《Machine Learning》精炼笔记 10:异常检测
  8. linux fedora 35 彻底卸载idea2021.2.2
  9. ACL 2020 | 基于稠密段落检索的开放域问答系统技术
  10. VTK:vtkBillboardTextActor3D用法实战
  11. MySQL填充字符串函数 LPAD(str,len,padstr),RPAD(str,len,padstr)
  12. 动态更改屏幕方向LANDSCAPE与PORTRAIT 转
  13. python取的键不存在_Python3基础 dict get 在查询不存在的键时,返回指定的内容
  14. 宝塔:ShopXO开源商城(如何二级域名访问)- 配置篇
  15. 做项目时的几个感慨(持续更新...)
  16. 知识图谱在推荐系统中的应用全面调研
  17. 计算机语言abs,Abs函数
  18. wifi和wlan有什么区别
  19. 撰写合格的REST API
  20. ssm+bootsrap人力资源考勤系统-JAVA【数据库设计、源码、开题报告】

热门文章

  1. socket如连接linux上的端口号_Linux| |对于UDP的学习
  2. css3属性文字换行,CSS3让文本自动换行——word-break属性
  3. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)
  4. 传统公司部署OpenStack(t版)简易介绍(四)——placement模块部署
  5. win service 2003 和 win service2008 区别
  6. python 下标越界_Python中异常处理
  7. mysql long raw_读取Oracle数据库中LONG RAW字段会抛出异常
  8. websocket中发生数据丢失_什么是WebSocket,它与HTTP有何不同?
  9. 外星人台式电脑_谈谈4万人民币的外星人R9台式机值不值得购买
  10. java文件读写 outputstream_java IO文件读写例子(OutputStream,InputStream,Writer,Reader)...