最近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的環境.
- 接著進入spark的目錄,執行$sbt\sbt.cmd assembly,這邊會自動下載和部署環境,時間會花久一點,我自己是跑了1300秒.
- 上述步驟結束後,執行spark-shell,應該會出現下列畫面:
- 注意中間有個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
刪除