在本機搭建的hadoop平臺,spark sql和hive存在無法互相訪問的問題,流程如下:
1. spark sql創建表的程序如下:
./bin/spark-shell --master yarn
.......
scala> sqlContext.sql("CREATE TABLE IF NOT EXISTS sparksql (key INT, value STRING)")
2. hive采用通常的sql陳述句創建表
hive> CREATE TABLE IF NOT EXISTS hivetest (key INT, value STRING)
3. 在hadoop的管理頁面或者使用“/usr/local/hadoop-2.5.2/bin/hadoop fs -ls /user/hive/warehouse”,均可以看到兩種方法創建的表;
但是在運行hive只能檢索到hive使用sql陳述句創建的表:
hive> show tables;
hivetest
scala程式也只能看到scala程式創建的表:
scala> hql("show tables").collect()
.......
res2: Array[org.apache.spark.sql.Row] = Array([sparksql])
spark采用的是1.2.0,官方檔案說支持hive0.13.1,hive使用的是0.13.1
uj5u.com熱心網友回復:
大家沒有碰到過類似問題嗎?uj5u.com熱心網友回復:
補充一句,sqlcontext使用hivecontext創建的:val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
uj5u.com熱心網友回復:
自己找到原因了,hive會在運行的子目錄下尋找metastore_db的目錄,該目錄存盤了所有和hive表相關的資訊,hive在目錄下存盤的是哪個metastore_db,hive或者spark看到的就是哪個hive表,也可以通過設定更改。uj5u.com熱心網友回復:
我也遇到了同樣的問題 ,請問 你具體是怎么解決的呢uj5u.com熱心網友回復:
/spark-shell 下創建的表,并沒有真正的寫道元資料吧uj5u.com熱心網友回復:
樓主能否詳細說下怎么解決了uj5u.com熱心網友回復:
同上,我也遇到這樣的問題了,那么具體怎么解決的呀!樓主!!! 求仔細說明下解決方式。uj5u.com熱心網友回復:
求詳細解決辦法??o·(? ??????????? )?o·?樓上的幾位解決了么轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/62933.html
標籤:Spark
下一篇:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
