BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
BigData之Hadoop:Hadoop的簡介、深入理解、下載、案例應用之詳細攻略
?
?
?
?
目錄
Hadoop的簡介
1、HDFS體系結構圖
Hadoop的深入理解
0、深入了解Hadoop的其它相關基礎知識
0.1、Hbase數據管理——Hadoop database
0.2、Hive數據管理——建立在Hadoop上的數據倉庫基礎架構
0.3、MongDB基于分布式文件存儲數據庫
1、Hadoop的三大特性——可靠、高效、可伸縮
2、Hadoop的五大優點——高可靠性、高擴展性、高效性、高容錯性、低成本
3、Hadoop大數據處理的意義——得益于數據提取、變形和加載的天然優勢
Hadoop的下載
To verify Hadoop releases using GPG:
To perform a quick check using SHA-512:
Hadoop的案例應用
1、Hadoop:設置單節點集群
?
?
?
Hadoop的簡介
? ? ? Apache? Hadoop? 項目為可靠、可擴展、分布式計算開發開源軟件。apachehadoop軟件庫是一個框架,允許使用簡單的編程模型跨計算機集群對大型數據集進行分布式處理。它被設計成從單個服務器擴展到數千臺機器,每臺都提供本地計算和存儲。與依賴硬件來提供高可用性不同,庫本身的設計目的是在應用程序層檢測和處理故障,因此在一組計算機上提供高可用性服務,每臺計算機都可能發生故障。
? ? ? Hadoop的框架最核心的設計就是HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。Hadoop的高吞吐,海量數據處理的能力使得人們可以方便地處理海量數據。但是,Hadoop的缺點也和它的優點同樣鮮明——延遲大,響應緩慢,運維復雜。
? ? ? Hadoop原本來自于谷歌一款名為MapReduce的編程模型包。谷歌的MapReduce框架可以把一個應用程序分解為許多并行計算指令,跨大量的計算節點運行非常巨大的數據集。使用該框架的一個典型例子就是在網絡數據上運行的搜索算法。Hadoop最初只與網頁索引有關,迅速發展成為分析大數據的領先平臺。
? ? ? ? Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。
? ? ? ? Hadoop的框架最核心的設計就是:HDFS和MapReduce。
- HDFS為海量的數據提供了存儲,
- MapReduce則為海量的數據提供了計算。MapReduce可以普遍應用于很多大規模數據的計算問題。MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
? ? ? ? ? ?HDFS和MapReduce共同組成Hadoop分布式系統體系結構的核心。HDFS在集群上實現了分布式文件系統,MapReduce在集群上實現了分布式計算和任務處理。HDFS在MapReduce任務處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工作,并收集結果,二者相互作用,完成分布式集群的主要任務。
?
官網:
https://hadoop.apache.org/
Apache Hadoop 3.2.1
?
?
1、HDFS體系結構圖
? ? ? ? ? HDFS作為分布式文件系統在數據管理方面可借鑒點——文件塊的放置。一個Block會有三份備份,一份在NameNode指定的DateNode上,一份放在與指定的DataNode不在同一臺機器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。備份的目的是為了數據安全,采用這種方式是為了考慮到同一Rack失敗的情況,以及不同數據拷貝帶來的性能的問題。
圖示:NameNode是管理者,DataNode是文件存儲者,Client客戶端是需要獲取分布式文件系統的應用程序。
?
文件寫入
- (1)、 Client向NameNode發起文件寫入的請求。
- (2)、?NameNode根據文件大小和文件塊配置情況,返回給Client它管理的DataNode的信息。
- (3)、?Client將文件劃分為多個block,根據DataNode的地址,按順序將block寫入DataNode塊中。
?
文件讀取
- (1)、Client向NameNode發起讀取文件的請求。
- (2)、NameNode返回文件存儲的DataNode信息。
- (3)、Client讀取文件信息。
?
?
?
?
Hadoop的深入理解
0、深入了解Hadoop的其它相關基礎知識
0.1、Hbase數據管理——Hadoop database
BigData之Hbase:Hbase數據管理的簡介、下載、案例應用之詳細攻略
?
?
0.2、Hive數據管理——建立在Hadoop上的數據倉庫基礎架構
BigData之Hive:Hive數據管理的簡介、下載、案例應用之詳細攻略
?
?
0.3、MongDB基于分布式文件存儲數據庫
BigData之MongoDB:MongoDB基于分布式文件存儲數據庫的簡介、下載、案例應用之詳細攻略
?
?
?
1、Hadoop的三大特性——可靠、高效、可伸縮
? ? ? ? Hadoop是一個能夠對大量數據進行分布式處理的軟件框架。 Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理 。
- Hadoop 是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分布處理。
- Hadoop 是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。
- Hadoop 是可伸縮的,能夠處理 PB 級數據。
?
2、Hadoop的五大優點——高可靠性、高擴展性、高效性、高容錯性、低成本
? ? ? ? Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平臺。用戶可以輕松地在Hadoop上開發和運行處理海量數據的應用程序。它主要有以下幾個優點:
- 1.高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
- 2.高擴展性。Hadoop是在可用的計算機集簇間分配數據并完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
- 3.高效性。Hadoop能夠在節點之間動態地移動數據,并保證各個節點的動態平衡,因此處理速度非常快 。
- 4.高容錯性。Hadoop能夠自動保存數據的多個副本,并且能夠自動將失敗的任務重新分配。
- 5.低成本。Hadoop 依賴于社區服務,因此它的成本比較低,任何人都可以使用 。與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低 。
? ? ? ? Hadoop帶有用Java語言編寫的框架,因此運行在 Linux 生產平臺上是非常理想的。Hadoop 上的應用程序也可以使用其他語言編寫,比如 C++。
?
3、Hadoop大數據處理的意義——得益于數據提取、變形和加載的天然優勢
? ? ? ? ?Hadoop得以在大數據處理應用中廣泛應用得益于其自身在數據提取、變形和加載(ETL)方面上的天然優勢。Hadoop的分布式架構,將大數據處理引擎盡可能的靠近存儲,對例如像ETL這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向存儲。Hadoop的MapReduce功能實現了將單個任務打碎,并將碎片任務(Map)發送到多個節點上,之后再以單個數據集的形式加載(Reduce)到數據倉庫里。
?
?
Hadoop的下載
官網地址:https://hadoop.apache.org/releases.html
? ? ? ? 為了方便起見,Hadoop作為源代碼tarball發布,并帶有相應的二進制tarball。下載通過鏡像站點分發,應該使用GPG或SHA-512檢查是否有篡改。
| 3.3.0 | 2020 Jul 14 | source?(checksum?signature) | binary?(checksum?signature)? binary-aarch64?(checksum?signature) | Announcement |
| 2.10.0 | 2019 Oct 29 | source?(checksum?signature) | binary?(checksum?signature) | Announcement |
| 3.1.3 | 2019 Oct 21 | source?(checksum?signature) | binary?(checksum?signature) | Announcement |
| 3.2.1 | 2019 Sep 22 | source?(checksum?signature) | binary?(checksum?signature) | Announcement |
| 2.9.2 | 2018 Nov 19 | source?(checksum?signature) | binary?(checksum?signature) | Announcement |
To verify Hadoop releases using GPG:
To perform a quick check using SHA-512:
?
?
Hadoop的案例應用
1、Hadoop:設置單節點集群
源自:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
Installing Software If your cluster doesn’t have the requisite software you will need to install it.For example on Ubuntu Linux:$ sudo apt-get install ssh$ sudo apt-get install pdsh Download To get a Hadoop distribution, download a recent stable release from one of the Apache Download Mirrors.Prepare to Start the Hadoop Cluster Unpack the downloaded Hadoop distribution. In the distribution, edit the file etc/hadoop/hadoop-env.sh to define some parameters as follows:# set to the root of your Java installationexport JAVA_HOME=/usr/java/latest Try the following command:$ bin/hadoop This will display the usage documentation for the hadoop script.Now you are ready to start your Hadoop cluster in one of the three supported modes:Local (Standalone) Mode Pseudo-Distributed Mode Fully-Distributed Mode Standalone Operation By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.$ mkdir input$ cp etc/hadoop/*.xml input$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'$ cat output/* Pseudo-Distributed Operation Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.Configuration Use the following:etc/hadoop/core-site.xml:<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property> </configuration> etc/hadoop/hdfs-site.xml:<configuration><property><name>dfs.replication</name><value>1</value></property> </configuration>?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python:Python语言编程软件安
- 下一篇: BigData之Hbase:Hbase数