1. 程式人生 > >day06.Hadoop快速入門&雲服務三種模式IaaS,PaaS和SaaS【大資料教程】

day06.Hadoop快速入門&雲服務三種模式IaaS,PaaS和SaaS【大資料教程】


day06.Hadoop快速入門&雲服務三種模式IaaS,PaaS和SaaS【大資料教程】

1. HADOOP背景介紹

1.1 什麼是HADOOP

1). HADOOPapache旗下的一套開源軟體平臺

2). HADOOP提供的功能:利用伺服器叢集,根據使用者的自定義業務邏輯,對海量資料進行分散式處理

3). HADOOP的核心元件有

A. HDFS(分散式檔案系統)

B. YARN(運算資源排程系統)

C. MAPREDUCE(分散式運算程式設計框架)

4). 廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態圈

1.2 HADOOP產生背景

1). HADOOP最早起源於Nutch

Nutch的設計目標是構建一個大型的全網搜尋引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴充套件性問題——如何解決數十億網頁的儲存和索引問題。

2). 2003年、2004年穀歌發表的兩篇論文為該問題提供了可行的解決方案。

——分散式檔案系統(GFS),可用於處理海量網頁的儲存

——分散式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。

3). Nutch的開發人員完成了相應的開源實現HDFSMAPREDUCE,並從Nutch中剝離成為獨立專案HADOOP,到20081月,HADOOP成為Apache頂級專案,迎來了它的快速發展期。

1.3 HADOOP在大資料、雲端計算中的位置和關係

1). 雲端計算是分散式計算、平行計算、網格計算、多核計算、網路儲存、虛擬化、負載均衡等傳統計算機技術和網際網路技術融合發展的產物。藉助IaaS(基礎設施即服務)PaaS(平臺即服務)SaaS(軟體即服務)等業務模式,把強大的計算能力提供給終端使用者。 

2). 現階段,雲端計算的兩大底層支撐技術虛擬化”和“大資料技術

3). HADOOP則是雲端計算的PaaS層的解決方案之一,並不等同於PaaS,更不等同於雲端計算本身。

1.4 國內外HADOOP應用案例介紹

1).HADOOP應用於資料服務基礎平臺建設

2).HADOOP用於使用者畫像

3).HADOOP用於網站點選流日誌資料探勘

1.5 
國內HADOOP的就業情況分析

1).HADOOP就業整體情況

A. 大資料產業已納入國家十三五規劃

B. 各大城市都在進行智慧城市專案建設,而智慧城市的根基就是大資料綜合平臺

C. 網際網路時代資料的種類,增長都呈現爆發式增長,各行業對資料的價值日益重視

D. 相對於傳統JAVAEE技術領域來說,大資料領域的人才相對稀缺

E. 隨著現代社會的發展,資料處理和資料探勘的重要性只會增不會減,因此,大資料技術是一個尚在蓬勃發展且具有長遠前景的領域

2).HADOOP就業職位要求

大資料是個複合專業,包括應用開發、軟體平臺、演算法、資料探勘等,因此,大資料技術領域的就業選擇是多樣的,但就HADOOP而言,通常都需要具備以下技能或知識:

     A. HADOOP分散式叢集的平臺搭建

     B. HADOOP分散式檔案系統HDFS的原理理解及使用

     C. HADOOP分散式運算框架MAPREDUCE的原理理解及程式設計

     D. Hive資料倉庫工具的熟練應用

     E. Flumesqoopoozie等輔助工具的熟練使用

     F. Shell/python等指令碼語言的開發能力

3).HADOOP相關職位的薪資水平

大資料技術或具體到HADOOP的就業需求目前主要集中在北上廣深一線城市,薪資待遇普遍高於傳統JAVAEE開發人員,以北京為例:

1.6 HADOOP生態圈以及各組成部分的簡介

各元件簡介

