在spark中使用oozie 4.1.0.3版作为java操作运行配置单元查询时,getting table not found异常。
从hdfs路径复制了hive-site.xml和hive-default.xml
使用的workflow.xml:
<start to="scala_java"/>
<action name="scala_java">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>${nameNode}/user/${wf:user()}/${appRoot}/env/devbox/hive- site.xml</job-xml>
<configuration>
<property>
<name>oozie.hive.defaults</name>
<value>${nameNode}/user/${wf:user()}/${appRoot}/env/devbox/hive-default.xml</value>
</property>
<property>
<name>pool.name</name>
<value>${etlPoolName}</value>
</property>
<property>
<name>mapreduce.job.queuename</name>
<value>${QUEUE_NAME}</value>
</property>
</configuration>
<main-class>org.apache.spark.deploy.SparkSubmit</main-class>
<arg>--master</arg>
<arg>yarn-cluster</arg>
<arg>--class</arg>
<arg>HiveFromSparkExample</arg>
<arg>--deploy-mode</arg>
<arg>cluster</arg>
<arg>--queue</arg>
<arg>testq</arg>
<arg>--num-executors</arg>
<arg>64</arg>
<arg>--executor-cores</arg>
<arg>5</arg>
<arg>--jars</arg>
<arg>datanucleus-api-jdo-3.2.6.jar,datanucleus-core-3.2.10.jar,datanucleus- rdbms-3.2.9.jar</arg>
<arg>TEST-0.0.2-SNAPSHOT.jar</arg>
<file>TEST-0.0.2-SNAPSHOT.jar</file>
</java>
info.applicationmaster:最终应用程序状态:失败,exitcode:15,(原因:用户类引发异常:找不到表test\u hive\u spark\u t1)
线程“driver”org.apache.hadoop.hive.ql.metadata.invalidtableexception中出现异常:找不到表test\u hive\u spark\u t1
at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:980)
at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:950)
at org.apache.spark.sql.hive.HiveMetastoreCatalog.lookupRelation(HiveMetastoreCatalog.scala:79)
at org.apache.spark.sql.hive.HiveContext$$anon$1.org$apache$spark$sql$catalyst$analysis$OverrideCatalog$$super$lookupRelation(HiveContext.scala:255)
at org.apache.spark.sql.catalyst.analysis.OverrideCatalog$$anonfun$lookupRelation$3.apply(Catalog.scala:137)
at org.apache.spark.sql.catalyst.analysis.OverrideCatalog$$anonfun$lookupRelation$3.apply(Catalog.scala:137)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.sql.catalyst.analysis.OverrideCatalog$class.lookupRelation(Catalog.scala:137)
at org.apache.spark.sql.hive.HiveContext$$anon$1.lookupRelation(HiveContext.scala:255)
2条答案
按热度按时间2skhul331#
不需要hive-default.xml。
创建一个自定义的hive-site.xml,它单独具有hive.metastore.uris属性。
将--files hive-site.xml中的自定义hive-site.xml作为spark参数传递。
删除作业xml属性和oozie配置单元默认值。
nlejzf6q2#
答。x-default配置文件仅供用户参考;它们是在安装时根据jar中硬编码的默认值创建的。
它是包含有用信息的x-site配置文件,例如如何连接到metastore(默认值是“只启动一个嵌入的derby db,里面没有数据”。。。可能会解释“找不到表”消息!
b。hadoop组件在类路径中搜索x-site配置文件;如果他们在那里找不到它们,它们就会默默地退回到默认状态。
所以你必须告诉oozie通过
<file>
说明(除了一个显式的配置单元操作,该操作对其特定的配置单元站点使用另一个显式约定(但这里不是这种情况)