大資料時代之hadoop(六):hadoop 生態圈(pig,hive,hbase,ZooKeeper,Sqoop)
大資料時代之hadoop(三):hadoop資料流(生命週期)
大資料時代之hadoop(四):hadoop 分散式檔案系統(HDFS)
大資料時代之hadoop(五):hadoop 分散式計算框架(MapReduce)
hadoop是有apache基金會所開發的分散式系統基礎架構,其主要提供了兩方面的功能:分散式儲存和分散式計算。其中分散式儲存是分散式計算的基礎,在hadoop的實現裡面,提供了分散式儲存的介面,並自己實現了一個分散式儲存的實現即HDFS,但並不代表hadoop只支援HDFS這一中實現,其同時支援別的儲存系統,並在別的儲存系統上執行分散式計算程式(mapreduce)。
從開發角度來說,hadoop給開發人員預留了兩個介面,即map介面和reduce介面,而整個作業的處理流程是固定的,即使用者所能做的就是根據具體的專案需求來找到合適的方法實現自己的map函式和reduce函式,從而達到目的。
從整體上來學習hadoop畢竟還是有點難度的,但已經有一些開源的工具已經替我們做了很多,如pig,hive,hbase等,本節的重點在於瞭解這些構建在hadoop基礎之上的一些開源工具,也可稱為hadoop的生態圈吧。
1、pig
pigs eat anything!
pig 是Yahoo 為了讓研究員和工程師能夠更簡單的挖掘大規模資料集而發明的。
pig為大型資料集的處理提供了更高層次的抽象。MapReduce使程式設計師能夠自定定義連續執行的map和reduce函式。但是,資料處理通常需要多個mapreduce過程才能實現,所以將資料處理要求改寫成mapreduce模式很複雜的。
與mapreduce相比,pig提供了更豐富的資料結構,還提供了一套強大的資料變換操作。
Pig包括兩部分:
用於描述資料流的語言,稱為pig latin。
用於執行pig latin程式的執行環境。用兩種模式:單JVM中的本地環境和hadoop叢集上的分散式執行環境。
一個pig latin程式有一系列的“操作(operation)”和“變換(transformation)”組成。每個操作或變換對輸入進行處理,然後產生輸出結果。這些操作整體上描述了一個資料流。Pig執行環境把資料流翻譯成可執行的內部表示,並執行它。
示例:
--載入資料,並按照as 後指定的格式載入
records = load ‘/home/user/input/temperature1.txt’ as (year: chararray,temperature: int);
--列印records 物件
dump records;
describe records;
--過濾掉temperature!=999的資料
valid_records = filter records by temperature!=999;
--按year分組
grouped_records = group valid_records by year;
dump grouped_records;
describe grouped_records;
--取最大數
max_temperature = foreach grouped_records generate group,MAX(valid_records.temperature);
--備註:valid_records是欄位名,在上一語句的describe命令結果中可以檢視到group_records 的具體結構。
dump max_temperature;
與傳統資料庫比較:
pig latin 是一種資料流程式語言,而SQL是一種描述性程式語言。
pig 不支援事物和索引,不支援低延時查詢。
2、hive
Hive是一個構建在hadoop上的資料倉儲框架,它的設計目的是讓精通SQL技能分析師能夠在facebook存放在hdfs的大規模資料集進行查詢。
HIVE會把查詢轉換為一系列在hadoop叢集上執行的mapreduce作業。hive把資料組織為表,通過這種方式為儲存在HDFS的資料賦予結構。後設資料如表模式儲存在名為metastore的資料庫中。
示例:
(1)建立表
CREATE TABLE csdn (username STRING,passw STRING,mailaddr STRING) row format delimited fields terminated by '#';
(2)load本地檔案進csdn表:
LOAD DATA LOCAL INPATH '/home/development/csdnfile' OVERWRITE INTO TABLE csdn;
(3) 執行查詢並將結果輸出至本地目錄:
INSERT OVERWRITE LOCAL DIRECTORY '/home/development/csdntop' SELECT passw,count(*) as passwdnum FROM csdn group by passw order by passwdnum desc;
與傳統資料庫比較:
hive介於pig和傳統RDBMS之間,hive的查詢語言HiveQL,是基於SQL的。
hive對資料的驗證並不在載入資料時進行,而在查詢時進行,稱為“讀時模式”,而傳統的資料庫是“寫真實模式”。
hive也不支援事物和索引,不支援低延時查詢。
3、hbase
HBase是一個在HDFS上開發的面向列的分散式資料庫,並支援實時地隨機讀寫超大規模資料集。
hbase是我們能夠在廉價硬體構成的叢集上管理超大規模的稀疏表。
資料模型
在hbase中,表格是由版本的,單元格的內容是位元組陣列,表中的行的主鍵也是位元組陣列,所有對錶的訪問都要通過標的主鍵。
一個表的列族必須作為表模式定義的一部分預先給出,但是列族中新的列成員可以隨後按需加入。
hbase是有一個面向列族的儲存器,即按列族儲存。hbase在水平方向上把表分採“區域”儲存,每個區域有表中的子集構成。
hbase是一個分散式的、面向列的資料儲存系統。
4、ZooKeeper
ZooKeeper是hadoop的分散式協調服務,誕生於Yahoo公司。
ZooKeeper提供了一組工具,使我們在構建分散式引用時能夠對部分失敗進行處理。
5、Sqoop
Sqoop是一個開源工具,它允許使用者將資料從關係型資料庫抽取到hadoop中,用以進一步處理。抽取處理的資料可以被mapreduce程式使用,也可以被其他類似於hive的工具使用。一旦形成分析結果,Sqoop便可以將這些結果導回資料庫,供其他客戶端使用。
相關文章
- Hadoop 基礎之生態圈Hadoop
- Hadoop大資料平臺之HBase部署Hadoop大資料
- Hadoop大資料實戰系列文章之HBaseHadoop大資料
- Hadoop大資料實戰系列文章之HiveHadoop大資料Hive
- Hadoop大資料實戰系列文章之ZookeeperHadoop大資料
- 大資料技術之Hadoop(入門) 第2章 從Hadoop框架討論大資料生態大資料Hadoop框架
- Hadoop叢集之 ZooKeeper和Hbase環境搭建Hadoop
- Hadoop基礎(二):從Hadoop框架討論大資料生態Hadoop框架大資料
- Hadoop系列002-從Hadoop框架討論大資料生態Hadoop框架大資料
- 大資料之hadoop / hive / hbase 的區別是什麼?有什麼應用場景?大資料HadoopHive
- Hadoop演進與Hadoop生態Hadoop
- 【Hadoop】9、Sqoop元件Hadoop元件
- Hadoop Sqoop介紹Hadoop
- CDH版Hadoop-zookeeper-hbase-spark安裝文件HadoopSpark
- Hadoop高階資料分析 使用Hadoop生態系統設計和構建大資料系統Hadoop大資料
- Hadoop大資料實戰系列文章之安裝HadoopHadoop大資料
- BDA:Hadoop生態大資料工具的漏洞掃描器Hadoop大資料
- 大資料實戰之hadoop生態概況和官網文件解讀大資料Hadoop
- 大資料hadoop入門之hadoop家族產品詳解大資料Hadoop
- 大資料測試之hadoop初探大資料Hadoop
- IT十年-大資料系列講解之hadoop生態系統及版本演化大資料Hadoop
- 大資料hadoop資料大資料Hadoop
- 大資料之Pig和Sqoop-李強強-專題視訊課程大資料OOP
- Hadoop大資料部署Hadoop大資料
- 大資料hadoop工具大資料Hadoop
- 【Hadoop】HBase元件配置Hadoop元件
- Hadoop大資料平臺之Kafka部署Hadoop大資料Kafka
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- Hadoop Hive介紹HadoopHive
- 大資料之Hadoop偽分散式的搭建大資料Hadoop分散式
- 小白學習大資料測試之hadoop大資料Hadoop
- **大資料hadoop瞭解**大資料Hadoop
- 大資料學習之Hadoop如何高效處理大資料大資料Hadoop
- Hadoop系列之Hbase的高可用完全分佈模式的安裝(六)Hadoop模式
- 初入Hadoop生態系統Hadoop
- Hadoop Hive遷移至MaxComputeHadoopHive
- 【Hadoop】pyhton連結hiveHadoopHive
- 【重製版】全網最詳細ubuntu虛擬機器搭建hadoop+spark+zookeeper+hbase+kafka大資料環境Ubuntu虛擬機HadoopSparkKafka大資料
- 大資料技術之Hadoop(入門)第3章 Hadoop執行環境搭建大資料Hadoop