午夜无码人妻aⅴ大片色欲张津瑜,国产69久久久欧美黑人A片,色妺妺视频网,久久久久国产综合AV天堂

cloudera怎么在spark-shell命令行執(zhí)行sparkhql

這篇文章主要為大家展示了“cloudera怎么在spark-shell命令行執(zhí)行spark hql”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“cloudera怎么在spark-shell命令行執(zhí)行spark hql”這篇文章吧。

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)船山,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

編譯支持hive的spark assembly

原生的spark assembly jar是不依賴hive的,如果要使用spark hql必須將hive相關(guān)的依賴包打到spark assembly jar中來。打包方法:

假設(shè)已經(jīng)裝好了maven,

1添加環(huán)境變量,如果jvm的這些配置太小的話,可能導(dǎo)致在編譯過程中出現(xiàn)OOM,因此放大一些:

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

2 將spark源碼下的scalastyle-config.xml,復(fù)制到assembly下

3 cd到spark源碼目錄,執(zhí)行:

mvn -Pyarn -Dhadoop.version=2.5.0-cdh6.3.0  -Dscala-2.10.4 -Phive -Phive-thriftserver   -DskipTests clean package

(用cdh版本的只要寫 mvn -Pyarn -Phive -DskipTests clean package就可以了)

注意hadoop.version和scala的版本設(shè)置成對應(yīng)的版本

經(jīng) 過漫長的編譯過程(我編譯了2個半小時),最終成功了,在assembly/target/scala-2.10目錄下面有spark- assembly-1.2.0-cdh6.3.0-hadoop2.5.0-cdh6.3.0.jar文件,用rar打開看看hive jdbc package有沒有包含在里面,有的話說明編譯成功了。

cloudera如何在spark-shell命令行執(zhí)行spark hql

前面介紹如何編譯包含hive的spark-assembly.jar了
cloudera manager裝好的spark,直接執(zhí)行spark-shell進入命令行后,寫入如下語句:

  1. val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)  


你會發(fā)現(xiàn)沒法執(zhí)行通過,因為cm裝的原生的spark是不支持spark hql的,我們需要手動進行一些調(diào)整:
第一步,將編譯好的包含hive的JAR包上傳到hdfs上配置的默認的spark的sharelib目錄:/user/spark/share/lib

cloudera怎么在spark-shell命令行執(zhí)行spark hql
第二步:在你要運行spark-shell腳本的節(jié)點上的/opt/cloudera/parcels/CDH- 5.3.0-1.cdh6.3.0.p0.30/lib/spark/lib/目錄下面,下載這個jar到這個目錄:hadoop fs -get hdfs://n1:8020/user/spark/share/lib/spark-assembly-with-hive-maven.jar(具 體路徑替換成你自己的)。然后這個目錄下面原來會有個軟鏈接spark-assembly.jar指向的是spark-assembly-1.2.0- cdh6.3.0-hadoop2.5.0-cdh6.3.0.jar,我們把這個軟鏈接刪除掉重新創(chuàng)建一個同名的軟鏈接:ln -s spark-assembly-with-hive-maven.jar spark-assembly.jar,指向我們剛下載下來的那個JAR包,這個JAR包會在啟動spark-shell腳本時裝載到driver program的classpath中去的,sparkContext也是在driver中創(chuàng)建出來的,所以需要將我們編譯的JAR包替換掉原來的 spark-assembly.jar包,這樣在啟動spark-shell的時候,包含hive的spark-assembly就被裝載到 classpath中去了。

第三步:在/opt/cloudera/parcels/CDH/lib/spark/conf/目錄下面創(chuàng)建一個 hive-site.xml。/opt/cloudera/parcels/CDH/lib/spark/conf目錄是默認的spark的配置目錄,當 然你可以修改默認配置目錄的位置。hive-site.xml內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!--Autogenerated by Cloudera Manager-->
<configuration>
  <property>
    <name>hive.metastore.local</name>
    <value>false</value>
  </property>
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://n1:9083</value>
  </property>
  <property>
    <name>hive.metastore.client.socket.timeout</name>
    <value>300</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>

這個應(yīng)該大家都懂的,總要讓spark找到hive的元數(shù)據(jù)在哪吧,于是就有了上面一些配置。

第四步:修改/opt/cloudera/parcels/CDH/lib/spark/conf/spark- defaults.conf,添加一個屬性:spark.yarn.jar=hdfs://n1:8020/user/spark/share/lib /spark-assembly-with-hive-maven.jar。這個是讓每個executor下載到本地然后裝載到自己的classpath 下面去的,主要是用在yarn-cluster模式。local模式由于driver和executor是同一個進程所以沒關(guān)系。

以上完事之后,運行spark-shell,再輸入:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

應(yīng)該就沒問題了。我們再執(zhí)行一個語句驗證一下是不是連接的我們指定的hive元數(shù)據(jù)庫:
hiveContext.sql("show tables").take(10)   //取前十個表看看

最后要重點說明一下這里的第二步第三步和第四步,如果是yarn-cluster模式的話,應(yīng)該替換掉集群所有節(jié)點的spark- assembly.jar集群所有節(jié)點的spark conf目錄都需要添加hive-site.xml,每個節(jié)點spark-defaults.conf都需要添加 spark.yarn.jar=hdfs://n1:8020/user/spark/share/lib/spark-assembly-with- hive-maven.jar??梢詫憘€shell腳本來替換,不然手動一個一個節(jié)點去替換也是蠻累的。

以上是“cloudera怎么在spark-shell命令行執(zhí)行spark hql”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當前題目:cloudera怎么在spark-shell命令行執(zhí)行sparkhql
分享URL:http://www.ekvhdxd.cn/article20/jcgdco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、營銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營