Spark常見問題彙總
原文地址:https://my.oschina.net/tearsky/blog/629201
摘要:
1、Operation category READ is not supported in state standby
2、配置spark.deploy.recoveryMode選項為ZOOKEEPER
3、多Master如何配置
4、No Space Left on the device(Shuffle臨時檔案過多)
5、java.lang.OutOfMemory, unable to create new native thread
6、Worker節點中的work目錄佔用許多磁碟空間
7、spark-shell提交Spark Application如何解決依賴庫
8、Spark在釋出應用的時候,出現連線不上master問題
9、開發spark應用程式(和Flume-NG結合時)釋出應用時可能出現org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
10、spark-shell 找不到hadoop so問題解決
11、ERROR XSDB6: Another instance of Derby may have already booted the database /home/bdata/data/metastore_db.
12、java.lang.IllegalArgumentException: java.net.UnknownHostException: dfscluster
13、Exception in thread "main" java.lang.Exception: When running with master 'yarn-client' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
14、Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in
15、長時間等待無反應,並且看到伺服器上面的web介面有記憶體和核心數,但是沒有分配
16、記憶體不足或資料傾斜導致Executor Lost(spark-submit提交)
17、java.io.IOException : Could not locate executable null\bin\winutils.exe in the Hadoop binaries.(spark sql on hive 任務引發HiveContext NullPointerException)
18、The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx------
19、Exception in thread "main" org.apache.hadoop.security.AccessControlException : Permission denied: user=Administrator, access=WRITE, inode="/data":bdata:supergroup:drwxr-xr-x
20、執行Spark-SQL報錯:org.apache.spark.sql.AnalysisException: unresolved operator 'Project‘
21、org.apache.spark.shuffle.MetadataFetchFailedException:Missing an output location for shuffle 0/Failed to connect to hostname/192.168.xx.xxx:50268
注意:如果Driver寫好了程式碼,eclipse或者程式上傳後,沒有開始處理資料,或者快速結束任務,也沒有在控制檯中列印錯誤,那麼請進入spark的web頁面,檢視一下你的任務,找到每個分割槽日誌的stderr,檢視是否有錯誤,一般情況下一旦驅動提交了,報錯的情況只能在任務日誌裡面檢視是否有錯誤情況了
1、Operation category READ is not supported in state standby
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby
此時請登入Hadoop的管理介面檢視執行節點是否處於standby
如登入地址是:
如果是,則不可在處於StandBy機器執行spark計算,因為該臺機器為備分機器
2、配置spark.deploy.recoveryMode選項為ZOOKEEPER
如果不設定spark.deploy.recoveryMode的話,那麼叢集的所有執行資料在Master重啟是都會丟失,可參考BlackHolePersistenceEngine的實現。
3、多Master如何配置
因為涉及到多個Master,所以對於應用程式的提交就有了一點變化,因為應用程式需要知道當前的Master的IP地址和埠。這種HA方案處理這種情況很簡單,只需要在SparkContext指向一個Master列表就可以了,如spark://host1:port1,host2:port2,host3:port3,應用程式會輪詢列表。
4、No Space Left on the device(Shuffle臨時檔案過多)
由於Spark在計算的時候會將中間結果儲存到/tmp目錄,而目前linux又都支援tmpfs,其實就是將/tmp目錄掛載到記憶體當中。
那麼這裡就存在一個問題,中間結果過多導致/tmp目錄寫滿而出現如下錯誤
No Space Left on the device
解決辦法
第一種:修改配置檔案spark-env.sh,把臨時檔案引入到一個自定義的目錄中去即可
export SPARK_LOCAL_DIRS=/home/utoken/datadir/spark/tmp
第二種:偷懶方式,針對tmp目錄不啟用tmpfs,直接修改/etc/fstab
cloudera manager 新增引數配置:篩選器=>高階=>搜尋“spark_env”字樣,新增引數export SPARK_LOCAL_DIRS=/home/utoken/datadir/spark/tmp到所有配置項
5、java.lang.OutOfMemory, unable to create new native thread
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
上面這段錯誤提示的本質是Linux作業系統無法建立更多程序,導致出錯,並不是系統的記憶體不足。因此要解決這個問題需要修改Linux允許建立更多的程序,就需要修改Linux最大程序數。
[[email protected] ~]$ulimit -a
臨時修改允許開啟的最大程序數
[[email protected] ~]$ulimit -u 65535
臨時修改允許開啟的檔案控制代碼
[[email protected] ~]$ulimit -n 65535
永久修改Linux最大程序數量
[[email protected] ~]$ vim /etc/security/limits.d/90-nproc.conf
* soft nproc 60000
root soft nproc unlimited
永久修改使用者開啟檔案的最大控制代碼數,該值預設1024,一般都會不夠,常見錯誤就是not open file
[[email protected] ~]$ vim /etc/security/limits.conf
bdata soft nofile 65536
bdata hard nofile 65536
6、Worker節點中的work目錄佔用許多磁碟空間
目錄地址:/home/utoken/software/spark-1.3.0-bin-hadoop2.4/work
這些是Driver上傳到worker的檔案,需要定時做手工清理,否則會佔用許多磁碟空間
7、spark-shell提交Spark Application如何解決依賴庫
spark-shell的話,利用--driver-class-path選項來指定所依賴的jar檔案,注意的是--driver-class-path後如果需要跟著多個jar檔案的話,jar檔案之間使用冒號(:)來分割。
8、Spark在釋出應用的時候,出現連線不上master問題,如下
15/11/19 11:35:50 INFO AppClient$ClientEndpoint: Connecting to master spark://s1:7077...
15/11/19 11:35:50 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://[email protected]:7077] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
解決方式
檢查所有機器時間是否一致、hosts是否都配置了對映、客戶端和伺服器端的Scala版本是否一致、Scala版本是否和Spark相容
檢查是否相容問題請參考官方網站介紹:
9、開發spark應用程式(和Flume-NG結合時)釋出應用時可能出現org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
15/11/27 10:33:44 ERROR ReceiverSupervisorImpl: Stopped receiver with error: org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
15/11/27 10:33:44 ERROR Executor: Exception in task 0.0 in stage 2.0 (TID 70)
org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.10.156:18800
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
Caused by: java.net.BindException: Cannot assign requested address
由於spark通過Master釋出的時候,會自動選取傳送到某一臺的worker節點上,所以這裡繫結埠的時候,需要選擇相應的worker伺服器,但是由於我們無法事先了解到,spark釋出到哪一臺伺服器的,所以這裡啟動報錯,是因為在 192.168.10.156:18800的機器上面沒有啟動Driver程式,而是釋出到了其他伺服器去啟動了,所以無法監聽到該機器出現問題,所以我們需要設定spark分發包時,釋出到所有worker節點機器,或者釋出後,我們去尋找釋出到了哪一臺機器,重新修改繫結IP,重新發布,有一定機率釋出成功。詳情可見《印象筆記-戰5渣系列——Spark Streaming啟動問題 - 推酷》
10、spark-shell 找不到hadoop so問題解決
[main] WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在Spark的conf目錄下,修改spark-env.sh檔案,加入LD_LIBRARY_PATH環境變數,值為HADOOP的native庫路徑即可.
11、ERROR XSDB6: Another instance of Derby may have already booted the database /home/bdata/data/metastore_db.
在使用Hive on Spark模式操作hive裡面的資料時,報以上錯誤,原因是因為HIVE採用了derby這個內嵌資料庫作為資料庫,它不支援多使用者同時訪問,解決辦法就是把derby資料庫換成mysql資料庫即可
變更方式
12、java.lang.IllegalArgumentException: java.net.UnknownHostException: dfscluster
解決辦法:
找不到hdfs叢集名字dfscluster,這個檔案在HADOOP的etc/hadoop下面,有個檔案hdfs-site.xml,複製到Spark的conf下,重啟即可
如:執行指令碼,分發到所有的Spark叢集機器中,
[[email protected] hadoop]foriin34,35,36,37,38;doscphdfs−site.xml192.168.10.foriin34,35,36,37,38;doscphdfs−site.xml192.168.10.i:/u01/spark-1.5.1/conf/ ; done
13、Exception in thread "main" java.lang.Exception: When running with master 'yarn-client' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
問題:在執行yarn叢集或者客戶端時,報以上錯誤,
[[email protected] bin]$ ./spark-sql --master yarn-client
Exception in thread "main" java.lang.Exception: When running with master 'yarn-client' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
解決辦法
根據提示,配置HADOOP_CONF_DIR or YARN_CONF_DIR的環境變數即可
export HADOOP_HOME=/u01/hadoop-2.6.1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
PATH=PATH:PATH:HOME/.local/bin:HOME/bin:HOME/bin:SQOOP_HOME/bin:HIVEHOME/bin:HIVEHOME/bin:HADOOP_HOME/bin
14、Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:16,512 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 0 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:23,188 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 1 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:29,203 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 2 on 192.168.10.38: remote Rpc client disassociated
[Stage 0:> (0 + 4) / 42]2016-01-15 11:28:36,319 [org.apache.spark.scheduler.TaskSchedulerImpl]-[ERROR] Lost executor 3 on 192.168.10.38: remote Rpc client disassociated
2016-01-15 11:28:36,321 [org.apache.spark.scheduler.TaskSetManager]-[ERROR] Task 3 in stage 0.0 failed 4 times; aborting job
Exception in thread "main" org.apache.spark.SparkException : Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in stage 0.0 (TID 14, 192.168.10.38): ExecutorLostFailure (executor 3 lost)
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.orgapacheapachesparkschedulerschedulerDAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1283)
解決方案
這裡遇到的問題主要是因為資料來源資料量過大,而機器的記憶體無法滿足需求,導致長時間執行超時斷開的情況,資料無法有效進行互動計算,因此有必要增加記憶體
15、長時間等待無反應,並且看到伺服器上面的web介面有記憶體和核心數,但是沒有分配,如下圖
[Stage 0:> (0 + 0) / 42]
或者日誌資訊顯示:
16/01/15 14:18:56 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
解決方案
出現上面的問題主要原因是因為我們通過引數spark.executor.memory設定的記憶體過大,已經超過了實際機器擁有的記憶體,故無法執行,需要等待機器擁有足夠的記憶體後,才能執行任務,可以減少任務執行記憶體,設定小一些即可
16、記憶體不足或資料傾斜導致Executor Lost(spark-submit提交)
TaskSetManager: Lost task 1.0 in stage 6.0 (TID 100, 192.168.10.37): java.lang.OutOfMemoryError: Java heap space
16/01/15 14:29:51 INFO BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.10.37:57139 (size: 42.0 KB, free: 24.2 MB)
16/01/15 14:29:53 INFO BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.10.38:53816 (size: 42.0 KB, free: 24.2 MB)
16/01/15 14:29:55 INFO TaskSetManager: Starting task 3.0 in stage 6.0 (TID 102, 192.168.10.37, ANY, 2152 bytes)
16/01/15 14:29:55 WARN TaskSetManager: Lost task 1.0 in stage 6.0 (TID 100, 192.168.10.37): java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:76)
at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:59)
at org.apache.spark.sql.execution.UnsafeRowSerializerInstance$$anon$2.<init>(UnsafeRowSerializer.scala:55)
at org.apache.spark.sql.execution.UnsafeRowSerializerInstance.serializeStream(UnsafeRowSerializer.scala:52)
at org.apache.spark.storage.DiskBlockObjectWriter.open(DiskBlockObjectWriter.scala:92)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.insertAll(BypassMergeSortShuffleWriter.java:110)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
at org.apache.spark.scheduler.Task.run(Task.scala:88)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
16/01/15 14:29:55 ERROR TaskSchedulerImpl: Lost executor 6 on 192.168.10.37: remote Rpc client disassociated
16/01/15 14:29:55 INFO TaskSetManager: Re-queueing tasks for 6 from TaskSet 6.0
16/01/15 14:29:55 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://[email protected]:42250] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
16/01/15 14:29:55 WARN TaskSetManager: Lost task 3.0 in stage 6.0 (TID 102, 192.168.10.37): ExecutorLostFailure (executor 6 lost)
16/01/15 14:29:55 INFO DAGScheduler: Executor lost: 6 (epoch 8)
16/01/15 14:29:55 INFO BlockManagerMasterEndpoint: Trying to remove executor 6 from BlockManagerMaster.
16/01/15 14:29:55 INFO BlockManagerMasterEndpoint: Removing block manager BlockManagerId(6, 192.168.10.37, 57139)
16/01/15 14:29:55 INFO BlockManagerMaster: Removed 6 successfully in removeExecutor
16/01/15 14:29:55 INFO AppClient$ClientEndpoint: Executor updated: app-20160115142128-0001/6 is now EXITED (Command exited with code 52)
16/01/15 14:29:55 INFO SparkDeploySchedulerBackend: Executor app-20160115142128-0001/6 removed: Command exited with code 52
16/01/15 14:29:55 INFO SparkDeploySchedulerBackend: Asked to remove non-existent executor 6
.......
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 4 times, most recent failure: Lost task 0.3 in stage 6.0 (TID 142, 192.168.10.36): ExecutorLostFailure (executor 4 lost)
......
WARN TaskSetManager: Lost task 4.1 in stage 6.0 (TID 137, 192.168.10.38): java.lang.OutOfMemoryError: GC overhead limit exceeded
解決辦法:
由於我們在執行Spark任務是,讀取所需要的原資料,資料量太大,導致在Worker上面分配的任務執行資料時所需要的記憶體不夠,直接導致記憶體溢位了,所以我們有必要增加Worker上面的記憶體來滿足程式執行需要。
在Spark Streaming或者其他spark任務中,會遇到在Spark中常見的問題,典型如Executor Lost 相關的問題(shuffle fetch 失敗,Task失敗重試等)。這就意味著發生了記憶體不足或者資料傾斜的問題。這個目前需要考慮如下幾個點以獲得解決方案:
A、相同資源下,增加partition數可以減少記憶體問題。 原因如下:通過增加partition數,每個task要處理的資料少了,同一時間內,所有正在執行的task要處理的數量少了很多,所有Executor佔用的記憶體也變小了。這可以緩解資料傾斜以及記憶體不足的壓力。
B、關注shuffle read 階段的並行數。例如reduce,group 之類的函式,其實他們都有第二個引數,並行度(partition數),只是大家一般都不設定。不過出了問題再設定一下,也不錯。
C、給一個Executor 核數設定的太多,也就意味著同一時刻,在該Executor 的記憶體壓力會更大,GC也會更頻繁。我一般會控制在3個左右。然後通過提高Executor數量來保持資源的總量不變。
16、 Spark Streaming 和kafka整合後讀取訊息報錯:OffsetOutOfRangeException
解決方案:如果和kafka訊息中介軟體結合使用,請檢查訊息體是否大於預設設定1m,如果大於,則需要設定fetch.message.max.bytes=1m,這裡需要把值設定大些
17、java.io.IOException : Could not locate executable null\bin\winutils.exe in the Hadoop binaries.(spark sql on hive 任務引發HiveContext NullPointerException)
解決辦法
在開發hive和Spark整合的時候,如果是Windows系統,並且沒有配置HADOOP_HOME的環境變數,那麼可能找不到winutils.exe這個工具,由於使用hive時,對該命令有依賴,所以不要忽視該錯誤,否則將無法建立HiveContext,一直報Exception in thread "main" java.lang.RuntimeException:java.lang.NullPointerException
因此,解決該辦法有兩個方式
A、把任務打包成jar,上傳到伺服器上面,伺服器是配置過HADOOP_HOME環境變數的,並且不需要依賴winutils,所以只需要通過spark-submit方式提交即可,如:
[[email protected] app]$ spark-submit --class com.pride.hive.HiveOnSparkTest --master spark://bdata4:7077 spark-simple-1.0.jar
B、解決winutils.exe命令不可用問題,配置Windows上面HADOOP_HOME的環境變數,或者在程式最開始的地方設定HADOOP_HOME的屬性配置,這裡需要注意,由於最新版本已經沒有winutils這些exe命令了,我們需要在其他地方下載該命令放入HADOOP的bin目錄下,當然也可以直接配置下載專案的環境變數,變數名一定要是HADOOP_HOME才行
任何專案都生效,需要配置Windows的環境變數,如果只在程式中生效可在程式中配置即可,如
//用於解決Windows下找不到winutils.exe命令
System. setProperty("hadoop.home.dir", "E:\\Software\\hadoop-common-2.2.0-bin" );
18、The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx------
解決辦法
1、程式中設定環境變數:System.setProperty("HADOOP_USER_NAME", "bdata")
2、修改HDFS的目錄許可權
Update the permission of your /tmp/hive HDFS directory using the following command
#hadoop dfs -chmod 777 /tmp/hive
此問題暫未解決,估計是17點解決winutils有問題,建議最好把任務程式釋出到伺服器上面解決
19、Exception in thread "main" org.apache.hadoop.security.AccessControlException : Permission denied: user=Administrator, access=WRITE, inode="/data":bdata:supergroup:drwxr-xr-x
解決辦法
1、在系統的環境變數或java JVM變數裡面新增HADOOP_USER_NAME,如程式中新增System.setProperty("HADOOP_USER_NAME", "bdata");,這裡的值就是以後會執行HADOOP上的Linux的使用者名稱,如果是eclipse,則修改完重啟eclipse,不然可能不生效
2、hdfs dfs -chmod 777 修改相應許可權地址
20、執行Spark-SQL報錯:org.apache.spark.sql.AnalysisException: unresolved operator 'Project
解決辦法:
在Spark-sql和hive結合時或者單獨Spark-sql,執行某些sql語句時,偶爾出現上面錯誤,那麼我們可以檢查一下sql的問題,這裡遇到的問題是巢狀語句太多,導致spark無法解析,所以需要修改sql或者改用其他方式處理;特別注意該語句可能在hive裡面沒有錯誤,spark才會出現的一種錯誤。
21、org.apache.spark.shuffle.MetadataFetchFailedException:Missing an output location for shuffle 0/Failed to connect to hostname/192.168.xx.xxx:50268
解決方法:
1.優化shuffle操作(比如groupby,join)
2.加大executor記憶體(spark.executor.memory)
相關推薦
spark常見問題錯誤 彙總
一.經驗 1.Spark Streaming包含三種計算模式:nonstate .stateful .window 2.kafka可通過配置檔案使用自帶的zookeeper叢集 3.Spark一切操作歸根結底是對RDD的操作 4.部署Spark任務,不用拷貝整個架
spark常見錯誤彙總
原文地址:https://my.oschina.net/tearsky/blog/629201 摘要: 1、Operation category READ is not supported in state standby 2、配置spark.deploy.re
Spark常見問題彙總
原文地址:https://my.oschina.net/tearsky/blog/629201 摘要: 1、Operation category READ is not supported in state standby 2、配置spark.deploy.
Spark常見問題彙總 (轉載)
16/01/15 14:29:53 INFO BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.10.38:53816 (size: 42.0 KB, free: 24.2 MB) 16/01/15 14:29:55 INFO Ta
spark常見問題分析
分析 spark常見的問題不外乎oom: 我們首先看一下Spark 的記憶體模型: Spark在一個Executor中的記憶體分為三塊,一塊是execution記憶體,一塊是storage記憶體,一塊是other記憶體。 execution記憶體是執行記憶體,文件中
Spark常見程式設計問題解決辦法及優化
目錄 1.資料傾斜 2.TopN 3.Join優化 預排序的join cross join 考慮Join順序 4.根據HashMap、DF等資料集進行filter 5.Join去掉重複的列 6.展開NestedDF 7.計算session/
Spark常見問題解決
這倆天總結了在寫Spark Job的時候遇到的一些問題,寫在這裡,以後遇到了方便檢視。 1.Error:(64, 64) Unable to find encoder for type stored in a Dataset. Primitive types
spark常見運算元操作
package com.yzc.lilei.spark.transformoperate; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spar
Maven+scala+spark常見問題總結
去除[WARNING] Using platform encoding (UTF-8 actually) to copy filter 在POM檔案的頂級目錄中,加入下面的配置。其實就是設定一下工程的編碼格式 <properties>
《spark常見調優》
一:開發調優 原則1:對多次使用的RDD進行持久化,共享同一個RDD 原則2:經過filter運算元過後使用coalesce優化分割槽數量。分割槽少並且資料量大是通過repartition重分割槽增大併發。 原則3:讀取hbase或插入資料庫時使用foreachPartition代替foreach並且使
執行Spark常見問題處理方法(持續更新中......)
1.MaxResultSize問題 首先,出現這個錯誤的時候Spark會產生如下錯誤資訊: org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialize
Spark運算元彙總和理解(詳細)
Spark之所以比Hadoop靈活和強大,其中一個原因是Spark內建了許多有用的運算元,也就是方法。通過對這些方法的組合,程式設計人員就可以寫出自己想要的功能。說白了spark程式設計就是對spark運算元的使用。所以熟悉spark運算元是spark程式
Spark常見問題總結
1.java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.sql.metadata.SessionHiveMetaStoreClientspark無法知道hive的元資料的位置,所以就
spark常見問題
由於spark通過Master釋出的時候,會自動選取傳送到某一臺的worker節點上,所以這裡繫結埠的時候,需要選擇相應的worker伺服器,但是由於我們無法事先了解到,spark釋出到哪一臺伺服器的,所以這裡啟動報錯,是因為在 192.168.10.156:18800的機器上面沒有啟動Driver程式,而是
spark常見問題處理
1、spark thriftserver報以下錯誤,其他諸如hive/sparksql等方式均正常 ERROR ActorSystemImpl: Uncaught fatal error from thread [sparkDriverActorSystem-akka.a
spark常見操作系列(3)--spark讀寫hbase(2)
接著上一篇, 問題(2): scan有 scan.setCaching(10000) scan.setCacheBlocks(true) 等設定.setCaching ,個人感覺不夠用.hbase 預設是在記憶體裡面放一塊資料用來讀取,所以讀取效率比較高,可是,
spark 常見操作
為spark DataFrom 新增一個為 空的新列,使用UDF函式 想產生一個IntegerType型別列為null的DataF
【spark】dataframe常見操作
all data 通過 sch 兩個 執行計劃 min 內存 就是 spark dataframe派生於RDD類,但是提供了非常強大的數據操作功能。當然主要對類SQL的支持。 在實際工作中會遇到這樣的情況,主要是會進行兩個數據集的篩選、合並,重新入庫。 首先加載數據
Spark on Yarn with Hive實戰案例與常見問題解決
ast spa dfs img 運維 base kcon 運維人員 來看 [TOC] 1 場景 在實際過程中,遇到這樣的場景: 日誌數據打到HDFS中,運維人員將HDFS的數據做ETL之後加載到hive中,之後需要使用Spark來對日誌做分析處理,Spark的部署方式是
python新手常見的錯誤彙總
1.invalid character in identifier 翻譯:識別符號中的無效字元 原因: 1.符號中英文切換問題 比如: 英文的冒號 ‘:’以及中文的冒號‘:’混用 2.EOL while scanning string literal 翻譯: EOL字串文字掃