fbpx

Big Data 筆記

大數據 (Big Data),相信大家亦耳熟能詳,亦知道是未來的大趁勢,因為對大數據感興趣,所以我報讀了 University of California, San Diego 和 Coursera (網上課程平台) 合作的 Big Data 網上課程,以下是我個人在 Introduction of Big Data 的學習筆記,希望可以幫助大家認識 Big Data:

01 引言:

麥肯錫 (McKinsey) – 芝加哥管理顧問公司,在 2013 年發出一份報告指出數據科學 (data science) 將會是經濟增長的第一因素 (catalyet)。大數據 (big data) 像增長的激流持續而快速。

其中一個 data science 的催化劑 (catalyzing power) 是雲端運算 (cloud computing or on-demand computing)。雲端運算是一種概念:使用者能隨時享受網路的共用資源包括:存儲、應用程式和服務,不需要下載及儲存。

那麼大數據有何用?舉個例子:火災時,可以透過社交媒體圖片、衛星圖片等資料,完成火災的實時模型。(real-time modeling)。

補充:大數據特點有:volume 分析數據量大、variety 多樣、velocity 輸入輸出速度快、veracity 准確、valence 關聯、value 價值。

02 如何分析及利用數據

數據一般來自:1. 機械 (Machine)、 2. 人 (People) 、 3. 組織/公司 (Organisation),使用機械收集數據可以做到即時的行動 (in-situ processing)。

如 SCADA 系統 (Supervisor Control and Data Acquisition),便能收集現場信息,將這些信息傳輸到計算機系統,並且用圖像或文本的形式顯示這些信息,操作員能實時監視和控制系統,水處理、電力傳輸、鐵路亦會使用SCADA 系統。

數據分析流程包括:

(1) Acquire 數據採集, (2) Prepare 分為 Exploring 用圖表顯示數據及 Pre-processing 清洗重覆及無用數據,(3) Analyze 分析如:分類 Classification、迴歸 Regression、集群 Clustering、圖像 Graph、關聯 Association, (4) Report & Act 報告及應用。

大數據工具可以幫助管理及分析龐大的數據,如:Hadoop、Storm、Stark。

03 弄清基礎

首先是分散式檔案系統 (Distributed File System, DFS),想像情境:如果你有上千部電腦 (Rack of computers),如何快速找到你需要的文件呢?而 DFS 就能夠解決這個問題。(分割 Partitioning)

而且系統會自動把數據自動備份 (Data Replication),例如 Hadoop DFS 便會備份三份,舉例:有3台電腦 A、B、C、D、E,現在需要把大雄、小夫、胖虎存放,結果:

bigdata 大數據 data replication

除此之外,系統亦容許不同訪客分流到不同電腦瀏覽,即可同時使用同一數據作分析。

另一點要提到的概念是集群式计算 (Commodity Cluster) [下圖左],它比並行計算 (Parallel Computing) 成本低 [下圖右],效能較弱。而多個集群式计算在同一網絡上,被稱為:分布式计算 (Distributed Computing)。Cluster 結構被稱為:數據平行 (Data Parallelism),把大的任務化解成若干個相同的子任務,適合 5Vs 的大數據分析。

bigdata 大數據 Data Parallelism

接下來是介紹一種運行在 Cluster 的軟體框架 (software framework) – MapReduce,映射 Map 從主節點 (master node) 輸入一組 key,將 key 切分成數個子部分,分散到各 node 運算。最後,化簡 Reduce 在主節點收回完成部分,組合輸出。

04 Hadoop 及各種工具

下圖 Hadoop Ecosystem: (各層關係例子:YARN 可用 HDFS,MongoDB 不可用 HDFS)

bigdata hadoop ecosystem

  • HDFS (Hadoop Distributed File System) 是最基礎框架,提供大容量和可靠的儲存。可以增加 commodity hardware 提升 HDFS 的儲存容量。HDFS 由兩部分組成:NameNode for metadata (資料的資料) 和 DataNode for block storage (塊存儲)。
  • YARN (Yet Another Resource Negotiator)  提供彈性的時間表 (scheduling)及資源管理。圖左為MR1版本,JobTracker 協調作業,分配在Task Tracker 進行的 map & reduce 任務。右為MR2版,集群管理器 (Resource Manager取代)、JobTracker (app master取代)、Node Manager (Resource Manager取代)、MapReduce (分散應用程式取代),比舊版更有彈性、效率和靈活。

