loading

Resources

16May 2018

Cloudera 如何使用開放原始碼

2018 年04 月17日
作者:Tom Smith - DZone
原文:Cloudrea
 
本文原作者是DZone, Inc 的研究分析人員與商業策略家Tom Smith本文張貼在其公司網站上,經取得許可後在此分享。
 
Doug Cutting,Cloudera的首席架構設計師分享該公司如何使用開放原始碼軟體來協助各家公司使用資料來改善業務。
 

您的公司使用開放原始碼軟體完成哪些任務?

我們要做的所有事情。Cloudera 是一家開放原始碼公司。我們大多數的開發工作都著重創造和增強開放原始碼軟體。我們的平台(CDH) 是完全是開放原始碼的堆疊。將近每一個元件均是在Apache Software Foundation 開發的。我們與各類不同的社群協同合作,一起開發平台。我們竭盡所能為已成立的專案如Apache Hadoop、Hive、Spark 和Solr 貢獻力量,也在Apache 推動重要的新專案,如Impala、Kudu 和Sentry。我們公司的主要挑戰是讓這套複雜的開放原始碼軟體能夠無縫搭配運作,協助各機構從資料擷取更多價值。
 

您使用哪種開放原始碼軟體?

和其他地方一樣,我們非常倚賴開放原始碼軟體。開放原始碼如今是電腦運算世界裡不可或缺的發展元素。我們大部份伺服器和許多手機均執行Linux 系統。我們所使用的服務,包括Google、Apple、Workday、Salesforce 等大多採用開放原始碼作為基底。我們的開發人員使用開放原始碼工具,如git、emacs、Jenkins 等。
我們的核心產品是一個開放原始碼平台(CDH),主要由各個Apache 專案組成,包括Hadoop、HBase、Spark、Impala、Kudu、Solr 等。我們也銷售用來管理CDH 的商用軟體,它會負責安裝和設定所有這些開放原始碼軟體。
在公司內部,我們使用自己的開放原始碼軟體堆疊,來加深對客戶的瞭解。他們使用我們的軟體時,我們會收集相關資料,包括安裝和設定記錄、異常終止報告、服務呼叫等,然後分析這些資料來改善軟體及我們的服務。
 

您認為開放原始碼生態系統中最重要的元素是什麼?

開放原始碼是更加適合平台軟體的開放模式。大家不想要自己的業務過度依賴那些可能很脆弱的公司。他們寧可相信健全的開放原始碼社群。一部份是因為成本較低,但是更大的因素是長期風險。
我在軟體界工作將近30 年。那時候,我曾經在7 家不同的公司工作。那些公司現在大多已經不在了。我為那些公司寫的大部份商用軟體也不再有支援。但是在過去18 年,我在5 家公司從事開放原始碼的工作。雖然並不是5 家公司都還在,但是我所開發的開放原始碼軟體幾乎都有人主動維護,並有多方提供商務支援。所以,以個人經驗而言,我斷定開放原始碼軟體是更加值得長期倚賴的。
這個情況在市場上獲得更加廣泛的證實。成功的新平台幾乎清一色是開放原始碼軟體。Linux 是最受青睞的作業系統。Apache Hadoop 堆疊在巨量資料領域一枝獨秀。Kubernetes、Docker 和其他則在競爭要成為容器和虛擬化的標準。最主要的機器學習程式庫全部採用開放原始碼。有意一展拳腳的平台技術,如今將開放原始碼視為籌碼。
 

開放原始碼生態系統中最重要的參與者是誰?

開發人員。他們是主要推動者。不過,雖然有些開發人員獨立且自給自足,但是大部份均是由僱主聘請來發展開放原始碼軟體。所以他們的僱主也是重要的推動者。這是權力的平衡。開發人員涉獵開放原始碼的時間,通常比他們目前的受僱時間更長,而且是一種公開的履歷記錄。一個開發人員在開放原始碼社群的名聲,是其長期職業生涯中極為重要的一部份。所以,當他們一邊盡責按照僱主的目標進行開發,卻也是同時努力兼顧開放原始碼專案的長期利益。幸好這些情況甚少例外:僱主也希望他們投資的開放原始碼專案能長長久久,而且讓開發人員社群保持開心、健康的狀態。
 

在過去一年開放原始碼生態系統發生哪些最重大的變化?

生態系統繼續成熟和擴展。歷史較久的元件變得更強大且功能更多。Hadoop 3.0 目前正努力發展以便開放給使用者。它最具代表性的變化是在HDFS 中加入以糾刪碼為基礎的儲存。它可以建置的應用程式不會有什麼實質改變,但是所儲存的資料量加了50%,這個數量很大。
我對於Apache Kudu 非常期待,這是Hadoop 生態系統的關聯性儲存引擎。開發人員可以更輕鬆建置那些資料迅速更新又會變動的應用程式。與Kafka 和Impala 結合的話,開發人員可以快速開發大型即時系統,且可用SQL 查詢。這很適合物聯網應用程式,因為物聯網可能有許多裝置把資料串流到雲端而且需要即時分析。
正如我們每天聽到的消息,人工智慧正經歷一場文藝復興。有數個相當受歡迎又實用的機器學習程式庫幾乎全是開放原始碼。最近發現,許多新領域均運用機器學習方法達至成功,這些大部份居功於開放原始碼協同作業。
 

