真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Hadoop有什么用

這篇文章將為大家詳細(xì)講解有關(guān)Hadoop有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比蘇仙網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式蘇仙網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋蘇仙地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

一、Hadoop簡(jiǎn)介

A.什么是Hadoop

1.Hadoop是一個(gè)開源分布式計(jì)算平臺(tái),以HDFS(Hadoop Distributed Filesystem,Hadoop分布式文件系統(tǒng))和MapReduce為核心,為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)

2.使用HDFS分布式存儲(chǔ)方式,提高了讀寫速度,擴(kuò)大了存儲(chǔ)容量,采用MapReduce來整合分布式文件系統(tǒng)上的數(shù)據(jù),可以保證分析和處理數(shù)據(jù)的高效,還采用存儲(chǔ)冗余數(shù)據(jù)的方式保證了數(shù)據(jù)的安全性;HDFS的高容錯(cuò)特性,使得Hadoop可以部署在低廉的計(jì)算機(jī)集群中,同時(shí)不限于某個(gè)操作系統(tǒng)

3.Hadoop優(yōu)勢(shì):高可靠性、高擴(kuò)展性、高效性、高容錯(cuò)性

B.Hadoop項(xiàng)目及其結(jié)構(gòu)

1.Core/Common,是為Hadoop其他子項(xiàng)目提供支持的常用工具,包括FileSystem、RPC和串行化庫(kù)

2.Avro,用于數(shù)據(jù)序列化的系統(tǒng)

3.MapReduce,是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行去處

4.HDFS,分布式文件系統(tǒng)

5.Chukwa,開源的數(shù)據(jù)收集系統(tǒng),用于監(jiān)控和分析大型分布式系統(tǒng)的數(shù)據(jù)

6.Hive,是一個(gè)建立在Hadoop基礎(chǔ)之上的數(shù)據(jù)倉(cāng)庫(kù),提供了一些用于數(shù)據(jù)整理、特殊查詢和分析存儲(chǔ)在Hadoop文件中的數(shù)據(jù)集工具

7.HBase,分布式的、面向列的開源數(shù)據(jù)庫(kù)

8.Pig,是一個(gè)對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的平臺(tái)

C.Hadoop的體系結(jié)構(gòu)

1.HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)集群由一個(gè)NameNode和若干個(gè)DataNode組成

  • NameNode:主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對(duì)文件的訪問操作,執(zhí)行文件系統(tǒng)的命名空間操作,也負(fù)責(zé)數(shù)據(jù)塊到具體DataNode的映射

  • DataNode:管理存儲(chǔ)的數(shù)據(jù),文件被分成若干個(gè)數(shù)據(jù)塊,這些個(gè)數(shù)據(jù)塊存放在一組DataNode上,負(fù)責(zé)處理文件系統(tǒng)客戶端的文件讀寫請(qǐng)求

2.MapReduce是由一個(gè)單獨(dú)運(yùn)行在主節(jié)點(diǎn)上的JobTracker和運(yùn)行在每個(gè)集群從節(jié)點(diǎn)上的TaskTracker共同組成

D.Hadoop與分布式開發(fā)

1.Hadoop是分布式軟件系統(tǒng)中文件系統(tǒng)這一層的軟件,實(shí)現(xiàn)了分布式文件系統(tǒng)和部分分布式數(shù)據(jù)庫(kù)的功能

2.MapReduce編輯模型的原理是:利用一個(gè)輸入的key/value對(duì)集合來產(chǎn)生一個(gè)輸出的key/value對(duì)集合,三個(gè)主要函數(shù):map、reduce、main

E.Hadoop計(jì)算模型——MapReduce

1.一個(gè)MapReduce作業(yè)(job)通常會(huì)把輸入的數(shù)據(jù)集切分為若干個(gè)獨(dú)立的數(shù)據(jù)塊,由map任務(wù)(task)以完全并行 的方式處理它們

F.Hadoop的數(shù)據(jù)管理

1.HDFS三個(gè)重要的組件:NameNode、DataNode、Client,Client是需要獲取分布式文件系統(tǒng)文件的應(yīng)用程序

2.HBase在分布式集群上主要領(lǐng)先由HRegion、HMaster、HClient組成的體系結(jié)構(gòu)從整體上管理數(shù)據(jù)

3.Hive是建立在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)架構(gòu),它提供了一系列的工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制

二、Hadoop的安裝與配置