HADOOP(hdfsMAPREDUCEyarn元老級大資料處理技術框架,擅長離線資料分析

Zookeeper 分散式協調服務基礎元件

Hbase  分散式海量資料庫,離線分析和線上業務通吃

Hive sql  資料倉庫工具,使用方便,功能豐富,基於MR延遲大

Sqoop 資料匯入匯出工具

Flume 資料採集框架

重點元件:

HDFS分散式檔案系統

MAPREDUCE分散式運算程式開發框架

HIVE基於大資料技術(檔案系統+運算框架)的SQL資料倉庫工具

HBASE基於HADOOP的分散式海量資料庫

ZOOKEEPER分散式協調服務基礎元件

Mahout基於mapreduce/spark/flink等分散式運算框架的機器學習演算法庫

Oozie工作流排程框架

Sqoop資料匯入匯出工具

Flume日誌資料採集框架

分散式系統概述

注:由於大資料技術領域的各類技術框架基本上都是分散式系統,因此,理解hadoopstormspark等技術框架,都需要具備基本的分散式系統概念

2.1 分散式軟體系統(Distributed Software Systems)

  • 該軟體系統會劃分成多個子系統或模組,各自執行在不同的機器上,子系統或模組之間通過網路通訊進行協作,實現最終的整體功能

  • 比如分散式作業系統、分散式程式設計語言及其編譯(解釋)系統、分散式檔案系統和分散式資料庫系統等。

2.2 分散式軟體系統舉例:solrcloud

A. 一個solrcloud叢集通常有多臺solr伺服器

B. 每一個solr伺服器節點負責儲存整個索引庫的若干個shard(資料分片)

C. 每一個shard又有多臺伺服器存放若干個副本互為主備用

D. 索引的建立和查詢會在整個叢集的各個節點上併發執行

E. solrcloud叢集作為整體對外服務,而其內部細節可對客戶端透明

總結:利用多個節點共同協作完成一項或多項具體業務功能的系統就是分散式系統。

2.3 分散式應用系統模擬開發

需求:可以實現由主節點將運算任務發往從節點,並將各從節點上的任務啟動;

程式清單:

AppMaster

AppSlave/APPSlaveThread

Task

程式執行邏輯流程:

3. 離線資料分析流程介紹

注:本環節主要感受資料分析系統的巨集觀概念及處理流程,初步理解hadoop等框架在其中的應用環節,不用過於關注程式碼細節

一個應用廣泛的資料分析系統:“web日誌資料探勘”

3.1 需求分析

3.1.1 案例名稱

“網站或APP點選流日誌資料探勘系統”。

一般中型的網站(10WPV以上),每天會產生1G以上Web日誌檔案。大型或超大型的網站,可能每小時就會產生10G的資料量。

具體來說,比如某電子商務網站,在線團購業務。每日PV100w,獨立IP5w。使用者通常在工作日上午10:00-12:00和下午15:00-18:00訪問量最大。日間主要是通過PC端瀏覽器訪問,休息日及夜間通過移動裝置訪問較多。網站搜尋瀏量佔整個網站的80%PC使用者不足1%的使用者會消費,移動使用者有5%會消費。

對於日誌的這種規模的資料,用HADOOP進行日誌分析,是最適合不過的了。

3.1.2 案例需求描述

Web點選流日誌”包含著網站運營很重要的資訊,通過日誌分析,我們可以知道網站的訪問量,哪個網頁訪問人數最多,哪個網頁最有價值,廣告轉化率、訪客的來源資訊,訪客的終端資訊等。

3.1.3 資料來源

本案例的資料主要由使用者的點選行為記錄

獲取方式:在頁面預埋一段js程式,為頁面上想要監聽的標籤繫結事件,只要使用者點選或移動到標籤,即可觸發ajax請求到後臺servlet程式,用log4j記錄下事件資訊,從而在web伺服器(nginxtomcat等)上形成不斷增長的日誌檔案。

形如:

58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"

3.2 資料處理流程

3.2.1 流程圖解析

本案例跟典型的BI系統極其類似,整體流程如下:

但是,由於本案例的前提是處理海量資料,因而,流程中各環節所使用的技術則跟傳統BI完全不同,後續課程都會一一講解:

1) 資料採集:定製開發採集程式,或使用開源框架FLUME

2) 資料預處理:定製開發mapreduce程式運行於hadoop叢集

3) 資料倉庫技術:基於hadoop之上的Hive

4) 資料匯出:基於hadoopsqoop資料匯入匯出工具

5) 資料視覺化:定製開發web程式或使用kettle等產品

6) 整個過程的流程排程:hadoop生態圈中的oozie工具或其他類似開源產品

3.2.2 專案技術架構圖

3.2.3 專案相關截圖(感性認識,欣賞即可)

a) Mapreudce程式執行

b) Hive中查詢資料

c) 將統計結果匯入mysql

./sqoop export --connect jdbc:mysql://localhost:3306/weblogdb --username root --password root  --table t_display_xx  --export-dir /user/hive/warehouse/uv/dt=2014-08-03

3.3 專案最終效果

經過完整的資料處理流程後,會週期性輸出各類統計指標的報表,在生產實踐中,最終需要將這些報表資料以視覺化的形式展現出來,本案例採用web程式來實現資料視覺化

效果如下所示:

4. 叢集搭建

4.1 HADOOP叢集搭建

4.1.1叢集簡介

HADOOP叢集具體來說包含兩個叢集:HDFS叢集和YARN叢集,兩者邏輯上分離,但物理上常在一起

HDFS叢集:

負責海量資料的儲存,叢集中的角色主要有 NameNode / DataNode