現在的開放原始碼軟體解決哪些現實世界的問題?

現在已不再只有網路公司在使用開放原始碼。它已成為主流。現在幾乎每個產業都利用開放原始碼巨量資料技術來解決問題。開放原始碼工具協助公司有效地擷取、儲存、處理和分析大量資料,並把那些資料轉變成明確且可據以行動的獨到見解。全球的銀行與電信公司改用Hadoop 堆疊,以便加深對客戶的瞭解,減少詐騙和客戶流失,並改善產品品質。零售商則是用它來最佳化庫存、定價和廣告。製造商用它來監控和改善生產。醫院用它來降低成本、治療疾病和提供更多人性化服務。政府用它來遏止洗錢和提高服務效率。農夫則用它來監視農地。開放原始碼資料技術幾乎在任何領域都有所發揮。
 

現今開放原始碼生態系統最常遇到什麼問題?

開放原始碼生態系統長年以來有一個緊張對峙的狀況,就是力量分散及實驗性質。當所有人都同意一個軟體專案可以解決特定問題時,生態系統的效率更高。該專案的開發與維護便可在更大的社群中共享,由此提高軟體品質並加速新功能的開發進度。單一標準解決方案加快了整個生態系統的腳步,因為其他元素只需要與該一個系統整合,而不是配合多個不相容的實作系統。不過,有時候,如何解決特定技術問題的方法不一定能獲得所有人同意,於是建立了多個解決方案,成為不同的軟體專案。有時候,這樣的生產效率不錯,因為不同的專案可以滿足不同的需求。當他們的工作真的有所重疊時,通常有一個專案會留住大多數的心佔率然後生態系統會以它為中心進行統合,而其他替代方案逐漸退出舞台。不過,在某些情況下,多種解決方案的持續時間會比較長,超出對生態系統而言最佳的期限。這類解決方案通常是由商務的競爭對手維護運作。這類方案成為生態系統的重負,拖累了它的進度與採用率。不過,凡事總有例外。極大部份成功的專案提供獨一無二的價值。
 

您認為開放原始碼軟體有什麼樣的未來?

開放原始碼已成為平台軟體的標準開發模式,應用程式的元素就是共享的建構模塊。用這個機制建立和維護這類軟體,效率與效果都更好,因為已在若干時機下發現相關市場。在過去數十年中,Linux 成為最受歡迎的作業系統而Apache 則是最受歡迎的Web 伺服器。不久前,在搭配Hadoop 生態系統的情況下,開放原始碼已經主宰巨量資料技術。我們現在認為它是下一波機器學習技術新浪潮的標準。現在的平台技術均預期會採用開放原始碼。有少數甚至嘗試建立新的商用軟體平台,但是他們的嘗試通常會以失敗告終。
由於開放原始碼是更加有效的開放模式,我希望它會繼續在應用程式堆疊中成長,並進入更多垂直市場。開放原始碼基因組學平台如何促進該領域的發展速度,我們有目共睹。同樣的,我們的精準醫學、教育、氣象科學等均需要標準的開放原始碼工具,以便能夠加速推動這些領域的發展。而且,若我們能在其他產業制定開放標準,那麼我們就可以改善他們的生產效率。製造業、電信業、銀行業、交通運輸業、醫療業和大多數其他產業均有常見的資料問題,藉由使用共享的開放原始碼軟體能有效獲得解決。
 

對於開放原始碼生態系統目前的狀態,您最大的擔憂是什麼?

技能差距是妨礙平台變更速度的主要因素,但這也代表著革新即將發生。巨量資料的技能差距在來年相對地不會有太大改變,人們可能因此對採用開放原始碼技術卻步。當新技術初創出來並爭取使用者青睞時,僅有少數人知道。唯有特定類型的軟體達到成熟標準時,才會出現大量專精使用該軟體的人,但即使到了那時候,仍會存在技能差距。唯有堆疊不再有重大改良時,這樣的差距才會消失,但是我們並不樂見這種情況。

您如何確保開放原始碼軟體的安全性?

使用典型的方法,即有人在攻擊之前手動植入程式碼,而我們利用過濾條件掃描程式碼促成的某種特定行為,已無法攔截新式攻擊。若您建立定義平常行為的模式,只能找到異常情況。網路資料採用標準格式可讓不同的公司建立不同的應用程式來偵測入侵行為,提供網路安全生態系統,這是網路安全的開放資料模式。

開發人員使用開放原始碼軟體時應該記住哪些事情?

不要專注於個別技術,但是要瞭解開放原始碼資料生態系統中每個元件的最佳運用方式,以及他們如何互相連結來解決問題。從宏觀的角度瞭解架構是最重要的技能,去瞭解新技術如何適用、他們可能取代哪些功能以及他們可能賦予哪些能力。
Back to list.
Prev
Cloudera 5.14 新功能:改進查詢協助功能以及自助式分析資料庫整合 ADLS
Cloudera 5.14 新功能:改進查詢協助功能以及自助式分析資料庫整合 ADLS
Next
將 CDH 5.8.3 原先配置的 Oracle JDK 1.7 置換為 Open JDK 1.7
將 CDH 5.8.3 原先配置的 Oracle JDK 1.7 置換為 Open JDK 1.7