本地模式下的HiveContext和SQLContext

时间:2017-03-16 13:17:43

标签: apache-spark apache-spark-sql hivecontext

我正在我的本地计算机上开发Spark作业,然后在集群上部署以进行全面运行。我创建了一个其他人在代码中使用的公共库。在这段代码中,我必须使用HiveContext来做Spark SQL,许多人建议提供更好的sql解析器。我没有管理员访问我的机器,所以我无法在本地模式下创建HiveContext。使用jar共享公共代码,因此我们无法在HiveContext和SQLContext之间手动切换以进行测试。无论如何,我可以创建一个公共上下文,它将在本地模式下作为SQLContext运行,并在集群模式下基于某些参数运行HiveContext。

这是我在尝试以本地模式创建HiveContext时遇到的错误。

  

17/03/16 13:11:53 INFO ObjectStore:设置MetaStore对象引脚   课程   hive.metastore.cache.pinobjtypes ="表,StorageDescriptor,SerDeInfo,分区,数据库,类型,FieldSchema,订单"   17/03/16 13:11:54 INFO数据存储:课程   " org.apache.hadoop.hive.metastore.model.MFieldSchema"被标记为   "嵌入仅"所以没有自己的数据存储表。 17/03/16   13:11:54 INFO数据存储:课程   " org.apache.hadoop.hive.metastore.model.MOrder"被标记为   "嵌入仅"所以没有自己的数据存储表。 17/03/16   13:11:55 INFO数据存储:课程   " org.apache.hadoop.hive.metastore.model.MFieldSchema"被标记为   "嵌入仅"所以没有自己的数据存储表。 17/03/16   13:11:55 INFO数据存储:课程   " org.apache.hadoop.hive.metastore.model.MOrder"被标记为   "嵌入仅"所以没有自己的数据存储表。 17/03/16   13:11:55 INFO MetaStoreDirectSql:使用直接SQL,底层数据库是   DERBY 17/03/16 13:11:55 INFO ObjectStore:初始化的ObjectStore   17/03/16 13:11:55 WARN ObjectStore:找不到版本信息   metastore。 hive.metastore.schema.verification未启用   记录模式版本1.2.0 17/03/16 13:11:56 WARN ObjectStore:   无法获取数据库缺省值,返回NoSuchObjectException   17/03/16 13:11:56 INFO HiveMetaStore:在Metastore中添加了admin角色   17/03/16 13:11:56 INFO HiveMetaStore:在Metastore中增加了公共角色   17/03/16 13:11:56 INFO HiveMetaStore:管理员角色中没有添加任何用户,   因为配置是空的17/03/16 13:11:56 INFO HiveMetaStore:0:   get_all_databases 17/03/16 13:11:56 INFO审计:   ugi = ip = unknown-ip-addr cmd = get_all_databases 17/03/16 13:11:56 INFO   HiveMetaStore:0:get_functions:db = default pat = * 17/03/16 13:11:56   INFO审计:ugi = ip = unknown-ip-addr cmd = get_functions:db = default   pat = * 17/03/16 13:11:56 INFO数据存储:课程   " org.apache.hadoop.hive.metastore.model.MResourceUri"被标记为   "嵌入仅"所以没有自己的数据存储表。例外   线程"主要" java.lang.RuntimeException:java.lang.RuntimeException:   HDFS上的root scratch dir:/ tmp / hive应该是可写的。当前   权限是:rw-rw-rw-at   org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)     在   。org.apache.spark.sql.hive.client.ClientWrapper(ClientWrapper.scala:204)     在   org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:238)     在   org.apache.spark.sql.hive.HiveContext.executionHive $ lzycompute(HiveContext.scala:218)     在   org.apache.spark.sql.hive.HiveContext.executionHive(HiveContext.scala:208)     在   org.apache.spark.sql.hive.HiveContext.functionRegistry $ lzycompute(HiveContext.scala:462)     在   org.apache.spark.sql.hive.HiveContext.functionRegistry(HiveContext.scala:461)     在   。org.apache.spark.sql.UDFRegistration(UDFRegistration.scala:40)     在org.apache.spark.sql.SQLContext。(SQLContext.scala:330)at at   org.apache.spark.sql.hive.HiveContext。(HiveContext.scala:90)at at   。org.apache.spark.sql.hive.HiveContext(HiveContext.scala:101)     在SparkTest $ .main(SparkTest.scala:11)at   SparkTest.main(SparkTest.scala)at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)   引起:java.lang.RuntimeException:root scratch目录:/ tmp / hive   在HDFS上应该是可写的。目前的权限是:rw-rw-rw-at   org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:612)     在   org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554)     在   org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:508)     ......还有17个

0 个答案:

没有答案