參加Hive和Pig(兩個hadoop數據查詢、處理工具)培訓的一些體會


 
 前一段時間開始看Hadoop的資料,希望通過自學能了解相關的基本知識技能。不過發現有些困難。首先是hadoop是安裝在liuux上的,其次hadoop的開發語言是java。我對linux和java都不熟悉。自學有困難。不過這還不是最困難的。最困難的是hadoop相關的公開的學習資料太少。官網上的教程經常有小錯誤走不下去。
 
 后來看到Cloudera公司授權的國內的一個hadoop培訓(http://www.ruanko.com/portal/hadoop/Cloudera_Hive_and_Pig_Training.html),報名參加了一門最感興趣的數據查詢和處理的課。還有兩門課分別是hadoop的管理和hadoop的開發。
 
 Hadoop是開源軟件。Cloudera公司提供開源的、比較穩定的編譯后的版本,這個版本簡稱CDH。另外還有兩家公司提供不開源的穩定的版本。Cloudera公司以提供Hadoop的培訓和支持為主要業務。我參加的這個培訓是Cloudera公司授權的首次國內培訓。


 Hive和Pig是hadoop之上的兩個數據查詢和處理的工具。Hive的語法與SQL很像。Pig是一種處理數據的腳本語言。如果不用Hive和Pig之類的工具,而是用Hodoop上的原生態的Java的來查數據的話,開發效率比較低。一個簡單的sql需要寫一頁代碼。
 
 Hadoop的數據實際是存在文件系統中的。沒有像關系數據庫那樣的各種對數據的校驗約束機制。因此保存數據的時候,使用Pig之類的腳本來做預處理就比較有必要了。
 
 Hive運行在可以連接到hadoop的客戶端上。Hive創建的表並不會保存到Hadoop之上。只會保存到運行Hive的Client上。這是與關系型數據庫非常不同的一個特點。從這個特點看Hadoop更像是文件系統而不是數據庫。
 
 如果需要處理二進制數據,那么Hadoop和Pig都不適合。
 
 除此之外,常見的數據查詢功能,Hive和Pig都可以實現。不過Hive和Pig都不支持對數據的修改。Hive還有一些特有的統計功能,比SQL實現起來簡潔。
 
 Hadoop不是關系型數據庫,目前還沒支持索引。查詢起來速度當然比不上關系型數據庫。在練習用的單獨的虛擬機上,最大的表數據量只有10萬,許多普通的查詢也要1-2分鍾。
 
 這個培訓課,基本上算是一個入門。我感覺僅僅是對Hadoop,Hive,Pig有了一些基本的了解。想要熟練掌握,我認為還是需要通過實戰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM