顯示具有 Spark 標籤的文章。 顯示所有文章
顯示具有 Spark 標籤的文章。 顯示所有文章

2015年11月23日 星期一

[Spark] Why Use Apache Spark?


For today, I would like to switch the focus from programing or technical details, and share some of my experience and opinion with you from a Spark user’s perspective.

As a data analyst and data engineer specializing in BIG DATA, Hadoop cluster is always handy in saving data. When it comes to ETL processes or analysis, besides Spark, we have the following choices:

2015年8月31日 星期一

[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境--HiveContext設定




Spark在1.3.0之後發佈新的DataFrame,與Hive有更多的結合,預設也會啟動HiveContext,可以直接使用sql指令撈取hive中的資料.一般如果Spark與Hive放在同一個環境,只要將hive的hive-site.xml放到spark路徑/conf下面,就可以直接使用.但是現在當我們的環境放在docker裡面的話,設定上就要動點手腳.
相關文章:
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境--HiveContext設定
[Apache Spark][Docker] 利用Jupyterhub打造隨開即用的spark教學環境-- numpy 設定

2015年4月9日 星期四

[Apache Spark] 有趣的新玩意兒-Apache Zeppelin

enter image description here
圖片來源:https://zeppelin.incubator.apache.org
先前介紹了使用Ipython Notebook來使用PySpark(連結),那麼麻煩的設定就是為了能夠藉由Ipython notebook的介面來使用spark.Ipython Notebook可以讓使用者立即與程式碼互動,對於資料分析或觀察都相當的方便.這麼好用的工具,當然也有大大開發了Spark的版本,但是設定上比較麻煩,就沒有特別介紹.但是好工具總是不寂寞,今天要介紹的Zeppelin,由NFLAB開發,在2015年三月正式加入Apache家族,不但可以直接以Ipython notebook的介面來操作Spark,還有令人驚訝的視覺化功能.

2015年3月25日 星期三

[Apache Spark] Spark SQL 1.3.0 簡介及心得



SPARK SQL 1.3.0 有了重大的改變,將原本的SCHEMA RDD轉成 DATAFRAME,發展方向也更加明確,這是綜合一些資源和嘗試的投影片,給大家參考,也請不吝指教.
幾個綜合的心得:

2015年1月28日 星期三

[Apache Spark][教學] Spark x Docker x ipython Notebook !(四)-pyspark設定+commit images

        我最近感受到催稿的壓力了orz,話不多說最終章開始.承繼之前的進度,設定完ipython notebook以及對外通道後,再來就是要設定pyspark.原理是將pyspark放入ipython的import路徑中就可以了.

2015年1月25日 星期日

[Apache Spark] Spark編成指南繁體中文版計畫啟動


        
        雖然現在大部分都是直接看英文資料,但是有中文的資料看起來還是非常方便.Spark目前在國內的中文資源還是相當貧乏,所以才想說可以從翻譯一些官方文件開始,讓更多人能夠輕易接觸這個技術,所以開了一個專案一起來共同翻譯~

2015年1月17日 星期六

[Apache Spark][教學] Spark x Docker x ipython Notebook !(二)-Python安裝設定篇


        文章開頭也是先謝謝前輩https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4.在上一回,[Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇,我們從大大那邊抓下來Spark的環境,但是還缺少python的環境,所以這篇文章就是要介紹怎樣在前一個環境中建立python環境.Docker在建立環境時有兩種方式,一種是進入container內,將程式安裝起來後,將建好的container儲存起來使用,另外一種就是用Dockerfile的方式紀錄安裝的過程.因為我Dockerfile還不熟,所以先介紹第一種方式.

[Apache Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇

圖片來源:http://www.docker.com/
       
        文章開頭先感謝前輩們的貢獻:http://philipzheng.gitbooks.io/docker_practice/.Docker是今年非常火紅的技術,可以透過輕量化虛擬container來實現系統或程式的部屬配置.我們在實物開發上常遇到的問題是,開發環境和正式環境彼此存在著差異,來來回回把程式搬到正式環境上執行是非常花時間的事情.Docker透過輕量化虛擬技術讓開發者可以很輕易地將程式放到模擬出來的正式環境執行,測試,減低了很多開發上的時間成本.同時Docker可以保證開發環境的一致性,如果不小心掛掉,簡單重啟一個就好,也節省很多維護的時間.
        我們可以在Docker上run Hadoop或Spark,把寫好的程式丟到上面執行,但是有沒有辦法直接在Docker的模擬出來的環境上開發spark程式,而且還是透過方便又強大的IDE介面(你當然也可以直接開vim寫,但是不在討論範圍內XD)?本文要介紹如何在Docker上面運行spark,並且透過ipython notebook來編輯,並以互動式方式來使用Spark.

2014年12月24日 星期三

[Apache Spark][開發] Spark 1.2.0發佈囉


        昨天Spark 1.2.0正式release囉!(https://spark.apache.org/news/spark-1-2-0-released.html)這次更新了不少東西.主要是增加了效能和穩定性,一些心得API,PYTHON的支援等等,以下將翻譯一些重要的部分:

2014年12月3日 星期三

[Apache Spark][基本架構] RDD特性(三)- RDD之間的依賴關係(Dependency)


        延續[Spark][基本架構] RDD特性(二)- 轉換(Transformations)和行動(Actions)提到的,RDD在進入行動之前,都是在不同的RDD之間做轉換,RDD會記錄下這些轉換過程,自己這個RDD是從哪個RDD(又稱為parentRDD)轉換過來的,這層父與子的關係就稱為Dependency(依賴關係).本篇文章會進一步說明依賴關係的類別.

2014年12月2日 星期二

[Apache Spark][基本架構] RDD特性(二)- 轉換(Transformations)和行動(Actions)


        其實Spark架構不大,但是真的一環扣著一環,拆開來講會有很多問題,但是當每個環節都搞懂後就覺得一切設計的又是非常合理(非常繞口的一段話).這幾篇基本架構的文章都是根據Spark的原始論文拆出來講的,試圖將Spark的基本精神跟各位分享.

2014年11月20日 星期四

[Apache Spark][基本架構] RDD特性(一)

        
        
        萬丈高樓平地起,要熟悉Spark就得熟悉RDD,要熟悉RDD,就是要看Doc.延續著上一篇:[Spark][基本架構] 關於RDD中的不可變性(immutable),說到當我們對RDD做運算時,其實都會產生不同的RDD.RDD的官方文件(http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD)一開始說到這些不同的RDD都共同擁有五個特性:

2014年11月18日 星期二

[Apache Spark][教學] 不要隨便Collect RDD!


        先講結論:如果你的RDD很大,千萬不要隨便Collect.原文出處為http://databricks.gitbooks.io/databricks-spark-knowledge-base/content/best_practices/dont_call_collect_on_a_very_large_rdd.html.只說Collect會將所有元素複製到單一台機器上,但是沒說清楚為什麼會發生這種現象.

[Apache Spark][基本架構] 關於RDD中的不可變性(immutable)


        剛開始接觸RDD時,會覺得RDD是一個裝資料的貨櫃(Container).再多瞭解一點後,才發現RDD更像裝洋片的太空包(對不起我肚子餓了).貨櫃和太空包的差異在於:貨櫃可以裝不同的東西,把東西拿出來再擺回去,但是當洋芋片裝到太空包後,如果要吃或分裝,就得把太空包拆開.

[Apache Spark][開發] 避免使用GroupByKey


        雖然spark速度很快,但是沒有好好tuning還是沒辦法發揮它應該有的速度.避免使用GroupByKey牽涉到Spark底層處理資料時的方式.原始的文章和圖片皆來自Avoid GroupByKey,只有改成自己的範例.

[Scala][Spark] 型態抹除(it is eliminated by erasure)

        之前python玩習慣了,在定義function的輸入變項時,不用特別去注意輸入變項是什麼型態,反正不管什麼型態的變項丟進來,python都會去執行程式,直到出現錯誤才會跳出.但是在scala這樣強型態的語言中,程式會在編譯階段就先定義輸入與輸出變項的型態,如果出現型態錯誤就無法繼續編譯.這樣的差異讓我在設計第一個總和的function就撞牆了.

2014年11月9日 星期日

[Apache Spark][教學] 應用IDEA以及Scala於Spark程式開發(圖多)


        俗話說,工欲善其事,必先利其器,對於程式開發者來說,有個好的IDE介面絕對能大幅增加開發速度以及減少不必要的錯誤.先前在玩Spark的時候([Spark] 建立第一個RDD物件,體驗in Memory Computing的威力)是使用python,自然就是以Ipython notebook為首選,可以很方便的測試和操作RDD物件.但是因為Spark的原生語言其實是Scala,python在一些功能的支援上目前還趕不上Scala,所以目前選擇Scala作為開發Spark的主要工具.

2014年10月10日 星期五

[Apache Spark][開發] 建立第一個RDD物件,體驗in Memory Computing的威力(二)

        拖稿了一下,繼續來介紹SPARK的平行運算能力.前一篇[Spark] 建立第一個RDD物件,體驗平行運算的威力(一)我們透過python在SPARK上建立了第一個RDD物件,接著我們將開始對這個物件做一些操作.