biodata yarn

  • Pig 和 Hive 是兩種高級編程語言。由於 MapReduce 框架是非常低級彆並且它需要程序員編寫自定義程序,導致難以維護和重用。 Hive 就是為程序員設計的。而 Pig 則使人們能夠更專注於分析大量數據集和花更少的時間來寫map-reduce程序。(Pig = dataflow scripting; Hive = SQL 資料庫讀取與儲存資料)
  • Giraph 是用來處理大量數據的圖表,如:Facebook 用來分析社交的圖表。
  • Storm, Spark, Flink 實時及記憶體 (in-memory) 內處理大數據,在一些項目達原來的x100倍速度。
  • HBase、Cassandra、MongoDB [不使用 SQL 語言] 在特定情況下更適合。例如:collections of key values / large sparse table。
  • Zookeeper 是所有工具的中心管理系統:同步、配置、確保高可用性 (high availability)。

註:Hadoop 不適用於數據量少、高級算法 Advanced Algorithms、基礎替代、任務平行 Task Parallelism、需要隨機數據讀取

05 關於 MapReduce

首先要明白的是 WordCount 例子中,如何做到:(1) Map > (2) Shuffle and Sort > (3) Reduce

另一例子:四個朋友買了不同種類的水果。第一步 Map:首先,為四個朋友分配不同類型蔬菜的隨機組合。他們需要利用 compute 來測量每種蔬菜的重量和切蔬菜。並確保不要混合不同類型的蔬菜。

現在每個朋友都會生成一個<key,value>的組合記錄買了的蔬菜和其重量,如下:

第二步 Shuffle (Grouping),

biodata mapreduce2

第三步 Reduce,在這個階段把同一蔬菜放在一起,然後標籤它們:<蕃茄,16lbs>、<洋蔥,33.4lbs>、<青椒,13lbs>…..,在整個過程指揮的你是 master node,朋友是 worker node (mapper, grouper, reducer)。

另一例子是 Google 搜索:Key (apple) 輸出 Value (http://apple.com)。

最後,了解原理,我們知道 MapReduce 不適用於常改變的數據、dependent 的數據、交互分析。

06 雲端運算對大數據的幫助

簡單來說,雲端提供了一個「租借」資源的方案,例如你一年要運一次貨,你當然不會買一架大貨 車,而是租。更何況在數據分析上,你買下的是數據儲存硬體,你更需要網絡、更新、處理器、人手等等。

 雲端提供商:biodata cloudcomputing

選擇時考慮:1.你們的技術水平、2.需求、3.資本、4.保密安全需求

也有企業如 Hortonworks 提供 pre-built software stack,道理就像買房子時預設有傢私,讓人更快更容易上手 ; Cloudera 則包括了 pre-installed & assembled software stack images。它們一步一步指引新手如何在雲端建立 pre-built image。

07 下載及開啟 Cloudera

下載 VirtualBox ,下載 Cloudera

開啟 VirtualBox > File > Import Appliance

big data virutal box process

然後,按檔案圖案 > 選擇 cloudera-quickstart 的 ovf 檔 > import > 按上面 Start,等待一段時間進入 Cloudera 界面。 [重要:Start 後若出現 virtualisation error 可能是你的電腦還未 enable virtualisation 設置,請到你的電腦 bios 界面 enable 該設置。]

08 應用

開啟 Terminal Shell – 電視機圖案,

big data Cloudera process1

把 txt 文件下載到 Cloudera 內的 Downloads 文件。

亦可以在 Cloudera 內的瀏覽器下載 – 地球圖案。

簡單指令:

big data Cloudera command

By |2020-04-18T23:20:03+08:00六月 2nd, 2019|Categories: Course, Digital Marketing|Tags: |0 Comments

About the Author:

Ken Chu 畢業於塔斯曼尼亞大學-工商管理。從事 Digital Marketing / Media 工作。

Leave A Comment

Facebook Box