1.hadoop-3.0.0-alpha3,默認(rèn)locahost:9870和localhost:50090

三、Hadoop應(yīng)用案例分析

1.大規(guī)模的數(shù)據(jù)處理經(jīng)常分為三個(gè)不同的任務(wù):數(shù)據(jù)收集、數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)表示

  • 數(shù)據(jù)準(zhǔn)備,通常被認(rèn)為是提取、轉(zhuǎn)換和加載(Extract Transform Load, ETL)數(shù)據(jù)的階段,或者認(rèn)為這個(gè)階段是數(shù)據(jù)工廠

  • 數(shù)據(jù)表示階段一般指的是數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)了客戶所需要的產(chǎn)品,客戶會(huì)根據(jù)需要選取合適的產(chǎn)品

四、MapReduce計(jì)算模型

A.MapReduce計(jì)算模型

1.在Hadoop中,用于執(zhí)行MapReduce任務(wù)的機(jī)器角色:一個(gè)是JobTracker,用于調(diào)度工作,一個(gè)集群中只有一臺(tái);另一個(gè)是TaskTracker,用于執(zhí)行工作;

2.JobTracker調(diào)度任務(wù)給TaskTracker,TaskTracker執(zhí)行任務(wù)時(shí),會(huì)返回進(jìn)度報(bào)告。JobTracker則會(huì)記錄進(jìn)度的進(jìn)行狀況,如果某個(gè)TaskTracker上的任務(wù)執(zhí)行失敗,那么JobTracker會(huì)把這個(gè)任務(wù)分配給另一臺(tái)TaskTracker,直到任務(wù)執(zhí)行完成

B.Hadoop流

1.Hadoop流提供了一個(gè)API,允許用戶使用任何腳本語言編寫map函數(shù)或reduce函數(shù),使用UNIX標(biāo)準(zhǔn)流作為程序與Hadoop之間的接口

2.Hadoop Pipes提供了一個(gè)在Hadoop上運(yùn)行C++程序的方法,pipes使用的是Sockets

五、開發(fā)MapReduce應(yīng)用程序

1.Hadoop自帶的網(wǎng)絡(luò)用戶界面:http://xxx:50030

2.性能調(diào)優(yōu):

  • 輸入的文件盡量采用大文件,避免使用小文件

  • 考慮壓縮文件

3.MapReduce工作流

  • Mapper通常用來處理輸入格式轉(zhuǎn)化、投影(選擇相關(guān)的字段)、過濾(去掉那些不感興趣的記錄)等

  • Hadoop工作流調(diào)度器(HWS)作為一個(gè)服務(wù)器,允許客戶端提交一個(gè)工作流給調(diào)度器

六、MapReduce引用案例

七、MapReduce工作機(jī)制

A.MapReduce作業(yè)的執(zhí)行流程

1.MapReduce任務(wù)的執(zhí)行總流程:代碼編寫->作業(yè)配置->作業(yè)提交->Map任務(wù)的分配和執(zhí)行->處理中間結(jié)果->Reduce任務(wù)的分配和執(zhí)行->作業(yè)完成,每個(gè)任務(wù)又包括輸入準(zhǔn)備->任務(wù)執(zhí)行->輸出結(jié)果

2.4個(gè)獨(dú)立實(shí)體:

  • 客戶端(client):編寫MapReduce代碼,配置作業(yè),提交作業(yè)

  • JobTracker:初始化作業(yè),分配作業(yè),與TaskTracker通信,協(xié)調(diào)整個(gè)作業(yè)的執(zhí)行

  • TaskTracker:保持JobTracker的通信,在分配 的數(shù)據(jù)片段上執(zhí)行Map或Reduce任務(wù),可以包含多個(gè)TaskTracker

  • HDFS:保存作業(yè)的數(shù)據(jù)、配置信息,保存作業(yè)結(jié)果

B.錯(cuò)誤處理機(jī)制

1.在集群中,任何時(shí)候都只有唯一一個(gè)JobTracker,所以JobTracker故障就是單點(diǎn)故障,一般是創(chuàng)建多個(gè)備用JobTracker節(jié)點(diǎn)

2.TaskTracker故障很正常,會(huì)由MapReduce處理

C.作業(yè)調(diào)度機(jī)制