YARN叢集:

負責海量資料運算時的資源排程,叢集中的角色主要有 ResourceManager /NodeManager

(mapreduce是什麼呢?它其實是一個應用程式開發包)

本叢集搭建案例,以5節點為例進行搭建,角色分配如下:

hdp-node-01    NameNode  SecondaryNameNode

hdp-node-02    ResourceManager

hdp-node-03  DataNode    NodeManager

hdp-node-04  DataNode    NodeManager

hdp-node-05  DataNode    NodeManager

部署圖如下:

4.1.2伺服器準備

本案例使用虛擬機器伺服器來搭建HADOOP叢集,所用軟體及版本:

  • Vmware 11.0

  • Centos  6.5  64bit

4.1.3網路環境準備

  • 採用NAT方式聯網

  • 閘道器地址:192.168.33.1

  • 3個伺服器節點IP地址:192.168.33.101、192.168.33.102、192.168.33.103

  • 子網掩碼:255.255.255.0

4.1.4伺服器系統設定

  • 新增HADOOP使用者

  • 為HADOOP使用者分配sudoer許可權

  • 同步時間

  • 設定主機名

    • hdp-node-01

    • hdp-node-02

    • hdp-node-03

  • 配置內網域名對映:

    • 192.168.33.101          hdp-node-01

    • 192.168.33.102          hdp-node-02

    • 192.168.33.103          hdp-node-03

配置ssh免密登陸

配置防火牆

4.1.5 Jdk環境安裝

  • 上傳jdk安裝包

  • 規劃安裝目錄  /home/hadoop/apps/jdk_1.7.65

  • 解壓安裝包

  • 配置環境變數 /etc/profile

4.1.6 HADOOP安裝部署

  • 上傳HADOOP安裝包

  • 規劃安裝目錄  /home/hadoop/apps/hadoop-2.6.1

  • 解壓安裝包

  • 修改配置檔案  $HADOOP_HOME/etc/hadoop/

最簡化配置如下:

vi  hadoop-env.sh

# The java implementation to use.

export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_51

vi  core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-node-01:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/HADOOP/apps/hadoop-2.6.1/tmp</value>

</property>

</configuration>

vi  hdfs-site.xml

相關推薦

day06.Hadoop快速入門&服務模式IaaSPaaSSaaS資料教程

day06.Hadoop快速入門&雲服務三種模式IaaS,PaaS和SaaS【大資料教程】1. HADOOP背景介紹1.1 什麼是HADOOP1). HADOOP是apache旗下的一套開源軟體

雲端計算的模式:IaaSPaaSSaaS 通俗理解

雲是分層的   其實雲端計算是分幾層的,分別是Infrastructure(基礎設施)-as-a-Service,Platform(平臺)-as-a-Service,Software(軟體)-as-a-Service。基礎設施在最下端,平臺在中間,軟體在頂端。別的一些“軟”的層可以在這些層上面新增。 為了

計算的服務模式IaaSPaaSSaaS

雲服務 互聯網 src 部分 stand googl 而且 vnc rackspace   雲服務”現在已經成了一個家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區別,那麽也沒啥,因為很多人確實不知道。  “雲”其實是互聯網的一個隱喻,“雲計算”其實就是使用

理解雲端計算服務模式——IaaSPaaSSaaS

