关闭

spark 连接hbase

标签: hbasespark
1104人阅读 评论(0) 收藏 举报

一、环境准备

1、复制HBase目录下的lib文件 到 spark目录/lib/hbase。spark 依赖此lib

清单如下:guava-12.0.1.jar            htrace-core-3.1.0-incubating.jar protobuf-java-2.5.0.jar   这三个jar加上以hbase开头所有jar,其它就不必了。全部复制会引起报错。

2、修改spark配置文件(spark-env.sh),在最后面增加一行

export SPARK_CLASSPATH=/usr/local/spark-1.5.1-bin-hadoop2.4/lib/hbase/*

重启spark集群,然后执行操作

import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.hbase.HBaseConfiguration;  
import org.apache.hadoop.hbase.HColumnDescriptor;  
import org.apache.hadoop.hbase.HTableDescriptor;  
import org.apache.hadoop.hbase.client.Get;  
import org.apache.hadoop.hbase.client.HBaseAdmin;  
import org.apache.hadoop.hbase.client.HTable;  
import org.apache.hadoop.hbase.client.Put;  
import org.apache.hadoop.hbase.client.Result;  
import org.apache.hadoop.hbase.client.ResultScanner;  
import org.apache.hadoop.hbase.client.Scan;  
import org.apache.hadoop.hbase.util.Bytes; 
#主要是下面几个包
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.Result
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.mapreduce.TableInputFormat

val conf = HBaseConfiguration.create()

conf.set(TableInputFormat.INPUT_TABLE,"thd")

val rdd = sc.newAPIHadoopRDD(conf,classOf[TableInputFormat],classOf[ImmutableBytesWritable],classOf[Result])

此时如果查看rdd.take(1)运行得到后可能会报错

 ERROR Executor: Exception in task 0.0 in stage 14.0 (TID 14)
java.io.NotSerializableException: org.apache.hadoop.hbase.io.ImmutableBytesWritable

排查了好久,后来参考链接中的解答
http://stackoverflow.com/questions/28159185/streaming-from-hbase-using-spark-not-serializable

rdd里的内容需要转化成string
执行rdd.map(_.toString)
之后正常,从而可以利用spark对hbase进行rdd操作了…

0
0
查看评论

Spark操作hbase

在Spark是一种计算框架,在Spark环境下,不仅支持操作单机文件,HDFS文件,同时也可以用Spark对Hbase操作。  企业中数据源会从HBase取出,这就涉及到了读取hbase数据,本文为了尽可能的让大家能尽快实践和操作Hbase,使用的是Spark Shell 来进行Hbase...
  • u014388509
  • u014388509
  • 2014-07-01 01:28
  • 17776

Scala Spark 连接 HBase ( IDEA) 调试Spark Standalone

0.下载安装IDEAIDEA主页1.安装Scala插件2.新建工程 打开新工程后,在src文件夹下新建一个文件夹,名为qyTest2,在里面新建一个scala class,把class的类型改为object。 3.设置Project Structure打开File-》Project Struct...
  • power0405hf
  • power0405hf
  • 2015-11-29 14:50
  • 5845

在IDEA14中使用代码连接Hbase

环境准备:我用的是Hadoop2.4.0以及Hbase0.98.15,首先保证hadoop和hbase已经安装并且环境配置完成。 新建一个maven工程,如图: 什么都不勾选,直接选next,然后根据自己的喜好写一个名字: next,然后给工程起一个名字,finish 好,工程创...
  • Runner__1
  • Runner__1
  • 2015-12-17 22:11
  • 3247

spark将数据写入hbase以及从hbase读取数据

本文将介绍 1、spark如何利用saveAsHadoopDataset和saveAsNewAPIHadoopDataset将RDD写入hbase 2、spark从hbase中读取数据并转化为RDD 操作方式为在eclipse本地运行spark连接到远程的hbase。 java版本:1.7....
  • u013468917
  • u013468917
  • 2016-10-15 14:11
  • 23456

spark接hbase遇到版本兼容的问题

spark集群spark-submit提交后运行HbaseTest设置zookeeper参数: conf.set("hbase.zookeeper.property.clientPort", "2181") conf.set("hbase.zook...
  • Rosen_Luo
  • Rosen_Luo
  • 2015-07-10 16:34
  • 1628

Mysql数据导入到Hbase报错:org.apache.hadoop.hbase.HTableDescriptor.addFamily

Sqoop-1.4.6 Hbase-1.2.1 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/...
  • a921122
  • a921122
  • 2016-07-05 11:13
  • 2862

Spark学习笔记-HBase操作

Scala版本操作HBase Java版本操作HBase
  • wulinshishen
  • wulinshishen
  • 2014-08-08 12:57
  • 9661

spark 连接hbase hive

1.  Spark连接hbase //后续更多细节补充,现在还不太懂。      如有大神看到请不吝赐教 Spark连接hbase的步骤: 1.      构建sparkconf配置信息,设...
  • weinierzui
  • weinierzui
  • 2017-05-06 15:12
  • 1511

spark将数据写入hbase以及从hbase读取数据

本文将介绍 1、spark如何利用saveAsHadoopDataset和saveAsNewAPIHadoopDataset将RDD写入hbase 2、spark从hbase中读取数据并转化为RDD 操作方式为在eclipse本地运行spark连接到远程的hbase。 java版本:1.7.0 sc...
  • YINZONGCHAO
  • YINZONGCHAO
  • 2017-03-28 15:41
  • 7735

spark 连接hbase

一、环境准备1、复制HBase目录下的lib文件 到 spark目录/lib/hbase。spark 依赖此lib清单如下:guava-12.0.1.jar htrace-core-3.1.0-incubating.jar protobuf-java-2.5.0.jar 这...
  • thdline
  • thdline
  • 2016-06-01 15:15
  • 1104
    个人资料
    • 访问:15895次
    • 积分:281
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条