最近SPARK在台灣相當火熱名媛最愛李宗瑞來這撿屍,潮男潮女富二代去的是(http://www.sparktaipei.com.tw),宅宅工程師只能在家玩Spark(https://spark.apache.org).
隨著數據量越來越大,除了需要更大的儲存空間,更快的存取速度,也需要更快地計算速度,Spark就是在這樣的需求下的產物.因為Spark我也剛開始摸索,所以還無法提供太詳細的心得.只知道spark的計算主要是依賴記憶體空間,同時計算速度是傳統hodoop的N倍以上,而且處理時間不太會隨著處理資料的增加而大幅成長(資料來源:http://www.jdon.com/bigdata/spark.html; 原始論文:http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.pdf).照這樣的特性來看,的確相當適合做big data的計算.不過在使用之前總是先要架設環境,雖然我沒有分散是的環境,但是spark也可以架設在單機上,這篇文章主要講的就是部署在單機上的過程.
- 下載Spark(http://spark.apache.org/downloads.html),下載後解壓縮在硬碟上.
- 下載JAVA JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm.安裝好JDK後,要先設定JAVA和SPARK的環境.This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
##設定Java Path JAVA_HOME=/.../jdk1.8.0_05/HOME CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH ##設定spark path export SCALA_HOME=/.../scala export SPARK_HOME=/.../spark export PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH - 接著進入spark的目錄,執行$sbt\sbt.cmd assembly,這邊會自動下載和部署環境,時間會花久一點,我自己是跑了1300秒.
- 上述步驟結束後,執行spark-shell,應該會出現下列畫面:This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 1.1.0 /_/ Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65) Type in expressions to have them evaluated. Type :help for more information. ... ... 14/09/21 11:38:34 INFO SparkUI: Started SparkUI at http://bryans-air:4040 ... ... - 注意中間有個Spark UI的訊息後面會有一串網址,將網址丟到瀏覽器應該會出現
如果中間出現錯誤訊息可能有幾個原因:
- JAVA JDK沒裝
- JAVA 環境變項沒有設定
- JAVA環境變項路徑設定錯誤(我就是在這邊卡超久...)
一樣又是一篇血淚教訓給各位參考T_T
2015/01/18 現在你有更好的選擇--使用Docker吧!:[Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇
2015/01/18 現在你有更好的選擇--使用Docker吧!:[Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇
Bryan大大您好,我是Big Data的初學者,最近開始研究Spark,現在有個課題是如何把MS SQL資料轉到Spark,但會有一些driver錯誤,不知道大大有沒有相關的研究,謝謝
回覆刪除不好意思這個問題有點沒頭沒尾的,很難判斷XD
刪除請你是怎麼轉的? 聽起來是用JDBC DRIVER?
有相關的錯誤訊息嗎? 謝謝~
不好意思,若提供的資訊不夠,請再跟我說
刪除因為在網路上找到的資料試做後,似乎只有JDBC方法可行,若大大有其它方法,也請指教!!
目前是使用JDBC Driver,使用spark-shell 加入jdbc參數
指令>> ./bin/spark-shell --jars /tmp/sqljdbc_4.0/cht/sqljdbc4.jar
設定的URL>> "jdbc:sqlserver://testserver:1433;databaseName=testdb;integratedSecurity=true;"
產生錯誤訊息:
ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:f06b3867-7653-400b-8425-c0f4d75e178c
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:60)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at $line21.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(:23)
at $line21.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(:23)
at org.apache.spark.rdd.JdbcRDD$$anon$1.(JdbcRDD.scala:73)
at org.apache.spark.rdd.JdbcRDD.compute(JdbcRDD.scala:70)
at org.apache.spark.rdd.JdbcRDD.compute(JdbcRDD.scala:50)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:62)
at org.apache.spark.scheduler.Task.run(Task.scala:54)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:178)
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)
Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:35)
因為我手邊沒有MYSQL,無法實測。不過從網路上的資料來看,這個錯誤訊息和SPARK無關。問題可能來自一個"sqljdbc_auth.dll"的檔案要放在系統目錄下。
刪除你可以參考:
http://scn.sap.com/people/charu.agarwal/blog/2009/07/02/problems-faced-while-connecting-to-sql-server-using-jdbc-adapter-in-pi
或這個:
http://stackoverflow.com/questions/6087819/jdbc-sqlserverexception-this-driver-is-not-configured-for-integrated-authentic
如果可以解決或還是無法解決問題還麻煩您分享一下:)
謝謝大大的提供,因為我是Linux系統,所以還是要另外找相關文章,但找了一下講到此錯誤訊息的解法都是Windows系統,所以我會再花時間解決,若有解再分享出來,謝謝
刪除期待大大分享~ 不過這個問題這樣聽你說起來還滿奇怪的orz...
刪除請問一下,
回覆刪除[frankieSpark@frankie spark-1.2.1]$ sbt\sbt.cmd assembly
-bash: sbtsbt.cmd:命令找不到
[frankieSpark@frankie spark-1.2.1]$
為什麼會出錯呢?
謝謝
作者已經移除這則留言。
刪除可以檢查一下sbt的路徑有沒有放到PATH或是 看一下執行路徑對不對
回覆刪除因為我現在手邊沒有環境,看一下有沒有sbt.cmd這個檔案, 看是不改成 sbt 就可以了
请問這是Linux嘅方法,还是Windows?
回覆刪除您好,這是Mac的安裝方式,沒有用過Windows安裝過Spark
刪除