spark 操作 hbase

之前说到这个,spark 操作 mysql

=========================

买一送一,hbase 的:

Spark读取Hbase中的数据

======================

关于操作 hbase,还有这两个文章,Spark 下操作 HBase(1.0.0 新 API)https://gist.github.com/wuchon…

都是不错的,另外说一下,”org.apache.hbase” % “hbase-client” % “1.1.3” 这个包貌似是有问题的,这个版本有问题,反正之前在 pom.xml 下也是报错,需要

		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-client</artifactId>
			<version>1.1.3</version>
			<exclusions>
				<exclusion>
					<artifactId>jdk.tools</artifactId>
					<groupId>jdk.tools</groupId>
				</exclusion>
			</exclusions>
		</dependency>

才能行,但是傻逼的 sbt,配了 1.1.3 加上 “org.apache.hbase” % “hbase-client” % “1.1.3” exclude(“jdk.tools”, “jdk.tools”) 也还是出不来,本来是 hbase-client 的问题,但是关键是如果我之前没有在 pom.xml 中操作过的话,单靠 sbt 是完全不知道有这种坑的,以后估计还要被坑,而且毫无办法

最终使用了教程中的 1.0.0 版本能跑通,虽然我的 hbase server 是 1.1.3 的,但愿 api 没有大变吧

libraryDependencies += “org.apache.hbase” % “hbase-client” % “1.0.0”

libraryDependencies += “org.apache.hbase” % “hbase-common” % “1.0.0”

libraryDependencies += “org.apache.hbase” % “hbase-server” % “1.0.0”

额外吐槽一下那个 libraryDependencies 语法,可以 ++= Seq( ,问题是里面还要逗号分隔,问题是我添来删去的,哪能帮你把逗号伺候的那么到位啊,真是自娱自乐,还有那个 %% % 语法,简洁是简洁了,看得不懂得人是一脸懵逼啊,这都啥字段和啥字段啊,pom 那样 xml 清清楚楚的不好吗,又不用人手敲,机器自动生成,是在不行,复制粘贴也成啊

再次向 sbt 致以诚挚的问候

=====================

2016-4-21 09:56:48 如果遇到 noclassdef 问题,看这里,java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

=====================

2016-4-21 10:06:02 原文中用的是 libraryDependencies += “org.apache.spark” %% “spark-core” % “1.3.0”,我因为自己有了一个 “org.apache.spark” %% “spark-core” % “1.5.0” % “provided”,就想着把这个 1.3.0 去掉,结果就报错,class “javax.servlet.FilterRegistration”‘s signer information does not match signer information of other classes in the same package,这里,https://issues.apache.org/jira…,也有讨论,还是乖乖把依赖加上吧

=======================

2016-4-21 14:17:34 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration 这里说可以加上 classpath,确实能解部分问题,但是死活报错 java.lang.ClassNotFoundException: org.apache.htrace.Trace,我把 jar 包放好了,指定了 classpath,也还是不行,后来才知道,踏马的原来有两个,libraryDependencies += “org.htrace” % “htrace-core” % “3.0.4” 这个名字不对,应该是 libraryDependencies += “org.apache.htrace” % “htrace-core” % “3.1.0-incubating”

=========================

2016-4-21 14:38:31 报错 Calculating region sizes for table 卡半天,仔细一看才发现 zk 连接到 2181 上去了,那是另外一个 zk,貌似没有读取 hbase-site.xml 里面的东西,赶紧代码里加上 conf.set(“hbase.zookeeper.property.clientPort”, “2222”)

Leave a Reply

Your email address will not be published. Required fields are marked *