當前位置:首頁 » 編程軟體 » sparkshell腳本

sparkshell腳本

發布時間: 2022-11-28 18:29:56

❶ spark-shell啟動失敗

公司小組分配了三台虛擬機,在虛擬機上面意欲裝hadoop集群及spark on yarn

Hadoop 2.7.2
spark 2.3.2

配置好hadoop集群與spark配置後,啟動spark-shell --master yarn報錯如下

ApplicationMaster日誌如下

上圖可以看出ApplicationMaster進程丟失,導致連接失敗
在AM啟動節點上面查看NM的日誌信息如下(部分日誌)

有此日誌可以看出由於AM的vmem內存使用(2.3G)超出了默認的(2.1G),因此被kill掉了

❷ 如何運行含spark的python腳本

1、Spark腳本提交/運行/部署1.1spark-shell(交互窗口模式)運行Spark-shell需要指向申請資源的standalonespark集群信息,其參數為MASTER,還可以指定executor及driver的內存大小。sudospark-shell--executor-memory5g--driver-memory1g--masterspark://192.168.180.216:7077spark-shell啟動完後,可以在交互窗口中輸入Scala命令,進行操作,其中spark-shell已經默認生成sc對象,可以用:valuser_rdd1=sc.textFile(inputpath,10)讀取數據資源等。1.2spark-shell(腳本運行模式)上面方法需要在交互窗口中一條一條的輸入scala程序;將scala程序保存在test.scala文件中,可以通過以下命令一次運行該文件中的程序代碼:sudospark-shell--executor-memory5g--driver-memory1g--masterspark//192.168.180.216:7077

❸ 如何在spark-shell命令行執行spark hql

前面已經有篇文章介紹如何編譯包含hive的spark-assembly.jar了,不清楚的可以翻看一下前面的文章。
cloudera manager裝好的spark,直接執行spark-shell進入命令行後,寫入如下語句:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

你會發現沒法執行通過,因為cm裝的原生的spark是不支持spark hql的,我們需要手動進行一些調整:
第一步,將編譯好的包含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到這個目錄:hadoop fs -get hdfs://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 -s spark-assembly-with-hive-maven.jar spark-assembly.jar,指向我們剛下載下來的那個JAR包,這個JAR包會在啟動spark-shell腳本時裝載到driver program的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內容如下:

<?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>

這個應該大家都懂的,總要讓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,再輸入:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

應該就沒問題了。我們再執行一個語句驗證一下是不是連接的我們指定的hive元資料庫
hiveContext.sql("show tables").take(10) //取前十個表看看

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

❹ spark-shell 及 日誌配置

1、當SparkContex線程被調用且沒有被stop()時,可以使用http://192.168.1.xxx:4040來監控application的狀態,但是當sc關閉時,4040頁面就無法打開,所以配置History Server

http://spark.apache.org/docs/latest/running-on-yarn.html     官方文檔

然後輸入網址,顯示如下

http://192.168.1.xxx:18080/

2、運行spark-shell時,會自動創建SparkContex sc ,

打開http://192.168.1.xxx:4040/ 觀察job運行狀態

❺ 如何通過Spark的Shell操作SparkContext實例過程

Spark的互動式腳本是一種學習API的簡單途徑,也是分析數據集交互的有力工具。

Spark抽象的分布式集群空間叫做Resilient Distributed Dataset (RDD)彈性數據集。
其中,RDD有兩種創建方式:
(1)、從Hadoop的文件系統輸入(例如HDFS);
(2)、有其他已存在的RDD轉換得到新的RDD;

下面進行簡單的測試:

1. 進入SPARK_HOME/bin下運行命令:

[java] view plain print?
$./spark-shell

2. 利用HDFS上的一個文本文件創建一個新RDD:

[java] view plain print?
scala> var textFile = sc.textFile("hdfs://localhost:50040/input/WordCount/text1");
[java] view plain print?
textFile: org.apache.spark.rdd.RDD[String] = MappedRDD[1] at textFile at <console>:12

3. RDD有兩種類型的操作 ,分別是Action(返回values)和Transformations(返回一個新的RDD)

(1)Action相當於執行一個動作,會返回一個結果:

❻ 如何通過Spark的Shell操作SparkContext實例過程

編寫Spark代碼,無論是要運行本地還是集群都必須有SparkContext的實例。
接下來,我們讀取「README.md」這個文件

2
把讀取的內容保存給了file這個變數,其實file是一個MappedRDD,在Spark的代碼編寫中,一切都是基於RDD操作的;
再接下來,我們從讀取的文件中過濾出所有的「Spark」這個詞。

3
生成了一個FilteredRDD。
再接下來,我們統計一下「Spark」一共出現了多少次

4
從執行結果中我們發現「Spark」這個詞一共出現次數。
此時,我們查看Spark Shell的Web控制台:

5
控制台中顯示我們提交了一個任務並成功完成,點擊任務可以看到其執行詳情

6
那我們如何驗證Spark Shell對README.md這個文件中的「Spark」出現的15次是正確的呢?其實方法很簡單,我們可以使用Ubuntu自帶的wc命令來統計,如下所示:

❼ Spark 的shell操作

執行官方examples,路徑 /home/bigdata/apps/spark-2.1.0-bin-hadoop2.7/examples/src/main/scala/org/apache/spark/examples/

org.apache.spark.examples.SparkPi

啟動

❽ 如何在spark-shell命令行執行spark hql

cloudera manager裝好的spark,直接執行spark-shell進入命令行後,寫入如下語句:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

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

❾ Spark-shell和Spark-submit提交程序的區別

Spark提交程序來說,最終都是通過Spark-submit命令來實現的,不同的是spark-shell在運行時,會先進行一些初始參數的設置,然後調用Sparksubmit來運行,並且spark-shell是互動式的。

下面我們從源代碼的角度來解釋。

首先看下Spark-Shell命令,其中它會調用main方法


總結:所用的應用程序最後的提交都是由spark-submit完成的,其他程序的調用只是對spark-submit的參數進行設置後,調用spark-submit來完成應用程序的提交到集群的操作。

熱點內容
搭建虛擬電腦的伺服器 發布:2025-05-15 10:29:31 瀏覽:269
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:979
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:108
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:616
編寫一個shell腳本添加用戶 發布:2025-05-15 09:54:43 瀏覽:505
資料庫查看錶命令 發布:2025-05-15 09:52:27 瀏覽:914
p30是不是自帶方舟編譯器 發布:2025-05-15 09:51:48 瀏覽:599
追擊世界房間密碼是多少 發布:2025-05-15 09:51:46 瀏覽:995
cjavabyte 發布:2025-05-15 09:51:36 瀏覽:463
visa存儲卡 發布:2025-05-15 09:35:07 瀏覽:619