![](/img/trans.png)
[英]Scala Spark / Shark: How to access existing Hive tables in Hortonworks?
[英]Accessing Shark tables (Hive) from Scala (shark-shell)
我有shark-0.8.0
,它運行在hive-0.9.0
。 我可以通過調用shark
在Hive上編程。 我創建了幾個表並加載了數據。
現在,我正在嘗試使用Scala
從這些表中訪問數據。 我使用shark-shell
調用了Scala
shark-shell
。 但是當我嘗試選擇時,我得到一個表不存在的錯誤。
scala> val artists = sc.sql2rdd("select artist from default.lastfm")
Hive history file=/tmp/hduser2/hive_job_log_hduser2_201405091617_1513149542.txt
151.738: [GC 317312K->83626K(1005568K), 0.0975990 secs]
151.836: [Full GC 83626K->76005K(1005568K), 0.4523880 secs]
152.313: [GC 80536K->76140K(1005568K), 0.0030990 secs]
152.316: [Full GC 76140K->62214K(1005568K), 0.1716240 secs]
FAILED: Error in semantic analysis: Line 1:19 Table not found 'lastfm'
shark.api.QueryExecutionException: FAILED: Error in semantic analysis: Line 1:19 Table not found 'lastfm'
at shark.SharkDriver.tableRdd(SharkDriver.scala:149)
at shark.SharkContext.sql2rdd(SharkContext.scala:100)
at <init>(<console>:17)
at <init>(<console>:22)
at <init>(<console>:24)
at <init>(<console>:26)
at <init>(<console>:28)
at <init>(<console>:30)
at <init>(<console>:32)
at .<init>(<console>:36)
at .<clinit>(<console>)
at .<init>(<console>:11)
at .<clinit>(<console>)
at $export(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:629)
at org.apache.spark.repl.SparkIMain$Request$$anonfun$10.apply(SparkIMain.scala:890)
at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
at java.lang.Thread.run(Thread.java:744)
從文檔( https://github.com/amplab/shark/wiki/Shark-User-Guide )中,這些步驟足以讓Shark
啟動並運行並使用Scala
選擇數據。 或者我錯過了什么? 是否有一些配置文件需要修改才能從shark-shell
訪問Shark?
您是否更新了shark-hive目錄配置以正確反映hive metastore jdbc連接信息?
您需要將hive-default.xml復制到hive-site.xml。 然后確保設置了Metastore屬性。
以下是hive-site.xml中的基本信息
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://myhost/metastore</value>
<description>the URL of the MySQL database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mypassword</value>
</property>
您可以在此處獲取更多詳細信息: 配置hive Metastore
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.