1.Hadoop默認(rèn)FIFO調(diào)度器,還提供了支持多用戶服務(wù)和集群資源公平共享的調(diào)度器,即公平調(diào)度器(Fair Scheduler Guide)和容量調(diào)度器(Capacity Scheduler Guide)

2.shuffle過程包含在map和reduce兩端中,map端是對(duì)map的結(jié)果進(jìn)行劃分、排序和分割,然后將屬于同一個(gè)劃分的輸出合并在一起;reduce端又會(huì)將各個(gè)map送來的屬于同一個(gè)劃分 的輸出進(jìn)行合并,然后對(duì)合并結(jié)果進(jìn)行排序,最后交給reduce處理

D.任務(wù)執(zhí)行

1.推測(cè)式執(zhí)行,指當(dāng)作業(yè)的所有任務(wù)都開始運(yùn)行時(shí),JobTracker會(huì)統(tǒng)計(jì)所有任務(wù)的平均進(jìn)度,如果某個(gè)任務(wù)所在的TaskTracker節(jié)點(diǎn)由于配置比較低或CPU負(fù)載過高,導(dǎo)致任務(wù)執(zhí)行的速度比總體任務(wù)的平均速度慢,此時(shí)JobTracker就會(huì)啟動(dòng)一個(gè)新的備份任務(wù),原有任務(wù)和新任務(wù)哪個(gè)先執(zhí)行完就把另一個(gè)kill掉,缺點(diǎn)是對(duì)于代碼缺陷導(dǎo)致的問題,備份并不能解決

2.任務(wù)JVM重用、跳過壞記錄

八、Hadoop I/O操作

1.Hadoop采用CRC-32(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn),其中的32指生成 的校驗(yàn)和是32位的)的方式檢查數(shù)據(jù)完整性

2.Hadoop使用RPC來實(shí)現(xiàn)進(jìn)程間通信,使用Writables序列化機(jī)制

九、HDFS詳解

A.HDFS簡(jiǎn)介

1.特點(diǎn):處理超大文件;流式訪問數(shù)據(jù);運(yùn)行于廉價(jià)的商用機(jī)器集群上;

2.局限性:不適合低延遲數(shù)據(jù)訪問;無法高效存儲(chǔ)大量小文件;不支持多用戶寫入及任意修改文件

B.HDFS體系結(jié)構(gòu)

1.HDFS分布式文件系統(tǒng)中的文件也被劃分成塊進(jìn)行存儲(chǔ),它是文件存儲(chǔ)處理的單元,默認(rèn)塊為64MB

2.NameNode就是Master管理集群中的執(zhí)行調(diào)度,DataNode就是Worker具體任務(wù)的執(zhí)行節(jié)點(diǎn)

3.一個(gè)HDFS集群是由一個(gè)NameNode和一定數(shù)目的DataNodes組成的,一個(gè)文件其實(shí)被分成了一個(gè)或多個(gè)數(shù)據(jù)塊,這些塊存儲(chǔ)在一組DataNode上

十、Hadoop的管理

1.監(jiān)控工具:Metrics、Ganglia

2.備份工具:distcp

3.Hadoop管理命令:dfsadmin,獲取HDFS的狀態(tài)信息;fsck,檢測(cè)文件塊

十一、Hive詳解

1.Hive是一個(gè)基于Hadoop文件系統(tǒng)上的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu),它為數(shù)據(jù)倉(cāng)庫(kù)提供了許多功能:數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、數(shù)據(jù)存儲(chǔ)管理和大型數(shù)據(jù)集的查詢與分析能力,同時(shí)Hive還定義了類SQL語言——Hive QL

2.Hive中主要包含四類數(shù)據(jù)模型:表(Table)、外部表(External Table)、分區(qū)(Partition)、桶(Bucket)

十二、HBase詳解

A.HBase簡(jiǎn)介

1.特點(diǎn):向下提供了存儲(chǔ),向上提供了運(yùn)算

B.HBase的基本操作

1.單機(jī)模式可以直接運(yùn)行,分布式模式需要Hadoop

C.HBase體系結(jié)構(gòu)

