中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop基本概念

發布時間:2020-07-01 08:47:07 來源:網絡 閱讀:578 作者:玄燁918 欄目:大數據

Hadoop是一個是個海量數據的分布式存儲和計算平臺

  對于數據,我們大致可以將其分為三類:

                         結構化數據(對于結構化數據的處理可以通過RDBMS處理,通過將搜索碼創建為索引頁可以實現很快的查詢速度)

                        半結構化數據(一般可以使用類型XML進行標記處理)

                         非結構化數據

其實,非結構化數據會占據相當大的比重,非機構化數據的存儲和計算也變得比較困難。

  Hadoop的靈感來自于Google的兩篇論文,包括MapReduce,我們可以將Hadoop理解為是MapReduce的開源實現,Hadoop是由java語言編寫的。

  首先,對于海量數據,需要完成對其進行存儲然后進行就算,分析。

HDFS:Hadoop分布式文件系統

MapReduce:Hadoop用于完成并行數據處理的框架

 可以理解為Hadoop=HDFS+MapReduce,也就是可以理解為一個Hadoop集群就是一個HDFS集群加上一個MapReduce集群。

HDFS如何完成分布式存儲:

   HDFS集群中一般會有一個主節點(在Hadoop的新版本中,已經實現有多個主節點),稱之為NameNode(簡稱為NN)

   HDFS中會有n個從節點,稱之為DataNode(DN)

實際完成數據存儲的都是數據節點,而NameNode主要是用于將數據分塊,分塊之后再分配給數據節點進行存儲,另外,NameNode用于接收用戶請求,管理從節點,維護文件系統的目錄結構,管理文件與Block之間的關系,block與數據節點之間的關系,從而完成分布式存儲海量數據的目的。


HDFS的特性:HDFS設計用于存儲大文件,對于海量小文件的存儲不太適用

        HDFS是用戶空間的文件系統(其實數據最終還是存儲在諸如ext3文件系統上,只不過需要經過HDFS的又一次對數據進行抽象)

        HDFS不支持修改數據(新版本支持追加)

        不支持掛載并通過系統調用進行訪問,只能使用專用訪問借口,例如專用的命令行工具,API


MapReduce,一般提到MapReduce,其有三個含義:

                            編程模型

                            運算框架

                           MapReduce編程思想的具體實現工具

MapReduce的思想大致就是分為兩個階段:Map和Reduce

           Map就是將對一個大文件的處理分割成塊進行計算,實現分布式

           Reduce就是將對各個塊的計算結果再進行匯總

對數據計算其實就是提取Key-Value的方式,在進行Map之后交由Reduce的時候,必須要將同一個Key提取的內容發送至同一個Reduce進程進行最后的合并

對于數據的計算,需要處理人員按照MapReduce的編程模型結合對數據的處理目的編寫MapReduce程序,所以對于海量數據的計算在HDFS+MapReduce結合上有著極大的限制性。

  Hadoop同時也有很多的組件,從而構成了Hadoop的生態系統:

 Hadoop基本概念

HDFS+MapReduce構成了Hadoop的核心:

  Hive:Hive是由Facebook開發的,Hive將整個MapReduce提供的框架抽象為一個系統,當用戶想要就行查詢等操作的時候,就可以想Hive提交一個SQL語句,然后由Hive實現將用戶便于理解的SQL語句轉換成為一個MapReduce程序執行,最后向用戶輸出結果(可以理解成Hive提供了一個SQL接口,但是并不和SQL完全兼容)

  Hbase:由于HDFS不能掛載,也不能修改數據,當Hbase工作在HDFS之上的時候,構成一個Hbase集群,在Hbase的節點上再啟動一個進程,這時數據可以先存在Hbase上,然后再由Hbase將其存入HDFS,并且Hbase對數據記錄有版本號,實現了對數據進行修改

  在很多情況下,我們需要對例如web服務器集群產生的日志進行分析計算,那么如何將web服務器產生的日志存儲到HDFS上,首先,HDFS不能被掛載,所以就不能像對待一本文件系統沒那個一樣對其進行寫入,這就是Flume,scrib這些日志收集工具實現將日志存儲到HDFS上的。

  同上,很多情況下可能需要借助于集群的威力對存儲在RDBMS上的數據進行分析計算和挖掘,那么如何將RDBMS中的數據導入到HDFS上,就是有Sqoop工具實現的,可以將數據用Sqoop從RDBMS導出,先存儲到Hbase上,再由Hbase實現存儲到HDFS上,之后就可以通過編寫的MapReduce程序對數據進行運算

  MAhost就是用于數據挖掘,也就是機器學習的工具

 Zookeeper:可以理解其就是一個協調器,監控集群上的各個節點是否能夠符合集群的要求


Hadoop在HDFS提供改良數據存儲的方案上表現還是比較出色的,但是MapReduce的計算能力就稍有遜色,可以結合第二代大數據解決方案spark,使用HDFS完成海量數據的分布式存儲,有spark提供對海量數據的運算

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉安市| 芒康县| 绥滨县| 黄平县| 滨海县| 南京市| 沙田区| 广安市| 麻阳| 新田县| 棋牌| 哈尔滨市| 湘潭县| 廉江市| 金乡县| 乃东县| 湄潭县| 禹城市| 象山县| 广德县| 靖宇县| 巴南区| 崇明县| 阜新| 盈江县| 临高县| 进贤县| 西乡县| 屏南县| 会理县| 宁晋县| 仪征市| 丰都县| 瓮安县| 呼图壁县| 蒙阴县| 重庆市| 奈曼旗| 文成县| 阳泉市| 探索|