0

我们将 Google Cloud Bigtable 用于我们的大数据。当我运行 MapReduce 作业时,我组装了一个 jar 并运行它,现在我收到了这个错误:

应用程序 application_1451577928704_0050 失败 2 次,因为 AM Container for appattempt_1451577928704_0050_000002 exited with exitCode: 1 有关更详细的输出,请查看应用程序跟踪页面:http:// censored:8088/cluster/app/application_1451577928704_0050然后,单击指向每次尝试日志的链接。诊断:容器启动异常。容器 ID:container_e02_1451577928704_0050_02_000001 退出代码:1 堆栈跟踪:ExitCodeException exitCode=1:在 org.apache.hadoop.util.Shell.runCommand(Shell.java:545) 在 org.apache.hadoop.util.Shell.run(Shell. java:456) 在 org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722) 在 org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211) 在 org .apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) 在 org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java: 82) 在 java.util.concurrent.FutureTask。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread 运行(FutureTask.java:266) .run(Thread.java:745) 容器以非零退出代码 1 退出此尝试失败。申请失败。

当我登录查看工作节点的日志时,我看到了这个错误:

2016-02-15 02:59:54,106 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:为应用程序 appattempt_1451577928704_0050_000001 创建 MRAppMaster 2016-02-15 02:59:54,294 WARN [main] org.apache .hadoop.util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类 2016-02-15 02:59:54,319 INFO [main] org.apache.hadoop.mapreduce.v2 .app.MRAppMaster:使用令牌执行:2016-02-15 02:59:54,319 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:种类:YARN_AM_RM_TOKEN,服务:,标识:(appAttemptId { application_id { id: 50 cluster_timestamp: 1451577928704 } attemptId: 1 } keyId: -******) 2016-02-15 02:59:54,424 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:使用映射的 newApiCommitter。2016-02-15 02:59:54,755 警告 [主要] 组织。apache.hadoop.hdfs.shortcircuit.DomainSocketFactory:无法使用短路本地读取功能,因为无法加载libhadoop。2016-02-15 02:59:54,85​​5 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:OutputCommitter 在配置中设置为 null 2016-02-15 02:59:54,911 INFO [main] org.apache .hadoop.service.AbstractService:服务org.apache.hadoop.mapreduce.v2.app.MRAppMaster在状态INITED失败;原因:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.ClassCastException: org.apache.xerces.dom.DeferredElementNSImpl 不能转换为 org.w3c.dom.Text org.apache.hadoop.yarn.exceptions。 YarnRuntimeException: java.lang.ClassCastException: org.apache.xerces.dom.DeferredElementNSImpl 无法在 org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1.call(MRAppMaster.


我尝试了一个旧的罐子,它运行得很好,我不确定为什么新罐子不能工作 - 没有改变任何东西。

请指教?

谢谢!

更新 1:这里有更多详细信息:我使用 dataproc 设置集群。我们使用的是最新版本,这里是库依赖项:

val BigtableHbase = "com.google.cloud.bigtable" % "bigtable-hbase-1.1" % "0.2.2" val BigtableHbaseMapreduce = "com.google.cloud.bigtable" % "bigtable-hbase-mapreduce" % "0.2. 2" val CommonsCli = "commons-cli" % "commons-cli" % "1.2" val HadoopCommon = "org.apache.hadoop" % "hadoop-common" % "2.7.1" val HadoopMapreduceClientApp = "org.apache. hadoop" % "hadoop-mapreduce-client-app" % "2.7.1" val HbaseCommon = "org.apache.hbase" % "hbase-common" % "1.1.2" val HbaseProtocol = "org.apache.hbase" % "hbase-protocol" % "1.1.2" val HbaseClient = "org.apache.hbase" % "hbase-client" % "1.1.2"val HbaseServer = "org.apache.hbase" % "hbase-server" % "1.1.2" val HbaseAnnotations = "org.apache.hbase" % "hbase-annotations" % "1.1.2"

libraryDependencies += BigtableHbase libraryDependencies += BigtableHbaseMapreduce libraryDependencies += CommonsCli libraryDependencies += HadoopCommon libraryDependencies += HadoopMapreduceClientApp libraryDependencies += HbaseCommon libraryDependencies += HbaseProtocol libraryDependencies += HbaseClient libraryDependencies += HbaseServer libraryDependencies += HbaseAnnotations

爪哇版:

openjdk 版本“1.8.0_66-internal” OpenJDK 运行时环境(内部版本 1.8.0_66-internal-b17) OpenJDK 64 位服务器 VM(内部版本 25.66-b17,混合模式)

alpn 版本:alpn-boot-8.1.3.v20150130

hbase 版本:

2016-02-15 20:45:42,050 INFO [main] util.VersionInfo:HBase 1.1.2 2016-02-15 20:45:42,051 INFO [main] util.VersionInfo:源代码存储库文件:///mnt/ ram/bigtop/bigtop/output/hbase/hbase-1.1.2 revision=Unknown 2016-02-15 20:45:42,051 INFO [main] util.VersionInfo:由 bigtop 于 2015 年 11 月 10 日星期二 19:09:17 UTC 编译2016-02-15 20:45:42,051 INFO [main] util.VersionInfo:来自带有校验和 42e8a1890c700d37485c69a44a3 的源

Hadoop版本:

Hadoop 2.7.1 Subversion https://bigdataoss-internal.googlesource.com/third_party/apache/bigtop -r 2a194d4d838b79460c3ceb892f3c94 44218ba970 Compiled by bigtop on 2015-11-10T18:38Z Compiled with protoc 2.5.0 From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a This command使用 /usr/lib/hadoop/hadoop-common-2.7.1.jar 运行

4

2 回答 2

2

我发现了我的问题!hbase-site.xml 在 hbase.client.connection.impl 属性中略有不同。

<property>
    <name>hbase.client.connection.impl</name>
    <value>com.google.cloud.bigtable.hbase1_1.BigtableConnection</value>
</property>

在提取和比较两个罐子后,我得到了这个。

于 2016-02-16T07:56:07.550 回答
0

bigtable 客户端 jar 的较新版本包括 gRPC jar 的较新版本。较新版本的 gRPC jar 依赖于较新版本的 alpn-boot 或 OpenSSL。除了新版本的 bigtable jar 之外,您可能还需要新版本的 alpn-boot jar。不幸的是,Jetty 团队并没有为 bdutil 所依赖的 Java7 制作新的 alpn-boot jars。

我们正在积极努力从 bdutil 迁移到 dataproc,这是 Google Cloud Hadoop 管理的较新版本。Dataproc 使用 Java 8,并且没有与 bdutil 相同的问题。我们仍然需要解决一些问题。

更多信息可以在以下位置找到:

https://cloud.google.com/dataproc/examples/cloud-bigtable-examplehttps://github.com/grpc/grpc-java/blob/master/SECURITY.md

于 2016-02-15T17:16:23.920 回答