A. 大數據:Hadoop入門
什麼是大數據:
(1.)大數據是指在一定時間內無法用常規軟體對其內容進行抓取,管理和處理的數據集合,簡而言之就是數據量非常大,大到無法用常規工具進行處理,如關系型資料庫,數據倉庫等。這里「大」是一個什麼量級呢?如在阿里巴巴每天處理數據達到20PB(即20971520GB).
2.大數據的特點:
(1.)體量巨大。按目前的發展趨勢來看,大數據的體量已經到達PB級甚至EB級。
(2.)大數據的數據類型多樣,以非結構化數據為主,如網路雜志,音頻,視屏,圖片,地理位置信息,交易數據,社交數據等。
(3.)價值密度低。有價值的數據僅佔到總數據的一小部分。比如一段視屏中,僅有幾秒的信息是有價值的。
(4.)產生和要求處理速度快。這是大數據區與傳統數據挖掘最顯著的特徵。
3.除此之外還有其他處理系統可以處理大數據。
Hadoop (開源)
Spark(開源)
Storm(開源)
MongoDB(開源)
IBM PureDate(商用)
Oracle Exadata(商用)
SAP Hana(商用)
Teradata AsterData(商用)
EMC GreenPlum(商用)
HP Vertica(商用)
註:這里我們只介紹Hadoop。
二:Hadoop體系結構
Hadoop來源:
Hadoop源於Google在2003到2004年公布的關於GFS(Google File System),MapRece和BigTable的三篇論文,創始人Doug Cutting。Hadoop現在是Apache基金會頂級項目,「
Hadoop」一個虛構的名字。由Doug Cutting的孩子為其黃色玩具大象所命名。
Hadoop的核心:
(1.)HDFS和MapRece是Hadoop的兩大核心。通過HDFS來實現對分布式儲存的底層支持,達到高速並行讀寫與大容量的儲存擴展。
(2.)通過MapRece實現對分布式任務進行處理程序支持,保證高速分區處理數據。
3.Hadoop子項目:
(1.)HDFS:分布式文件系統,整個Hadoop體系的基石。
(2.)MapRece/YARN:並行編程模型。YARN是第二代的MapRece框架,從Hadoop 0.23.01版本後,MapRece被重構,通常也稱為MapRece V2,老MapRece也稱為 MapRece V1。
(3.)Hive:建立在Hadoop上的數據倉庫,提供類似SQL語音的查詢方式,查詢Hadoop中的數據,
(5.)HBase:全稱Hadoop Database,Hadoop的分布式的,面向列的資料庫,來源於Google的關於BigTable的論文,主要用於隨機訪問,實時讀寫的大數據。
(6.)ZooKeeper:是一個為分布式應用所設計的協調服務,主要為用戶提供同步,配置管理,分組和命名等服務,減輕分布式應用程序所承擔的協調任務。
還有其它特別多其它項目這里不做一一解釋了。
三:安裝Hadoop運行環境
用戶創建:
(1.)創建Hadoop用戶組,輸入命令:
groupadd hadoop
(2.)創建hser用戶,輸入命令:
useradd –p hadoop hser
(3.)設置hser的密碼,輸入命令:
passwd hser
按提示輸入兩次密碼
(4.)為hser用戶添加許可權,輸入命令:
#修改許可權
chmod 777 /etc/sudoers
#編輯sudoers
Gedit /etc/sudoers
#還原默認許可權
chmod 440 /etc/sudoers
先修改sudoers 文件許可權,並在文本編輯窗口中查找到行「root ALL=(ALL)」,緊跟後面更新加行「hser ALL=(ALL) ALL」,將hser添加到sudoers。添加完成後切記還原默認許可權,否則系統將不允許使用sudo命令。
(5.)設置好後重啟虛擬機,輸入命令:
Sudo reboot
重啟後切換到hser用戶登錄
安裝JDK
(1.)下載jdk-7u67-linux-x64.rpm,並進入下載目錄。
(2.)運行安裝命令:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
完成後查看安裝路徑,輸入命令:
Rpm –qa jdk –l
記住該路徑,
(3.)配置環境變數,輸入命令:
Sudo gedit /etc/profile
打開profile文件在文件最下面加入如下內容
export java_HOME=/usr/java/jdk.7.0.67
export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
export PATH=$ JAVA_HOME/bin:$PATH
保存後關閉文件,然後輸入命令使環境變數生效:
Source /etc/profile
(4.)驗證JDK,輸入命令:
Java –version
若出現正確的版本則安裝成功。
配置本機SSH免密碼登錄:
(1.)使用ssh-keygen 生成私鑰與公鑰文件,輸入命令:
ssh-keygen –t rsa
(2.)私鑰留在本機,公鑰發給其它主機(現在是localhost)。輸入命令:
ssh--id localhost
(3.)使用公鑰來登錄輸入命令:
ssh localhost
配置其它主機SSH免密登錄
(1.)克隆兩次。在VMware左側欄中選中虛擬機右擊,在彈出的快捷鍵菜單中選中管理---克隆命令。在克隆類型時選中「創建完整克隆」,單擊「下一步」,按鈕直到完成。
(2.)分別啟動並進入三台虛擬機,使用ifconfig查詢個主機IP地址。
(3.)修改每台主機的hostname及hosts文件。
步驟1:修改hostname,分別在各主機中輸入命令。
Sudo gedit /etc/sysconfig/network
步驟2:修改hosts文件:
sudo gedit /etc/hosts
步驟3:修改三台虛擬機的IP
第一台對應node1虛擬機的IP:192.168.1.130
第二台對應node2虛擬機的IP:192.168.1.131
第三台對應node3虛擬機的IP:192.168.1.132
(4.)由於已經在node1上生成過密鑰對,所有現在只要在node1上輸入命令:
ssh--id node2
ssh--id node3
這樣就可以將node1的公鑰發布到node2,node3。
(5.)測試SSH,在node1上輸入命令:
ssh node2
#退出登錄
exit
ssh node3
exit
四:Hadoop完全分布式安裝
1. Hadoop有三種運行方式:
(1.)單機模式:無須配置,Hadoop被視為一個非分布式模式運行的獨立Java進程
(2.)偽分布式:只有一個節點的集群,這個節點即是Master(主節點,主伺服器)也是Slave(從節點,從伺服器),可在此單節點上以不同的java進程模擬分布式中的各類節點
(3.)完全分布式:對於Hadoop,不同的系統會有不同的節點劃分方式。
2.安裝Hadoop
(1.)獲取Hadoop壓縮包hadoop-2.6.0.tar.gz,下載後可以使用VMWare Tools通過共享文件夾,或者使用Xftp工具傳到node1。進入node1 將壓縮包解壓到/home/hser目錄下,輸入命令:
#進入HOME目錄即:「/home/hser」
cd ~
tar –zxvf hadoop-2.6.0.tar.gz
(2.)重命名hadoop輸入命令:
mv hadoop-2.6.0 hadoop
(3.)配置Hadoop環境變數,輸入命令:
Sudo gedit /etc/profile
將以下腳本加到profile內:
#hadoop
export HADOOP_HOME=/home/hser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存關閉,最後輸入命令使配置生效
source /etc/profile
註:node2,和node3都要按照以上配置進行配置。
3.配置Hadoop
(1.)hadoop-env.sh文件用於指定JDK路徑。輸入命令:
[hser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hser@node1 hadoop]$ gedit hadoop-env.sh
然後增加如下內容指定jDK路徑。
export JAVA_HOME=/usr/java/jdk1.7.0_67
(2.)打開指定JDK路徑,輸入命令:
export JAVA_HOME=/usr/java/jdk1.7.0_67
(4.)core-site.xml:該文件是Hadoop全局配置,打開並在
B. 如何為大數據處理構建高性能Hadoop集群
越來越多的企業開始使用Hadoop來對大數據進行處理分析,但Hadoop集群的整體性能卻取決於CPU、內存、網路以及存儲之間的性能平衡。而在這篇文章中,我們將探討如何為Hadoop集群構建高性能網路,這是對大數據進行處理分析的關鍵所在。
關於Hadoop
「大數據」是鬆散的數據集合,海量數據的不斷增長迫使企業需要通過一種新的方式去管理。大數據是結構化或非結構化的多種數據類型的大集合。而 Hadoop則是Apache發布的軟體架構,用以分析PB級的非結構化數據,並將其轉換成其他應用程序可管理處理的形式。Hadoop使得對大數據處理成為可能,並能夠幫助企業可從客戶數據之中發掘新的商機。如果能夠進行實時處理或者接近實時處理,那麼其將為許多行業的用戶提供強大的優勢。
Hadoop是基於谷歌的MapRece和分布式文件系統原理而專門設計的,其可在通用的網路和伺服器硬體上進行部署,並使之成為計算集群。
Hadoop模型
Hadoop的工作原理是將一個非常大的數據集切割成一個較小的單元,以能夠被查詢處理。同一個節點的計算資源用於並行查詢處理。當任務處理結束後,其處理結果將被匯總並向用戶報告,或者通過業務分析應用程序處理以進行進一步分析或儀表盤顯示。
為了最大限度地減少處理時間,在此並行架構中,Hadoop「moves jobs to data」,而非像傳統模式那樣「moving data to jobs」。這就意味著,一旦數據存儲在分布式系統之中,在實時搜索、查詢或數據挖掘等操作時,如訪問本地數據,在數據處理過程中,各節點之間將只有一個本地查詢結果,這樣可降低運營開支。
Hadoop的最大特點在於其內置的並行處理和線性擴展能力,提供對大型數據集查詢並生成結果。在結構上,Hadoop主要有兩個部分:
Hadoop分布式文件系統(HDFS)將數據文件切割成數據塊,並將其存儲在多個節點之內,以提供容錯性和高性能。除了大量的多個節點的聚合I/O,性能通常取決於數據塊的大小——如128MB。而傳統的Linux系統下的較為典型的數據塊大小可能是4KB。
MapRece引擎通過JobTracker節點接受來自客戶端的分析工作,採用「分而治之」的方式來將一個較大的任務分解成多個較小的任務,然後分配給各個TaskTrack節點,並採用主站/從站的分布方式(具體如下圖所示):
Hadoop系統有三個主要的功能節點:客戶機、主機和從機。客戶機將數據文件注入到系統之中,從系統中檢索結果,以及通過系統的主機節點提交分析工作等。主機節點有兩個基本作用:管理分布式文件系統中各節點以及從機節點的數據存儲,以及管理Map/Rece從機節點的任務跟蹤分配和任務處理。數據存儲和分析處理的實際性能取決於運行數據節點和任務跟蹤器的從機節點性能,而這些從機節點則由各自的主機節點負責溝通和控制。從節點通常有多個數據塊,並在作業期間被分配處理多個任務。
部署實施Hadoop
各個節點硬體的主要要求是市縣計算、內存、網路以及存儲等四個資源的平衡。目前常用的並被譽為「最佳」的解決方案是採用相對較低成本的舊有硬體,部署足夠多的伺服器以應對任何可能的故障,並部署一個完整機架的系統。
Hadoop模式要求伺服器與SAN或者NAS進行直接連接存儲(DAS)。採用DAS主要有三個原因,在標准化配置的集群中,節點的縮放數以千計,隨著存儲系統的成本、低延遲性以及存儲容量需求不斷提高,簡單配置和部署個主要的考慮因素。隨著極具成本效益的1TB磁碟的普及,可使大型集群的TB級數據存儲在DAS之上。這解決了傳統方法利用SAN進行部署極其昂貴的困境,如此多的存儲將使得Hadoop和數據存儲出現一個令人望而卻步的起始成本。有相當大一部分用戶的Hadoop部署構建都是採用大容量的DAS伺服器,其中數據節點大約1-2TB,名稱控制節點大約在1-5TB之間,具體如下圖所示:
來源:Brad Hedlund, DELL公司
對於大多數的Hadoop部署來說,基礎設施的其他影響因素可能還取決於配件,如伺服器內置的千兆乙太網卡或千兆乙太網交換機。上一代的CPU和內存等硬體的選擇,可根據符合成本模型的需求,採用匹配數據傳輸速率要求的千兆乙太網介面來構建低成本的解決方案。採用萬兆乙太網來部署Hadoop也是相當不錯的選擇。
萬兆乙太網對Hadoop集群的作用
千兆乙太網的性能是制約Hadoop系統整體性能的一個主要因素。使用較大的數據塊大小,例如,如果一個節點發生故障(甚至更糟,整個機架宕機),那麼整個集群就需要對TB級的數據進行恢復,這就有可能會超過千兆乙太網所能提供的網路帶寬,進而使得整個集群性能下降。在擁有成千上萬個節點的大型集群中,當運行某些需要數據節點之間需要進行中間結果再分配的工作負載時,在系統正常運行過程中,某個千兆乙太網設備可能會遭遇網路擁堵。
每一個Hadoop數據節點的目標都必須實現CPU、內存、存儲和網路資源的平衡。如果四者之中的任意一個性能相對較差的話,那麼系統的潛在處理能力都有可能遭遇瓶頸。添加更多的CPU和內存組建,將影響存儲和網路的平衡,如何使Hadoop集群節點在處理數據時更有效率,減少結果,並在Hadoop集群內添加更多的HDFS存儲節點。
幸運的是,影響CPU和內存發展的摩爾定律,同樣也正影響著存儲技術(TB級容量的磁碟)和乙太網技術(從千兆向萬兆甚至更高)的發展。預先升級系統組件(如多核處理器、每節點5-20TB容量的磁碟,64-128GB內存),萬兆乙太網卡和交換機等網路組件是重新平衡資源最合理的選擇。萬兆乙太網將在Hadoop集群證明其價值,高水平的網路利用率將帶來效益更高的帶寬。下圖展示了Hadoop集群與萬兆乙太網的連接:
許多企業級數據中心已經遷移到10GbE網路,以實現伺服器整合和伺服器虛擬化。隨著越來越多企業開始部署Hadoop,他們發現他們完全不必要大批量部署1U的機架伺服器,而是部署更少,但性能更高的伺服器,以方便擴展每個數據節點所能運行的任務數量。很多企業選擇部署2U或4U的伺服器(如戴爾 PowerEdge C2100),每個節點大約12-16個核心以及24TB存儲容量。在這種環境下的合理選擇是充分利用已經部署的10GbE設備和Hadoop集群中的 10GbE網卡。
在日常的IT環境中構建一個簡單的Hadoop集群。可以肯定的是,盡管有很多細節需要微調,但其基礎是非常簡單的。構建一個計算、存儲和網路資源平衡的系統,對項目的成功至關重要。對於擁有密集節點的Hadoop集群而言,萬兆乙太網能夠為計算和存儲資源擴展提供與之相匹配的能力,且不會導致系統整體性能下降。
C. hadoop大數據處理架構的核心技術是什麼
Hadoop核心架構,分為四個模塊:
1、Hadoop通用:提供Hadoop模塊所需要的Java類庫和工具。
2、Hadoop YARN:提供任務調度和集群資源管理功能。
3、Hadoop HDFS:分布式文件系統,提供高吞吐量的應用程序數據訪問方式。
4、Hadoop MapRece:大數據離線計算引擎,用於大規模數據集的並行處理。
特點:
Hadoop的高可靠性、高擴展性、高效性、高容錯性,是Hadoop的優勢所在,在十多年的發展歷程當中,Hadoop依然被行業認可,占據著重要的市場地位。
Hadoop在大數據技術框架當中的地位重要,學大數據必學Hadoop,還要對Hadoop核心技術框架掌握扎實才行。
D. Hadoop在大數據中有什麼作用
HDFS按照Master和Slave的結構。分為NameNode、SecondaryNameNode、DataNode這幾個角色。
NameNode:是Master節點,是大領導。管理數據塊映射;處理客戶端的讀寫請求;配置副本策略;管理HDFS的名稱空間。
SecondaryNameNode:是一個小弟,分擔大哥namenode的工作量;是NameNode的冷備份;合並fsimage(元數據鏡像文件,文件系統的目錄樹)和fsedits(元數據的操作日誌,針對文件系統做的修改操作記錄),然後再發給namenode。
DataNode:是Slave節點,是奴隸,幹活的。負責存儲客戶端發來的block;執行block的讀寫操作。NameNode和DataNode之間的通信是通過心跳機制實現的。
Map(映射)任務處理:
讀取HDFS中的文件。每一行解析成一個。每一個鍵值對調用一次map函數。map函數接收前面產生的,進行處理,轉換為新的輸出。對轉換後的進行分區。對不同分區中的數據按key進行排序、分組。分組指的是相同key的value放到一個集合中。
Rece(歸約)任務處理:
多個map任務的輸出,按照不同的分區,通過網路到不同的rece節點上。對多個map的輸出進行合並、排序。覆蓋rece函數,接收的是分組後的數據,實現自己的業務邏輯,處理後,產生新的輸出。對rece輸出的寫到HDFS中。
關於Hadoop在大數據中有什麼作用,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章能夠對你有所幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。
E. 如何進行大數據分析及處理
聚雲化雨的處理方式
聚雲:探碼科技全面覆蓋各類數據的處理應用。以數據為原料,通過網路數據採集、生產設備數據採集的方式將各種原始數據凝結成雲,為客戶打造強大的數據存儲庫;
化雨:利用模型演算法和人工智慧等技術對存儲的數據進行計算整合讓數據與演算法產生質變反應化雲為雨,讓真正有價值的數據流動起來;
開渠引流,潤物無聲:將落下「雨水」匯合成數據湖泊,對數據進行標注與處理根據行業需求開渠引流,將一條一條的數據支流匯合集成數據應用中,為行業用戶帶來價值,做到春風化雨,潤物無聲。
F. 如何進行大數據分析及處理
聚雲化雨的處理方式
聚雲:探碼科技全面覆蓋各類數據的處理應用。以數據為原料,通過網路數據採集、生產設備數據採集的方式將各種原始數據凝結成雲,為客戶打造強大的數據存儲庫;
化雨:利用模型演算法和人工智慧等技術對存儲的數據進行計算整合讓數據與演算法產生質變反應化雲為雨,讓真正有價值的數據流動起來;
開渠引流,潤物無聲:將落下「雨水」匯合成數據湖泊,對數據進行標注與處理根據行業需求開渠引流,將一條一條的數據支流匯合集成數據應用中,為行業用戶帶來價值,做到春風化雨,潤物無聲。
G. 如何讓Hadoop結合R語言做大數據分析
R語言和Hadoop讓我們體會到了,兩種技術在各自領域的強大。很多開發人員在計算機的角度,都會提出下面2個問題。問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?x0dx0a問題2: Mahout同樣可以做數據挖掘和機器學習,和R語言的區別是什麼?下面我嘗試著做一個解答:問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?x0dx0ax0dx0aa. Hadoop家族的強大之處,在於對大數據的處理,讓原來的不可能(TB,PB數據量計算),成為了可能。x0dx0ab. R語言的強大之處,在於統計分析,在沒有Hadoop之前,我們對於大數據的處理,要取樣本,假設檢驗,做回歸,長久以來R語言都是統計學家專屬的工具。x0dx0ac. 從a和b兩點,我們可以看出,hadoop重點是全量數據分析,而R語言重點是樣本數據分析。 兩種技術放在一起,剛好是最長補短!x0dx0ad. 模擬場景:對1PB的新聞網站訪問日誌做分析,預測未來流量變化x0dx0ad1:用R語言,通過分析少量數據,對業務目標建回歸建模,並定義指標d2:用Hadoop從海量日誌數據中,提取指標數據d3:用R語言模型,對指標數據進行測試和調優d4:用Hadoop分步式演算法,重寫R語言的模型,部署上線這個場景中,R和Hadoop分別都起著非常重要的作用。以計算機開發人員的思路,所有有事情都用Hadoop去做,沒有數據建模和證明,」預測的結果」一定是有問題的。以統計人員的思路,所有的事情都用R去做,以抽樣方式,得到的「預測的結果」也一定是有問題的。所以讓二者結合,是產界業的必然的導向,也是產界業和學術界的交集,同時也為交叉學科的人才提供了無限廣闊的想像空間。問題2: Mahout同樣可以做數據挖掘和機器學習,和R語言的區別是什麼?x0dx0ax0dx0aa. Mahout是基於Hadoop的數據挖掘和機器學習的演算法框架,Mahout的重點同樣是解決大數據的計算的問題。x0dx0ab. Mahout目前已支持的演算法包括,協同過濾,推薦演算法,聚類演算法,分類演算法,LDA, 樸素bayes,隨機森林。上面的演算法中,大部分都是距離的演算法,可以通過矩陣分解後,充分利用MapRece的並行計算框架,高效地完成計算任務。x0dx0ac. Mahout的空白點,還有很多的數據挖掘演算法,很難實現MapRece並行化。Mahout的現有模型,都是通用模型,直接用到的項目中,計算結果只會比隨機結果好一點點。Mahout二次開發,要求有深厚的JAVA和Hadoop的技術基礎,最好兼有 「線性代數」,「概率統計」,「演算法導論」 等的基礎知識。所以想玩轉Mahout真的不是一件容易的事情。x0dx0ad. R語言同樣提供了Mahout支持的約大多數演算法(除專有演算法),並且還支持大量的Mahout不支持的演算法,演算法的增長速度比mahout快N倍。並且開發簡單,參數配置靈活,對小型數據集運算速度非常快。x0dx0a雖然,Mahout同樣可以做數據挖掘和機器學習,但是和R語言的擅長領域並不重合。集百家之長,在適合的領域選擇合適的技術,才能真正地「保質保量」做軟體。x0dx0ax0dx0a如何讓Hadoop結合R語言?x0dx0ax0dx0a從上一節我們看到,Hadoop和R語言是可以互補的,但所介紹的場景都是Hadoop和R語言的分別處理各自的數據。一旦市場有需求,自然會有商家填補這個空白。x0dx0ax0dx0a1). RHadoopx0dx0ax0dx0aRHadoop是一款Hadoop和R語言的結合的產品,由RevolutionAnalytics公司開發,並將代碼開源到github社區上面。RHadoop包含三個R包 (rmr,rhdfs,rhbase),分別是對應Hadoop系統架構中的,MapRece, HDFS, HBase 三個部分。x0dx0ax0dx0a2). RHiveRHive是一款通過R語言直接訪問Hive的工具包,是由NexR一個韓國公司研發的。x0dx0ax0dx0a3). 重寫Mahout用R語言重寫Mahout的實現也是一種結合的思路,我也做過相關的嘗試。x0dx0ax0dx0a4).Hadoop調用Rx0dx0ax0dx0a上面說的都是R如何調用Hadoop,當然我們也可以反相操作,打通JAVA和R的連接通道,讓Hadoop調用R的函數。但是,這部分還沒有商家做出成形的產品。x0dx0ax0dx0a5. R和Hadoop在實際中的案例x0dx0ax0dx0aR和Hadoop的結合,技術門檻還是有點高的。對於一個人來說,不僅要掌握Linux, Java, Hadoop, R的技術,還要具備 軟體開發,演算法,概率統計,線性代數,數據可視化,行業背景 的一些基本素質。在公司部署這套環境,同樣需要多個部門,多種人才的的配合。Hadoop運維,Hadoop演算法研發,R語言建模,R語言MapRece化,軟體開發,測試等等。所以,這樣的案例並不太多。
H. 大數據|Hadoop簡介及兩大功能三大核心組件(二)
一、為什麼需要hadoop?
在數據量很大的情況下,單機的處理能力無法勝任,必須採用分布式集群的方式進行處理,而用分布式集群的方式處理數據,實現的復雜度呈級數增加。所以,在海量數據處理的需求下,一個通用的分布式數據處理技術框架能大大降低應用開發難點和減少工作量。
我們先來看這么一個例子:我們要從一個用戶使用app的日誌數據中統計每個用戶搜索了哪些關鍵詞,這個日誌文件有21G大,而我們的一個伺服器只有8G內存,很顯然一台伺服器無法干這活。那麼我們的處理方案應該是這樣,見圖一:
從圖一我們知道,要順利完成這么一個集群工作,它存在幾個問題:
要我們自己編寫一個程序來處理以上的問題是極其復雜的,我曾經寫過一個腳本完成「如何分發業務應用到集群的各台伺服器上」這個問題,復雜度也是不小的。
而hadoop卻可以幫助我們處理上面的所有問題,我們只需要編寫我們的業務程序即可。
二、hadoop是什麼?
hadoop是用於處理(運算分析)海量數據的技術平台,並且是採用分布式集群的方式。
hadoop有兩大功能:
hadoop三大核心組件:
hadoop兩大使用角度:
I. 什麼是大數據分析Hadoop
要了解什麼是Hadoop,我們必須首先了解與大數據和傳統處理系統有關的問題。前進,我們將討論什麼是Hadoop,以及Hadoop如何解決與大數據相關的問題。我們還將研究CERN案例研究,以突出使用Hadoop的好處。
在之前的博客「 大數據教程」中,我們已經詳細討論了大數據以及大數據的挑戰。在此博客中,我們將討論:
1、傳統方法的問題
2、Hadoop的演變
3、Hadoop的
4、Hadoop即用解決方案
5、何時使用Hadoop?
6、什麼時候不使用Hadoop?
一、CERN案例研究
大數據正在成為組織的機會。現在,組織已經意識到他們可以通過大數據分析獲得很多好處,如下圖所示。他們正在檢查大型數據集,以發現所有隱藏的模式,未知的相關性,市場趨勢,客戶偏好和其他有用的業務信息。
這些分析結果正在幫助組織進行更有效的營銷,新的收入機會,更好的客戶服務。他們正在提高運營效率,與競爭對手組織相比的競爭優勢以及其他業務利益。
什麼是Hadoop –大數據分析的好處
因此,讓我們繼續前進,了解在兌現大數據機會方面與傳統方法相關的問題。
二、傳統方法的問題
在傳統方法中,主要問題是處理數據的異構性,即結構化,半結構化和非結構化。RDBMS主要關注於銀行交易,運營數據等結構化數據,而Hadoop則專注於文本,視頻,音頻,Facebook帖子,日誌等半結構化,非結構化數據。RDBMS技術是一種經過驗證的,高度一致,成熟的系統許多公司的支持。另一方面,由於大數據(主要由不同格式的非結構化數據組成)對Hadoop提出了需求。
現在讓我們了解與大數據相關的主要問題是什麼。因此,繼續前進,我們可以了解Hadoop是如何成為解決方案的。
什麼是Hadoop –大數據問題
第一個問題是存儲大量數據。
無法在傳統系統中存儲大量數據。原因很明顯,存儲將僅限於一個系統,並且數據正在以驚人的速度增長。
第二個問題是存儲異構數據。
現在,我們知道存儲是一個問題,但是讓我告訴您,這只是問題的一部分。由於我們討論了數據不僅龐大,而且還以各種格式存在,例如:非結構化,半結構化和結構化。因此,您需要確保您擁有一個系統來存儲從各種來源生成的所有這些種類的數據。
第三個問題是訪問和處理速度。
硬碟容量正在增加,但磁碟傳輸速度或訪問速度並未以相似的速度增加。讓我以一個示例為您進行解釋:如果您只有一個100 Mbps I / O通道,並且正在處理1TB數據,則大約需要2.91個小時。現在,如果您有四台具有一個I / O通道的計算機,則對於相同數量的數據,大約需要43分鍾。因此,與存儲大數據相比,訪問和處理速度是更大的問題。
在了解什麼是Hadoop之前,讓我們首先了解一下Hadoop在一段時間內的發展。
Hadoop的演變
2003年,道格·切特(Doug Cutting)啟動了Nutch項目,以處理數十億次搜索並為數百萬個網頁建立索引。2003年10月下旬– Google發布帶有GFS(Google文件系統)的論文。2004年12月,Google發布了MapRece論文。在2005年,Nutch使用GFS和MapRece進行操作。2006年,雅虎與Doug Cutting及其團隊合作,基於GFS和MapRece創建了Hadoop。如果我告訴您,您會感到驚訝,雅虎於2007年開始在1000個節點的群集上使用Hadoop。
2008年1月下旬,雅虎向Apache Software Foundation發布了Hadoop作為一個開源項目。2008年7月,Apache通過Hadoop成功測試了4000個節點的集群。2009年,Hadoop在不到17小時的時間內成功整理了PB級數據,以處理數十億次搜索並為數百萬個網頁建立索引。在2011年12月,Apache Hadoop發布了1.0版。2013年8月下旬,發布了2.0.6版。
當我們討論這些問題時,我們發現分布式系統可以作為解決方案,而Hadoop提供了相同的解決方案。現在,讓我們了解什麼是Hadoop。
三、什麼是Hadoop?
Hadoop是一個框架,它允許您首先在分布式環境中存儲大數據,以便可以並行處理它。 Hadoop中基本上有兩個組件:
1、大數據Hadoop認證培訓
2、講師指導的課程現實生活中的案例研究評估終身訪問探索課程
什麼是Hadoop – Hadoop即解決方案
第一個問題是存儲大數據。
HDFS提供了一種分布式大數據存儲方式。您的數據存儲在整個DataNode的塊中,您可以指定塊的大小。基本上,如果您擁有512MB的數據,並且已經配置了HDFS,那麼它將創建128MB的數據塊。 因此,HDFS將數據分為512/128 = 4的4個塊,並將其存儲在不同的DataNode上,還將在不同的DataNode上復制數據塊。現在,由於我們正在使用商品硬體,因此存儲已不是難題。
它還解決了縮放問題。它著重於水平縮放而不是垂直縮放。您始終可以根據需要隨時在HDFS群集中添加一些額外的數據節點,而不是擴展DataNodes的資源。讓我為您總結一下,基本上是用於存儲1 TB的數據,您不需要1 TB的系統。您可以在多個128GB或更少的系統上執行此操作。
下一個問題是存儲各種數據。
藉助HDFS,您可以存儲各種數據,無論是結構化,半結構化還是非結構化。由於在HDFS中,沒有預轉儲模式驗證。並且它也遵循一次寫入和多次讀取模型。因此,您只需寫入一次數據,就可以多次讀取數據以尋找見解。
Hird的挑戰是訪問和處理數據更快。
是的,這是大數據的主要挑戰之一。為了解決該問題,我們將處理移至數據,而不是將數據移至處理。這是什麼意思?而不是將數據移動到主節點然後進行處理。在MapRece中,處理邏輯被發送到各個從屬節點,然後在不同的從屬節點之間並行處理數據。然後,將處理後的結果發送到主節點,在該主節點上合並結果,並將響應發送回客戶端。
在YARN架構中,我們有ResourceManager和NodeManager。ResourceManager可能會或可能不會與NameNode配置在同一台機器上。 但是,應該將NodeManager配置在存在DataNode的同一台計算機上。
YARN通過分配資源和安排任務來執行您的所有處理活動。
什麼是Hadoop – YARN
它具有兩個主要組件,即ResourceManager和NodeManager。
ResourceManager再次是主節點。它接收處理請求,然後將請求的各個部分相應地傳遞到相應的NodeManager,什麼是大數據分析Hadoop在此進行實際處理。NodeManager安裝在每個DataNode上。它負責在每個單個DataNode上執行任務。
我希望現在您對什麼是Hadoop及其主要組件有所了解。讓我們繼續前進,了解何時使用和何時不使用Hadoop。
何時使用Hadoop?
Hadoop用於:
1、搜索 – Yahoo,亞馬遜,Zvents
2、日誌處理 – Facebook,雅虎
3、數據倉庫 – Facebook,AOL
4、視頻和圖像分析 –紐約時報,Eyealike
到目前為止,我們已經看到了Hadoop如何使大數據處理成為可能。但是在某些情況下,不建議使用Hadoop。