當前位置:首頁 » 編程軟體 » hive腳本執行

hive腳本執行

發布時間: 2023-09-17 03:29:50

A. 如何在shell腳本中判斷hive已經執行完畢

舉個例子,執行一條基本語句建立一個文件 #!/bin/bashtouch test.txtif [ $? -eq 0 ]then echo "執行成功"else echo "執行失敗"fi$?可以判斷上一條命令是否成功,成功為0,不成功為非0

B. hue/oozie 調度shell執行hive腳本

前面已經有篇文章介紹如何編譯包含hive的spark-assembly.jar了,不清楚的可以翻看一下前面的文章。clouderamanager裝好的spark,直接執行spark-shell進入命令行後,寫入如下語句:valhiveContext=neworg.apache.spark.sql.hive.HiveContext(sc)你會發現沒法執行通過,因為cm裝的原生的spark是不支持sparkhql的,我們需要手動進行一些調整:第一步,將編譯好的包含hive的JAR包上傳到hdfs上配置的默認的spark的sharelib目錄:/user/spark/share/lib第二步:在你要運行spark-shell腳本的節點上的/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/spark/lib/目錄下面,下載這個jar到這個目錄:hadoopfs-gethdfs://n1:8020/user/spark/share/lib/spark-assembly-with-hive-maven.jar(具體路徑替換成你自己的)。然後這個目錄下面原來會有個軟鏈接spark-assembly.jar指向的是spark-assembly-1.2.0-cdh5.3.0-hadoop2.5.0-cdh5.3.0.jar,我們把這個軟鏈接刪除掉重新創建一個同名的軟鏈接:ln-sspark-assembly-with-hive-maven.jarspark-assembly.jar,指向我們剛下載下來的那個JAR包,這個JAR包會在啟動spark-shell腳本時裝載到driverprogram的classpath中去的,sparkContext也是在driver中創建出來的,所以需要將我們編譯的JAR包替換掉原來的spark-assembly.jar包,這樣在啟動spark-shell的時候,包含hive的spark-assembly就被裝載到classpath中去了。第三步:在/opt/cloudera/parcels/CDH/lib/spark/conf/目錄下面創建一個hive-site.xml。/opt/cloudera/parcels/CDH/lib/spark/conf目錄是默認的spark的配置目錄,當然你可以修改默認配置目錄的位置。hive-site.xml內容如下:hive.metastore.localfalsehive.metastore.uristhrift://n1:9083hive.metastore.client.socket.timeout300hive.metastore.warehouse.dir/user/hive/warehouse這個應該大家都懂的,總要讓spark找到hive的元數據在哪吧,於是就有了上面一些配置。第四步:修改/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是同一個進程所以沒關系。以上完事之後,運行spark-shell,再輸入:valhiveContext=neworg.apache.spark.sql.hive.HiveContext(sc)應該就沒問題了。我們再執行一個語句驗證一下是不是連接的我們指定的hive元資料庫:hiveContext.sql("showtables").take(10)//取前十個表看看最後要重點說明一下這里的第二步第三步和第四步,如果是yarn-cluster模式的話,應該替換掉集群所有節點的spark-assembly.jar集群所有節點的sparkconf目錄都需要添加hive-site.xml,每個節點spark-defaults.conf都需要添加spark.yarn.jar=hdfs://n1:8020/user/spark/share/lib/spark-assembly-with-hive-maven.jar。可以寫個shell腳本來替換,不然手動一個一個節點去替換也是蠻累的。

C. 如何通過腳本的方法,批量執行hive sql語句

操作方法如下:
把SQL語句寫成存儲過程,這樣以後每次只需要調用存儲過程就行了

D. 如何提升hive腳本的map數

一、 控制hive任務中的map數:

1. 通常情況下,作業會通過input的目錄產生一個或者多個map任務。
主要的決定因素有: input的文件總個數,input的文件大小,集群設置的文件塊大小(目前為128M, 可在hive中通過set dfs.block.size;命令查看到,該參數不能自定義修改);

2. 舉例:
a) 假設input目錄下有1個文件a,大小為780M,那麼hadoop會將該文件a分隔成7個塊(6個128m的塊和1個12m的塊),從而產生7個map數
b) 假設input目錄下有3個文件a,b,c,大小分別為10m,20m,130m,那麼hadoop會分隔成4個塊(10m,20m,128m,2m),從而產生4個map數
即,如果文件大於塊大小(128m),那麼會拆分,如果小於塊大小,則把該文件當成一個塊。

E. hive腳本無法實現rows查詢

可以實現。
為了讓Spark能夠連接到Hive的原有數據倉庫,我們需要將Hive中的hivesitexml文件拷貝到Spark的conf目錄下,這樣就可以通過這個配置文件找到Hive的元數據以及數據存放。

熱點內容
es文件夾就 發布:2024-11-19 06:27:13 瀏覽:541
鴻蒙系統對比安卓哪個強大 發布:2024-11-19 06:22:22 瀏覽:178
fifo訪問 發布:2024-11-19 06:07:51 瀏覽:512
hdfs上傳本地文件 發布:2024-11-19 06:06:31 瀏覽:512
c語言default的意思 發布:2024-11-19 06:00:47 瀏覽:24
怎樣學習java 發布:2024-11-19 06:00:45 瀏覽:359
壓縮ini 發布:2024-11-19 05:53:31 瀏覽:645
emc存儲圖標 發布:2024-11-19 05:39:03 瀏覽:647
查詢電腦主板配置怎麼看 發布:2024-11-19 05:33:10 瀏覽:465
蘋果手機怎麼查看wifi密碼 發布:2024-11-19 05:26:57 瀏覽:499