雲端計算的服務模式仍在不斷進化,但業界普遍接受將雲端計算按照服務的提供方式劃分為三個大類: SaaS(Software as a Service–軟體即服務) PaaS(Platform as a Service–平臺即服務) IaaS(Infrastructure as a Ser

雲端計算的服務模式IaaSPaaSSaaS

原文連結:http://www.cnblogs.com/beanmoon/archive/2012/12/10/2811547.html 雲服務”現在已經快成了一個家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區別,那麼也沒啥,因為很多人確實不知道。  “雲”

計算簡介計算的模式介紹:IaaSPaaSSaaS

man 進行 流量 租用 網絡 伸縮性 height structure 操作 雲服務”現在已經快成了一個家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區別,那麽也沒啥,因為很多人確實不知道。  “雲”其實是互聯網的一個隱喻,“雲計算”其實就是使用互聯網來接

學院帶你入門計算:如何理解IaaSPaaSSaaS

雲服務 學習 操作系統 仿真 供應商 com 我們 就是 回來 今天給大家簡單介紹一下雲計算入門知識之IaaS、 PaaS、SaaS,包括雲的劃分與介紹。說到理解IaaS、 PaaS、SaaS,先從它們在雲中的定位開始。 從上圖可以看出雲從不同的角度有不同的劃分方式。按應用

IaaS PaaS SaaS服務應用模式

前言     本人之前針對IaaS型別雲服務的Openstack做出了較長時間的調研,無論是應用層面還是原始碼級別的層面,過程極其坎坷,而且並沒有覺得找到了雲端計算的核心思想。現在將其分享出來,希望能夠與大家共同探討。     雲端計算是一種基於網際網路、將分散的各種IT

學院帶你入門雲端計算:如何理解IaaSPaaSSaaS

今天給大家簡單介紹一下雲端計算入門知識之IaaS、 PaaS、SaaS,包括雲的劃分與介紹。說到理解IaaS、 PaaS、SaaS,先從它們在雲中的定位開始。 從上圖可以看出雲從不同的角度有不同的劃分方式。按應用類別,有模擬雲、遊戲雲、視訊雲等。按行業劃分,有政務雲、警務雲、教育雲等,例如政務雲,主要是服務

xml檔案的解析domSAXdom4j

目錄 一、XML檔案 student.xml <?xml version="1.0" encoding="UTF-8"?> <!-- 內嵌 --> <!DOCTYPE students [ <!ELEMENT

資料技術2.協調服務zookeeper

本文主要按以下六個部分進行描述:一、概念與作用 二、資料模型與特徵 三、角色 四、工作原理 五、選舉機制 六、zookeeper實戰操作(shell命令與API) 一、概念與作用 zookeeper主要是為分散式應用提供一致性服務 主要提供:維護配置資訊、名字服務、分散式同步、組服務 其結構

資料技術1.hadoop叢集搭建

近年來,大資料技術越來越吃香,也是追求高薪的必備技能之一。 近些日子,打算技術轉型,開始研究大資料技術,基於對JAVA、LINUX系統有一定的基礎,完成hadoop叢集搭建(1個master和1個slave)。 一、準備工具 VMvare、centOS6.3、SSH Secure客戶端(

為什麼“”越來越受歡迎?IaaSPaaSSaaS該如何選擇?

雲視訊(Cloud video )是指基於雲端計算商業模式應用的視訊網路平臺服務。而云計算就是通過 Internet(“雲”)交付伺服器、儲存空間、資料庫、網路、軟體和分析等計算服務。這些提供計算服務的公司稱為雲提供商,他們通常基於使用者使用對雲端計算服務進行收費,類

資料技術——Hadoop(1)

什麼是大資料 基本概念 《資料處理》 在網際網路技術發展到現今階段,大量日常、工作等事務產生的資料都已經資訊

關於服務類型

應用 應用軟件 saas 架構 計算 建立 類型 集群化 所有 雲計算包含三種不同服務類型:SaaS、PaaS和IaaS: 軟件即服務 (Software as a Service, SaaS)指的是通過瀏覽器,以服務形式提供給用戶應用程序。有些是由公有雲提供商提供的商用S

01:計算服務模式SaaSPaaSIaaS

運行 並行 均衡 方案 統計 調度 軟件 strong 基礎設施 1.1 雲計算   1、什麽是雲計算       1. 雲計算服務是指將大量用網絡連接的計算資源統一管理和調度,構成一個計算資源池向用戶按需服務。       2. 用戶通過網絡以按需、易擴展的方式獲得

Vsftpd文件傳輸服務(認證模式:匿名開放 、本地用戶、虛擬用戶)

mkdir 作用 HA 客戶端 .so ces cad art r文件 FTP是一種在互聯網中進行中文件傳輸的協議,基於客戶端/服務器端模式,默認使用20、21號端口,其中端口20(數據端口)用於進行數據傳輸,端口21(命令端口)用於接受客戶端發出的相關FTP命令與參數。

計算防止入坑之通過跑分看服務器的性能給各位計算入門者的一些建議

rst 應該 margin 現在 class 1.5 bre pro body 各位互聯網界的朋友,今天簡單的通過“魯大師”對現在的三款主流雲服務器進行了跑分,我選擇了阿裏雲、華為雲、新睿雲三款平臺進行測試,配置均為:2核,4G內存,40G 超高IO性能系統盤,1M帶寬,本

hadoop快速入門教程hadoop安裝包下載與監控參數說明

分布式 height tex region 集群 RoCE 發行版 store serve 前階段用了差不多兩周的時間把DKhadoop的運行環境搭建以及安裝的各個操作都介紹了一遍。關於DKhadoop安裝包下載也只是順帶說了一下,但好像大快搜索的服務器在更新,新的下載頁面

大數據學習之Hadoop快速入門

spa data 一次 架構 spark 1.7 cor catalina 工具 1、Hadoop生態概況 Hadoop是一個由Apache基金會所開發的分布式系統集成架構,用戶可以在不了解分布式底層細節情況下,開發分布式程序,充分利用集群的威力來進行高速運算與存儲,具有可