1.HBase的服務(wù)器體系結(jié)構(gòu)遵從簡(jiǎn)單的主從服務(wù)器架構(gòu),由HRegion服務(wù)器群和HBase Master服務(wù)器構(gòu)成。HBase Master服務(wù)器負(fù)責(zé)管理所有的HRegion服務(wù)器,而HBase中所有的服務(wù)器都是通過ZooKeeper來進(jìn)行協(xié)調(diào),并處理HBase服務(wù)器運(yùn)行期間可能遇到的錯(cuò)誤的。HBase Master Server本身并不存儲(chǔ)HBase中的任何數(shù)據(jù),HBase邏輯上的表可能會(huì)被劃分成多個(gè)HRegion,然后存儲(chǔ)到HRegion Server群中。HBase Master Server中存儲(chǔ)的是從數(shù)據(jù)到HRegion Server的映射

D.HBase數(shù)據(jù)模型

1.HBase是一個(gè)類似Bigtable的分布式數(shù)據(jù)庫(kù),它是一個(gè)稀疏的長(zhǎng)期存儲(chǔ)的(存在硬盤上)、多維度的、排序的映射表。這張表的索引是行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳。HBase中的數(shù)據(jù)都是字符串,沒有類型

2.列名字的格式是“:”,都是由字符串組成的,每一張表有一個(gè)一列族(family)集合,這個(gè)集合是固定不變的,只能通過改變表結(jié)構(gòu)來改變;寫操作是鎖行的;所有數(shù)據(jù)庫(kù)更新都有一個(gè)時(shí)間戳標(biāo)記,每個(gè)更新都是一個(gè)新的版本,HBase會(huì)保留一定數(shù)量的版本

E.HBase與RDBMS

1.只有簡(jiǎn)單的字符串類型

2.只有很簡(jiǎn)單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有復(fù)雜的表間關(guān)系

3.是基于列存儲(chǔ)的,每個(gè)列族都由幾個(gè)文件保存

4.更新操作會(huì)保留舊版本,不是傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)里的替換修改

5.能夠輕易地增加或減少硬件數(shù)量,對(duì)錯(cuò)誤兼容性高

6.適應(yīng)海量存儲(chǔ)和互聯(lián)網(wǎng)應(yīng)用的需要,利用廉價(jià)的硬件設(shè)備組建數(shù)據(jù)倉(cāng)庫(kù),原本就是作為一個(gè)搜索引擎的一部分開發(fā)出來的

十三、Mahout詳解

A.Mahout簡(jiǎn)介

1.Apache Mahout的主要目標(biāo)是建立可伸縮的機(jī)器學(xué)習(xí)算法,這種可伸縮性是針對(duì)大規(guī)模的數(shù)據(jù)集而言的

B.Mahout中的聚類和分類

1.Mahout中三種向量:稠密向量(DenseVector)、隨機(jī)訪問向量(RandomAccessSparseVector)和序列訪問向量(SequentialAccessSparseVector)

十四、Pig詳解

A.Pig簡(jiǎn)介

1.Pig包括用來描述數(shù)據(jù)分析程序的高級(jí)程序語言,以及對(duì)這些程序進(jìn)行評(píng)估的基礎(chǔ)結(jié)構(gòu)。突出的特點(diǎn)就是它的結(jié)構(gòu)經(jīng)得起大量并行 任務(wù),使得它能夠?qū)Υ笠?guī)模數(shù)據(jù)集進(jìn)行處理

2.Pig使用Pig Latin語言,類似SQL,偏重查詢

十五、Zookeeper詳解

A.ZooKeeper簡(jiǎn)介

1.ZooKeeper是一個(gè)為分布式應(yīng)用所設(shè)計(jì)的開源協(xié)調(diào)服務(wù),可以為用戶提供同步、配置管理、分組和命名等服務(wù)

2.設(shè)計(jì)目標(biāo):

  • 簡(jiǎn)單化:允許分布式的進(jìn)程通過共享體系的命名空間來進(jìn)行協(xié)調(diào),這個(gè)命名空間組織與標(biāo)準(zhǔn)的文件系統(tǒng)非常相似,它是由一些數(shù)據(jù)寄存器組成的

  • 健壯性:組成ZooKeeper服務(wù)的服務(wù)器必須互相知道其他服務(wù)器的存在

  • 有序性:可以為每一次更新操作賦予一個(gè)版本號(hào),并且此版本號(hào)是全局有序的,不存在重復(fù)的情況

  • 速度優(yōu)勢(shì):在上千臺(tái)機(jī)器節(jié)點(diǎn)上運(yùn)行

B.ZooKeeper的Leader選舉

