IBM美女工程師Holden Karau:尋找友善的人一起共事(圖靈訪談)
Holden Karau是IBM首席軟體工程師,負責改進Apache Spark並協助開發者向Spark貢獻程式碼。Holden曾是Databricks的軟體開發工程師,負責Spark和Databricks Cloud的後端開發。她曾在Google和亞馬遜從事軟體開發工作,分別負責Google+的後端開發和亞馬遜的智慧分類系統。她在大資料和搜尋領域有著豐富的經驗,精通Scala, Scheme, Java, Perl, C, C++, Ruby等語言。Holden著有《Spark快速資料處理》,與人合著有《Spark快速大資料分析》。
問:你是《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(舊金山本地的女性黑客空間)這樣的團體真的很有幫助,無論對於學習還是建立網路來說。
我認為在起步時參與開源軟體開發是一種積累經驗、增加資歷的好方法,同時也能幫助你面試。話雖如此,但是對於某些開源專案來說,社群裡會有很多明爭暗鬥,所以我總是儘可能地尋找友善的人,或者和我的朋友們一起工作。另外,我認為做分享是一種展示你的工作和結交領域內有趣的人的有效方法。
更多精彩,加入圖靈訪談微信!
相關文章
- 尋找~PHP 開發工程師 - 全職PHP工程師
- 尋找卓越的(Android)軟體工程師(譯)Android軟體工程工程師
- [深圳] 深圳尋找母星招聘 Golang 開發工程師Golang工程師
- 從與HBO美女工程師交談看開發者的未來工程師
- CVPR 2020|解放工程師,DenseNAS 讓結構搜尋更靈活工程師
- 圖靈訪談系列之一:陳世欣談產品經理與社群圖靈
- 圖靈訪談系列之八:對話歸隱的大師——Donald E. Knuth(高德納)圖靈
- [譯] IBM 工程師的 TensorFlow 入門指北IBM工程師
- 圖靈訪談系列之九:CNode社群談Node.js技術及生態圖靈Node.js
- 海外IT工程師淺談工程師
- 談談Java工程師的學習Java工程師
- DataGirls社群創始人 Aislinn:做勇敢的少數派(圖靈訪談)AI圖靈
- 尋找西安專職的vue人才一起做專案Vue
- 尋找真凶
- Python 精靈模組製作的美女與圖章虛像效果.pyPython
- 圖集:盲人 IT 工程師工程師
- [上海] 深圳尋找母星網路科技有限公司上海分公司招聘 PHP 開發工程師PHP工程師
- 找尋《控制》、《心靈殺手》和《量子破碎》之間的聯絡
- 工程師訪談 | 初心在方寸,咫尺在匠心,愛奇藝NLP的成長之路工程師
- 尋找邊境
- 尋找智慧精靈:出海與創新時代的開發者之需
- 每日超過260萬使用者在Soul找尋“靈魂伴侶”
- 今天不聊技術,談談“工程師“三個字工程師
- 在日本靠RPA實現獨立的工程師丨清海一聰訪談錄工程師
- BAT面試架構師的人都在找的java技術框架題BAT面試架構Java框架
- 09 如何通過搜尋引擎尋找海量的免費商用圖片
- 老司機如何找素材,如何找靈感?
- 1995年的資深工程師,和你談談如何進階工程師
- 全棧工程師很難找?JNPF幫你分分鐘搞定!全棧工程師
- 工程師的時尚法則:找同款?用CNN啊!工程師CNN
- 162. 尋找峰值
- 08、 尋找周杰倫
- 李安:從結構工程師到ruby程式設計師 - Mixin network開發者訪談系列 第一期工程師程式設計師
- 李安:從結構工程師到 Ruby 程式設計師 - Mixin Network開發者訪談系列 第一期工程師程式設計師
- 李安:從結構工程師到 Ruby 程式設計師 – Mixin Network開發者訪談系列 第一期工程師程式設計師
- 為AI尋找最佳人造突觸:IBM電化學RAM亮相IEEE電子元件會議AIIBM元件
- 一起來找bug茬-01
- Facebook 對前端工程師的要求是啥?一起來看看前端工程師
- 運維工程師思維導圖運維工程師