- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将我的 Play Framework (2.4.2) Web 应用程序连接到 cloudera hbase 集群。我在我的 bulid.sbt 文件中包含了 hbase 依赖项,并使用 hbase 示例代码将一个单元格插入到一个表中。但是,我得到了这个异常,这似乎是 play framework 和 Hbase 之间的依赖冲突。我还附上了示例代码和 build.sbt 文件。如果您能帮助解决此错误,我将不胜感激。
[ERROR] [07/21/2015 12:03:05.919] [application-akka.actor.default-dispatcher-5] [ActorSystem(application)] Uncaught fatal error from thread [application-akka.actor.default-dispatcher-5] shutting down ActorSystem [application]
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator
at org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:434)
at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:60)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1123)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1110)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1262)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1126)
at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:369)
at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:320)
at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:206)
at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:183)
at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1496)
at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1107)
at controllers.Application.index(Application.java:44)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:95)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(Routes.scala:95)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:136)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:127)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:70)
at play.http.DefaultHttpRequestHandler$1.call(DefaultHttpRequestHandler.java:20)
at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:94)
at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:94)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40)
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70)
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32)
at scala.concurrent.impl.Future$.apply(Future.scala:31)
at scala.concurrent.Future$.apply(Future.scala:492)
at play.core.j.JavaAction.apply(JavaAction.scala:94)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:104)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:103)
at scala.Option.map(Option.scala:146)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:103)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:96)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:536)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:536)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
这是我的 bulid.sbt 文件:
name := """HbaseTest"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs
)
//hbase
libraryDependencies +="org.apache.hbase" % "hbase-client" % "1.0.0-cdh5.4.4"
libraryDependencies +="org.apache.hbase" % "hbase-annotations" % "1.0.0-cdh5.4.4"
libraryDependencies +="org.apache.hbase" % "hbase-common" % "1.0.0-cdh5.4.4"
libraryDependencies +="org.apache.hbase" % "hbase-protocol" % "1.0.0-cdh5.4.4"
//hadoop
libraryDependencies +="org.apache.hadoop" % "hadoop-common"%"2.6.0-cdh5.4.4"
libraryDependencies +="org.apache.hadoop" % "hadoop-annotations"%"2.6.0-cdh5.4.4"
libraryDependencies +="org.apache.hadoop" % "hadoop-auth"%"2.6.0-cdh5.4.4"
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
这是我的代码:
package controllers;
import play.*;
import play.mvc.*;
import views.html.*;
import java.io.IOException;
import java.util.HashMap;
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.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
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.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.util.Bytes;
public class Application extends Controller {
public Result index() {
String ZooKeeperIP = "10.12.7.43";
String ZooKeeperPort = "2181";
String HBaseMaster = "10.12.7.43:60000";
Configuration hBaseConfig;
Connection connection = null;
//TableName TABLE_NAME = "sample";
hBaseConfig = HBaseConfiguration.create();
hBaseConfig.set("hbase.zookeeper.quorum",ZooKeeperIP);
hBaseConfig.set("hbase.zookeeper.property.clientPort", ZooKeeperPort);
hBaseConfig.set("hbase.master", HBaseMaster);
//connection = ConnectionFactory.createConnection(hBaseConfig);
try {
connection = ConnectionFactory.createConnection(hBaseConfig);
HTable table = new HTable(hBaseConfig, "sample");
Put p = new Put(Bytes.toBytes("1"));
p.add(Bytes.toBytes("a"), Bytes.toBytes("b"), Bytes.toBytes("4"));
table.put(p);
}catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
return ok(index.render("Your new application is ready."));
}
}
最佳答案
如我所见,问题出在依赖项上。
特别是 guava
库(这是 hadoop
的常见问题)。
如我所见,Play
使用较新版本的 guava
。它没有 hbase
需要的 StopWatch
类。
您可以通过多种方式解决这个问题(不幸的是,我知道的所有方式都是“hacky”)。
简单的方法是使用类似 zipkin
的 hack .我们自己添加 StopWatch
的地方。
另一种方法是以某种方式分离 HBase 操作。 (这需要大量的工作和设计更改)
如果 sbt
支持 'shading' 会容易得多,据我所知目前还不支持。
你仍然可以使用 sbt
来解决它,比如如何 spark
处理类似的问题。
关于java - Cloudera Hbase 1.0.0 集成依赖冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547463/
是否可以在 impala 中同时执行多个查询?如果是,impala 是如何处理的? 最佳答案 我当然会自己做一些测试,但我无法执行多个查询:我正在使用 Impala 连接,并从 .sql 文件中读取查
我一直在寻找使用 Hortonworks 2.1 安装可用的 Storm,但为了避免在 Cloudera 安装(其中包含 Spark)之外安装 Hortonworks,我试图找到一种在 Clouder
正常情况下,我可以show partitions 在 hive 中。但是当它是 Parquet 表时,hive 无法理解它。我可以转到 hdfs 并检查目录结构,但这并不理想。有没有更好的方法来做到这
我想知道用于停止和启动 cloudera CDH5.2 集群的命令行。 原因,我正在编写一个自动化脚本来运行一些基准测试,并希望在开始每个基准测试之前停止和启动集群。 我已经看到停止 CDH 集群并不
由于嵌入式 PostgreSQL 数据库的问题,我无法访问 Cloudera Manager UI。 Web UI 向我显示: HTTP ERROR 500 Problem accessing /cm
我最近下载了 Cloudera CDH 5.3,现在我需要访问 HUE Web UI 门户。当我提供属于 Cloudera admin/admin 的默认用户名和密码时,它不起作用。我现在无法登录 H
我有两台装有 CentOS 6.5 的 PC client86-101.aihs.net 80.94.86.101 client86-103.aihs.net 80.94.86.103 clouder
当我显示表格时,我在 Impala 中看到一个表格“测试”; 我想复制“test”表,使其完全相同,但命名为“test_copy”。我可以执行 impala 查询来执行此操作吗?如果没有,我该怎么做?
如何在不使用 Cloudera 管理器的情况下在 100 节点集群上安装 Cloudera CDH?在集群中的每个节点上手动安装和配置 CDH 是一项艰巨的任务。使用哪些工具和技术来自动化生产中的任务
我启动了cloudera-scm-agent,但它失败了。我看到来自 /opt/cm-5.7.0/log/cloudera-scm-agent 的日志。它说 /opt/cm-5.7.0/lib64/c
我正在使用 ubuntu 12.04 64 位,我成功地安装并运行了单节点示例 hadoop 程序。 我在我的 ubuntu 上安装 cloudera 管理器时出现以下错误 Refreshing re
我已经关注了这里的博客(如下所述)并下载了包裹并按照要求放置。请告诉我是否有人已安装以及步骤。 (https://www.cloudera.com/documentation/spark2/lates
我正在尝试使用 Cloudera Manager 3.7.x 在具有 RHEL 5.5 的集群上安装 CDH3U5。但是由于以下错误,安装失败 - Error Downloading Packages
我正在尝试在 Ubuntu 12.04 LTS(64 位)中使用 Cloudera Manager 安装 CDH5。我正在按照 Cloudera link 中提到的步骤进行操作.我无法为安装 CDH5
我正在使用 Cloudera Quickstart VM 5.3.0(在 Windows 7 上的 Virtual Box 4.3 中运行)并且我想学习 Spark(在 YARN 上)。 我启动了 C
Cloudera 声称拥有快速启动方法。我注意到这对我不起作用。 当我调用 Spark-shell 时,我得到: ... WARN metastore.ObjectStore: Version inf
我有cloudera 5.7,我也有Cloudera Manager。 在目录/etc/hadoop下,我看到了三个子目录。 /etc/hadoop/conf /etc/hadoop/conf.clo
我是 Docker 和 Hadoop 系统的新手。我已经在 Ubuntu 16.04 中安装了 Docker,并在一个新的 Docker 容器中运行来自 Cloudera 的 Hadoop 镜像。但是
我必须区分 Cloudera 包裹过程和编写 cooking 书或厨师的食谱以在集群中安装包。 因此,我正在寻找 Parcel 与 Chef 之间的优势和劣势,反之亦然。 最佳答案 如果您使用的是 C
我对 impala 中的数据局部性有疑问,假设我有 10 个数据节点的集群(每个数据节点上都有 impalad),如果我在 impala 中执行查询 SELECT * FROM big_table w
我是一名优秀的程序员,十分优秀!