圖靈訪談 : IBM美女工程師Holden Karau:尋找友善的人一起共事

jopen 8年前發布 | 11K 次閱讀 大數據 數據分析 Spark SQL

Holden Karau是IBM首席軟件工程師,負責改進Apache Spark并協助開發者向Spark貢獻代碼。Holden曾是Databricks的軟件開發工程師,負責Spark和Databricks Cloud的后端開發。她曾在Google和亞馬遜從事軟件開發工作,分別負責Google+的后端開發和亞馬遜的智能分類系統。她在大數據和搜索領域有著豐富的經驗,精通Scala, Scheme, Java, Perl, C, C++, Ruby等語言。Holden著有《Spark快速數據處理》,與人合著有 《Spark快速大數據分析》

圖靈訪談 : IBM美女工程師Holden Karau:尋找友善的人一起共事

問:你是《Spark快速數據處理》和 《Spark快速大數據分析》 的作者,這兩本書有什么區別?你的寫作過程是什么樣的?

《Spark快速數據處理》是第一本關于Apache Spark的書,所以這本書的重點是告訴人們如何開始。 《Spark快速大數據分析》 則是在一段時間之后寫的,那時Spark SQL和其他重要組件已經加入了Spark,這本書更加專注于細節,但是仍然適合那些對Spark不甚了解的人。

在這兩本書之間,我的寫作實踐發生了很大的變化,原因有幾個。 《Spark快速大數據分析》 是一本合作完成的書,從早期開始,在技術審校的幫助下我們就提前發布了幾個版本,所以我們可以輕松地做出改動,并且我們收到的反饋對于完成這本書來說非常有效。在寫作 《Spark快速大數據分析》 時,我還在Databricks工作,所以從程序委員會那里進行事實核查或獲得反饋都是非常容易的,因為他們中的很多人就在我的辦公室里。

問:你在Databricks的工作和在IBM的工作之間最大的區別是什么?你是否需要做出哪些工作上的調整?

對于日常工作來說,我在IBM的最大改變可能就是:我有更多時間專注地從事關于Spark的工作了。當我在Databricks時,我必須得花很多時間從事Databricks Cloud(商業產品)的相關工作。還有其他的一些變化,比如Databricks擁有Spark的大部分代碼提交者,所以在那里我的問題會更快得到回答,代碼評審的速度也更快。當然,還會有小公司和大公司之間的差別,但是我們的小組做起事來卻出乎意料地靈活。

問:R語言是開源世界最流行的數據分析、統計計算及制圖語言,作為Spark的長期開發者之一,你認為Spark會提供R語言的接口嗎?

這件事已經發生了!SparkR項目現在正式成為Spark的一部分,同時Spark也開始提供R API。但是作為最新的組件,SparkR還有很長的路要走,要想和Scala做到功能對等還需要一段時間。

問:很多企業從關系型數據庫向大數據處理工具(如Spark)轉型的過程中都遇到了困難。對于這樣的公司你有哪些建議?

我認為從傳統關系型數據庫向分布式系統轉型的過程中會涉及到很多關于開發者的改變。Spark SQL可以彌補一些分析方面的差距——但是我認為很重要的一點在于:開發者必須增進對分布式系統在實踐中的工作方式的理解。與其上來就重寫現有的復雜系統,還不如在開始時重新搭建一個新項目(也許換一個新數據源),這會幫助開發者們建立起具有指導性的知識系統。

問:很多人認為Spark會憑借優秀的性能推翻Hadoop的統治,你同意嗎?大數據處理技術(如Hadoop, Pig, Tez, Hive,以及Spark)的生態系統在未來將會怎樣?

隨著時間推移,很難預測大數據系統在未來將會發生什么,尤其在數量如此多的人都在參與開源社區的情況下。我相信久而久之,Spark會取代很多Map/Reduce系統和定制化系統,而其他系統則會把Spark作為執行引擎。但是仍然會有更適合定制化系統來完成的用例。

問:對于數據分析的不同環境來說,你如何在命令行和Spark之間做出選擇?

通常來說,我使用命令行會更加得心應手,但是對于調試工作之外的探索性工作來說,使用notebooks這樣的工具確實很有幫助。當然,你也可以用Databricks Cloud,但是我使用Jupyter和Zeppelin的體驗也很不錯。然而對于生產環境下的工作來說,我認為notebooks很有局限性,難以測試,所以在我渡過探索階段之后,我會使用更加傳統的jar包。

問:Hive On Spark和Spark SQL是什么關系?你認為哪個項目在未來會更有潛力?

Spark SQL是Spark的一個重要組件——通過引入Datasets,Spark在已有的關系型API的基礎上把函數式編程帶入到了Spark SQL中。我對Spark SQL的未來充滿期待。

問:對于已經熟練掌握Hadoop的人來說,學習Spark的路線是什么樣的?你推薦閱讀源碼這種學習方式嗎?

我的觀點可能有些不客觀,我認為 《Spark快速大數據分析》 會是一本進入這個領域的好書——但是在Spark shell里做一些探索性的工作也是快速進入狀態的好辦法。對于Spark現在所處的時期來說,如果你想成為Spark開發者,閱讀源碼是很有幫助的,但是對于終端使用者來說,閱讀源碼通常是沒有必要的,除非你想要使用最新的特性。

問:如何高效地閱讀像Spark和Hadoop這樣大型開源項目的代碼?有哪些工具可以幫得上忙?

我認為閱讀Spark源碼對于想要向Spark貢獻代碼的人來說是一項絕佳的活動。因為我是一位Emacs使用者,所以我喜歡用Magit,但是我也用過Ensime。很多其他開發者也覺得IntelliJ很好用。

問:中國的女性程序員比較少,特別是在“大數據”領域。對于那些想要成為開發者或軟件工程師的女性,你有哪些建議?

我希望我能給出更好的建議,但是顯然我的建議都從我的個人經歷出發,而每個人情況都是不同的。話雖如此,但是我發現加入Women Who Code和Double Union(舊金山本地的女性黑客空間)這樣的團體真的很有幫助,無論對于學習還是建立網絡來說。

我認為在起步時參與開源軟件開發是一種積累經驗、增加資歷的好方法,同時也能幫助你面試。話雖如此,但是對于某些開源項目來說,社區里會有很多明爭暗斗,所以我總是盡可能地尋找友善的人,或者和我的朋友們一起工作。另外,我認為做分享是一種展示你的工作和結交領域內有趣的人的有效方法。

更多精彩,加入圖靈訪談微信! 圖靈訪談 : IBM美女工程師Holden Karau:尋找友善的人一起共事

</div>

來自: http://www.ituring.com.cn/article/211271

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!