1.ZooKeeper需要在所有的服務(wù)(可以理解為服務(wù)器)中選舉出一個(gè)Leader,然后讓這個(gè)Leader來負(fù)責(zé)管理集群,其他為Follower。當(dāng)Leader出現(xiàn)故障時(shí),ZooKeeper要能夠快速地在Follower中選舉出下一個(gè)Leader,這就是ZooKeeper的Leader機(jī)制

C.ZooKeeper鎖服務(wù)

1.在ZooKeeper中,完全分布的鎖是全局同步的,也就是說,在同一時(shí)刻,不會(huì)有兩個(gè)不同的客戶端認(rèn)為他們持有了相同的鎖

E.典型應(yīng)用場(chǎng)景(網(wǎng)上找的)

1.統(tǒng)一命名服務(wù)

2.配置管理:配置信息完全可以交給 Zookeeper 來管理,將配置信息保存在 Zookeeper 的某個(gè)目錄節(jié)點(diǎn)中,然后將所有需要修改的應(yīng)用機(jī)器監(jiān)控配置信息的狀態(tài),一旦配置信息發(fā)生變化,每臺(tái)應(yīng)用機(jī)器就會(huì)收到 Zookeeper 的通知,然后從 Zookeeper 獲取新的配置信息應(yīng)用到系統(tǒng)中

3.集群管理:實(shí)現(xiàn)方式都是在 Zookeeper 上創(chuàng)建一個(gè) EPHEMERAL 類型的目錄節(jié)點(diǎn),然后每個(gè) Server 在它們創(chuàng)建目錄節(jié)點(diǎn)的父目錄節(jié)點(diǎn)上調(diào)用 getChildren(String path, boolean watch) 方法并設(shè)置 watch 為 true,由于是 EPHEMERAL 目錄節(jié)點(diǎn),當(dāng)創(chuàng)建它的 Server 死去,這個(gè)目錄節(jié)點(diǎn)也隨之被刪除,所以 Children 將會(huì)變化,這時(shí) getChildren上的 Watch 將會(huì)被調(diào)用,所以其它 Server 就知道已經(jīng)有某臺(tái) Server 死去了。新增 Server 也是同樣的原理

4.共享鎖

5.隊(duì)列管理

十六、Avro詳解

A.Avro簡(jiǎn)介

1.Avro是一個(gè)數(shù)據(jù)序列化的系統(tǒng),可以將數(shù)據(jù)結(jié)構(gòu)或?qū)ο筠D(zhuǎn)化成便于存儲(chǔ)或傳輸?shù)母袷?,特別是設(shè)計(jì)之初它可以用來支持?jǐn)?shù)據(jù)密集型應(yīng)用,適合于大規(guī)模數(shù)據(jù)的存儲(chǔ)和交換

2.Avro模式是用JSON定義的,提供與Thrift和Protocol Buffers等系統(tǒng)相似的功能

十七、Chukwa詳解

A.Chukwa簡(jiǎn)介

1.Chukwa能通過擴(kuò)展處理大量的客戶端請(qǐng)求,并且能匯聚多路客戶端的數(shù)據(jù)流,采用的是流水式數(shù)據(jù)處理方式和模塊化結(jié)構(gòu)的收集系統(tǒng),在每一個(gè)模塊中有一個(gè)簡(jiǎn)單規(guī)范的接口

B.Chukwa架構(gòu)

1.有三個(gè)主要組成部分:

客戶端(Agent):使內(nèi)部進(jìn)程通信協(xié)議能夠兼容處理本地的日志文件

收集器(Collector)和分離器(Demux):利用了Collectors策略

HICC(Hadoop Infrastructure Care Center):數(shù)據(jù)可視化頁面

十八、Hadoop的常用插件與開發(fā)

1.Hadoop Studio

2.Hadoop Eclipse

3.Hadoop Streaming:幫助用戶創(chuàng)建和運(yùn)行一類特殊的MapReduce作業(yè),這些作業(yè)由一些可執(zhí)行文件或腳本文件充當(dāng)mapper或reducer,也就是允許使用非Java語言

4.Hadoop Libhdfs:是一個(gè)基于C編程接口的為Hadoop分布式文件系統(tǒng)開發(fā)的JNI,提供了一個(gè)C語言接口以結(jié)合管理DFS文件和文件系統(tǒng)

關(guān)于“Hadoop有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


文章標(biāo)題:Hadoop有什么用
網(wǎng)頁路徑:http://weahome.cn/article/iechie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部