今天國網中心電子報有一則關於 Apache Spark 的報導,對於 Hadoop 的 MapReduce 效能點出了最大的致命傷:
MapReduce 最大的缺點在於運算時需要將中間產生的資料存在 Hadoop 獨有的分散式檔案系統中(HDFS)。尤其在執行迭代演算法(註1)時,每次的輸入與輸出皆需要頻繁讀寫HDFS,這將導致大量的時間花費在資料的讀取。
也因此 Apache Spark 誕生,在 Apache Spark 網站的標題寫著:
Apache Spark™ is a fast and general engine for large-scale data processing.
讓我比較感興趣的是: Spark 支援 Java, Scala, Python, R 語言來開發各種應用程式,也可以在單機版本運行:
Ease of Use
Write applications quickly in Java, Scala, Python, R.
Runs Everywhere
Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, and S3.
簡單瀏覽 Spark's Github 的網址內的 Readme, clone 回來安裝步驟如下:
Spark github Readme 的說明,測試 Spark 是否安裝成功:
sc.parallelize(1 to 1000).count()
sc.parallelize(range(1000)).count()
如何結合 R, Python 做 Big Data 的分析?分析哪些 Big Data?採用何種 approach 分析?才是接下來最重要的課題。
MapReduce 最大的缺點在於運算時需要將中間產生的資料存在 Hadoop 獨有的分散式檔案系統中(HDFS)。尤其在執行迭代演算法(註1)時,每次的輸入與輸出皆需要頻繁讀寫HDFS,這將導致大量的時間花費在資料的讀取。
也因此 Apache Spark 誕生,在 Apache Spark 網站的標題寫著:
Apache Spark™ is a fast and general engine for large-scale data processing.
讓我比較感興趣的是: Spark 支援 Java, Scala, Python, R 語言來開發各種應用程式,也可以在單機版本運行:
Ease of Use
Write applications quickly in Java, Scala, Python, R.
Runs Everywhere
Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, and S3.
簡單瀏覽 Spark's Github 的網址內的 Readme, clone 回來安裝步驟如下:
- 下載及解壓縮 Maven 專案套件軟體
- 設定環境變數讓 Maven/bin 程式可以在 cmd 中被執行:[圖 1]
- cmd 中輸入 mvn -v 測試:[圖 2]
- clone Spark stable 版本到 github 目錄:[圖 3]
- build Spark: cd spark; mvn -DskipTests clean package
Spark github Readme 的說明,測試 Spark 是否安裝成功:
- 測試 Spark-shell:
sc.parallelize(1 to 1000).count()
- 測試 python command line:
sc.parallelize(range(1000)).count()
如何結合 R, Python 做 Big Data 的分析?分析哪些 Big Data?採用何種 approach 分析?才是接下來最重要的課題。
留言
張貼留言