柚子快報(bào)邀請(qǐng)碼778899分享:Hadoop簡(jiǎn)介
柚子快報(bào)邀請(qǐng)碼778899分享:Hadoop簡(jiǎn)介
簡(jiǎn)介
大數(shù)據(jù)簡(jiǎn)介
概述
大數(shù)據(jù)的說(shuō)法從出現(xiàn)到現(xiàn)在,也經(jīng)歷了十多年時(shí)間的發(fā)展。而在這十幾年的發(fā)展過(guò)程中,非常多的機(jī)構(gòu)、組織都試圖對(duì)大數(shù)據(jù)做出過(guò)定義,例如:研究機(jī)構(gòu)Gartner給出了這樣的定義:"大數(shù)據(jù)"是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。再例如根據(jù)維基百科的定義,大數(shù)據(jù)是指無(wú)法在可承受的時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合。
特征(6V)
經(jīng)過(guò)十幾年的發(fā)展,對(duì)大數(shù)據(jù)進(jìn)行總結(jié),總結(jié)出來(lái)如下特征:
1)Volume:數(shù)據(jù)量大,包括采集、存儲(chǔ)和計(jì)算的量都非常大。大數(shù)據(jù)的起始計(jì)量單位至少是T、P(1024個(gè)T)、E(100萬(wàn)個(gè)T)或Z(10億個(gè)T)。到目前為止,人類所生產(chǎn)的所有印刷材料(書本、雜志、報(bào)刊等)的數(shù)據(jù)量大約是200PB,而歷史上全人類總共說(shuō)過(guò)的話的數(shù)據(jù)量大約是5EB。當(dāng)前,典型個(gè)人計(jì)算機(jī)硬盤的容量為TB量級(jí),而一些大企業(yè)的數(shù)據(jù)量已經(jīng)接近或者達(dá)到EB量級(jí)。
2)Variety:種類樣式和來(lái)源多樣化。包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),具體表現(xiàn)為網(wǎng)絡(luò)日志、音頻、視頻、圖片、地理位置信息等等,多類型的數(shù)據(jù)對(duì)數(shù)據(jù)的處理能力提出了更高的要求。
3)Value:數(shù)據(jù)價(jià)值密度相對(duì)較低,或者說(shuō)是浪里淘沙卻又彌足珍貴。隨著互聯(lián)網(wǎng)以及物聯(lián)網(wǎng)的廣泛應(yīng)用,信息感知無(wú)處不在,信息海量,但價(jià)值密度較低,如何結(jié)合業(yè)務(wù)邏輯并通過(guò)強(qiáng)大的機(jī)器算法來(lái)挖掘數(shù)據(jù)價(jià)值是大數(shù)據(jù)時(shí)代最需要解決的問(wèn)題。
4)Velocity:數(shù)據(jù)增長(zhǎng)速度快,處理速度也快,時(shí)效性要求比較高。這是大數(shù)據(jù)區(qū)分于傳統(tǒng)數(shù)據(jù)挖掘的最顯著特征。根據(jù)IDC(Internet Data Center,互聯(lián)網(wǎng)數(shù)據(jù)中心)的"數(shù)字宇宙"的報(bào)告,到2020年,全球數(shù)據(jù)使用量將達(dá)到35.2ZB。在如此海量的數(shù)據(jù)面前,處理數(shù)據(jù)的效率就是企業(yè)的生命。
5)Veracity:數(shù)據(jù)的準(zhǔn)確性和可信賴度,即數(shù)據(jù)的質(zhì)量。隨著網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)的準(zhǔn)確性和可信賴度都越來(lái)越挑戰(zhàn)數(shù)據(jù)的認(rèn)知和發(fā)展。
6)Valence:大數(shù)據(jù)之間的連通性,指的是大數(shù)據(jù)各個(gè)產(chǎn)業(yè)、各個(gè)模塊之間的關(guān)聯(lián)性。
7)隨著大數(shù)據(jù)的發(fā)展,又增加了Vitality(動(dòng)態(tài)性)、Visualization(可視化)、Validity(合法性)等。
Hadoop簡(jiǎn)介
概述
Hadoop本身是由Yahoo!公司開發(fā)的后來(lái)貢獻(xiàn)給了Apache的一套開源的、可靠的分布式架構(gòu)
Hadoop提供了簡(jiǎn)單的編程模型能夠?qū)Υ罅康臄?shù)據(jù)進(jìn)行分布式處理(The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.)
Hadoop能夠輕松的從一臺(tái)服務(wù)器擴(kuò)展到上千臺(tái)服務(wù)器,并且每一臺(tái)服務(wù)器都能夠進(jìn)行本地計(jì)算和存儲(chǔ)(It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.)
Hadoop本身提供了用于處理和探測(cè)異常的機(jī)制(Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer)。
主流發(fā)行版本
經(jīng)過(guò)多年發(fā)展,市面上產(chǎn)生了繁多的Hadoop版本,這些版本可以分為收費(fèi)版和免費(fèi)版/社區(qū)版。其中使用的比較多的是Apache、CDH和HDP三大發(fā)行版。
Apache版本:最原始(最基礎(chǔ))的版本,對(duì)于入門學(xué)習(xí)最好,可以讓初學(xué)者掌握更多的細(xì)節(jié)。
Cloudera版本:
1)2008年成立的Cloudera是最早將Hadoop商用的公司,為合作伙伴提供Hadoop的商用解決方案,主要是包括支持、咨詢服務(wù)、培訓(xùn)。在2009年,Hadoop之父Doug Cutting也加盟Cloudera公司。
2)Cloudera產(chǎn)品主要為CDH,Cloudera Manager,Cloudera Support。CDH是Cloudera提供的Hadoop發(fā)行版,完全開源,比Apache Hadoop在兼容性,安全性,穩(wěn)定性上有所增強(qiáng);Cloudera Manager是集群的軟件分發(fā)及管理監(jiān)控平臺(tái),可以在幾個(gè)小時(shí)內(nèi)部署好一個(gè)Hadoop集群,并對(duì)集群的節(jié)點(diǎn)及服務(wù)進(jìn)行實(shí)時(shí)監(jiān)控;Cloudera Support即是對(duì)Hadoop的技術(shù)支持。
3)Cloudera的標(biāo)價(jià)為每年每個(gè)節(jié)點(diǎn)4000美元。
4)Cloudera開發(fā)并貢獻(xiàn)了可實(shí)時(shí)處理大數(shù)據(jù)的Impala項(xiàng)目。
Hortonworks Hadoop版本:
1)2011年成立的Hortonworks是雅虎與硅谷風(fēng)投公司Benchmark Capital合資組建。公司成立之初就吸納了大約25名至30名專門研究Hadoop的雅虎工程師,上述工程師均在2005年開始協(xié)助雅虎開發(fā)Hadoop,貢獻(xiàn)了Hadoop80%的代碼。雅虎工程副總裁、雅虎Hadoop開發(fā)團(tuán)隊(duì)負(fù)責(zé)人Eric Baldeschwieler出任Hortonworks的首席執(zhí)行官。
2)Hortonworks的主打產(chǎn)品是Hortonworks Data Platform(HDP),也同樣是100%開源的產(chǎn)品,HDP除常見(jiàn)的項(xiàng)目外還包括了Ambari(一款開源的安裝和管理系統(tǒng))。
3)HCatalog,一個(gè)元數(shù)據(jù)管理系統(tǒng),HCatalog現(xiàn)已集成到Facebook開源的Hive中。Hortonworks的Stinger開創(chuàng)性的極大的優(yōu)化了Hive項(xiàng)目。Hortonworks為入門提供了一個(gè)非常好的,易于使用的沙盒。
4)Hortonworks開發(fā)了很多增強(qiáng)特性并提交至核心主干,這使得Apache Hadoop能夠在包括Window Server和Windows Azure在內(nèi)的Microsoft Windows平臺(tái)上本地運(yùn)行。
5)定價(jià)以集群為基礎(chǔ),每10個(gè)節(jié)點(diǎn)每年為12500美元。
Hortonworks被Cloudera收購(gòu),合并推出了新的商用版Hadoop:CDP。目前收費(fèi)是10000美金/節(jié)點(diǎn)/每年。從2021年1月31日開始,之前所有的CDH和HDP都必須付費(fèi)才能使用。
模塊
截止到目前為止(2023年06月30日),Hadoop官網(wǎng)顯示,一共包含了四大模塊:
1)Hadoop Common:公共模塊,提供了Hadoop的一些基本jar包(The common utilities that support the other Hadoop modules.)
2)Hadoop Distributed FileSystem(HDFS):分布式文件存儲(chǔ)系統(tǒng)(A distributed file system that provides high-throughput access to application data.)
3)Hadoop YARN:用于進(jìn)行任務(wù)調(diào)度和資源管理的機(jī)制(A framework for job scheduling and cluster resource management.)
4)Hadoop MapReduce:基于YARN的分布式計(jì)算系統(tǒng)(A YARN-based system for parallel processing of large data sets.)
版本
Hadoop發(fā)展到現(xiàn)在,一共有三大版本:
1)Hadoop1.X:最原始的版本,包含了Common,HDFS和MapReduce模塊,目前市面上已經(jīng)停止流通;
2)Hadoop2.X:包含了Common,HDFS,MapReduce和YARN模塊,后續(xù)的高版本中還包含了Ozone模塊。注意,Hadoop2.X和Hadoop1.X不兼容;
3)Hadoop3.X:包含了Common,HDFS,MapReduce,YARN和Ozone模塊,和Hadoop2.X部分兼容。
需要注意的是,不同于其他的一些框架,除了Hadoop1.x已經(jīng)停止維護(hù)和使用,Hadoop2.X和Hadoop3.X在官網(wǎng)均有維護(hù)和更新,且更新版本較為混亂。所以在選擇Hadoop版本的時(shí)候,需要考慮Hadoop版本和其他框架的兼容性問(wèn)題。
Hadoop發(fā)展歷程(了解)
創(chuàng)始人
Doug Cutting:是一位軟件設(shè)計(jì)師,也是開源搜索技術(shù)的倡導(dǎo)者和創(chuàng)造者。他創(chuàng)建了Lucene,并與Mike Cafarella創(chuàng)建了Nutch,這些項(xiàng)目現(xiàn)在通過(guò)Apache Software Foundation進(jìn)行管理。Cutting和Cafarella也是Apache Hadoop的聯(lián)合創(chuàng)始人,不過(guò)相對(duì)Doug的貢獻(xiàn)更大一些,所以Doug也被尊稱為Hadoop之父。
Mike Cafarella:一位專攻數(shù)據(jù)庫(kù)管理系統(tǒng)的計(jì)算機(jī)科學(xué)家。他是密歇根大學(xué)的計(jì)算機(jī)學(xué)科的副教授。Mike與Doug Cutting一起創(chuàng)建了Hadoop以及Nutch這兩個(gè)開源項(xiàng)目。
命名
Hadoop這個(gè)名字不是一個(gè)縮寫,也不是一個(gè)單詞,而是一個(gè)虛構(gòu)的名字。該項(xiàng)目的創(chuàng)建者,Doug Cutting解釋Hadoop的得名:"這個(gè)名字是我孩子給一個(gè)棕黃色的大象玩具命名的。我的命名標(biāo)準(zhǔn)就是簡(jiǎn)短,容易發(fā)音和拼寫,沒(méi)有太多的意義,并且不會(huì)被用于別處。小孩子恰恰是這方面的高手"。
發(fā)展歷程
1)2002年,Doug Cutting和Mike Cafarella在設(shè)計(jì)搜索引擎Nutch的時(shí)候,爬取了整個(gè)互聯(lián)網(wǎng),一共獲得了10億個(gè)網(wǎng)頁(yè)數(shù)據(jù)。因?yàn)榛ヂ?lián)網(wǎng)的數(shù)據(jù)大多數(shù)是非結(jié)構(gòu)化的,所以無(wú)法存儲(chǔ)在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)中。且由于數(shù)據(jù)量巨大,所以傳統(tǒng)的單機(jī)模式也無(wú)法存儲(chǔ)。
2)2003年,Google發(fā)表一篇關(guān)于集群系統(tǒng)存儲(chǔ)的論文:
3)2004年,Cutting在基于GFS的基礎(chǔ)上設(shè)計(jì)了NDFS(Nutch Distributed File System)。NDFS和GFS的不同之處在于,GFS是使用C語(yǔ)言實(shí)現(xiàn)的,而NDFS是使用Java語(yǔ)言實(shí)現(xiàn)的。至此,解決了第一個(gè)問(wèn)題:分布式存儲(chǔ)的問(wèn)題。但是接踵而來(lái)的是第二個(gè)問(wèn)題,如何對(duì)分布式存儲(chǔ)的數(shù)據(jù)進(jìn)行分析和計(jì)算呢?
4)2004年,Google發(fā)表了另一篇關(guān)于集群系統(tǒng)計(jì)算的論文:
5)2005年,Doug根據(jù)谷歌的論文設(shè)計(jì)了在Nutch中使用的MapReduce。同樣,二者的區(qū)別就是實(shí)現(xiàn)語(yǔ)言的不同。至此,分布式計(jì)算問(wèn)題解決,Nutch也可以正式使用。
6)而在Nutch0.8之后,Doug發(fā)現(xiàn)分布式存儲(chǔ)和計(jì)算不止可以用于Nutch,還可以用于其他很多領(lǐng)域,因此Doug將NDFS模塊以及MapReduce模塊獨(dú)立出來(lái),重命名為Hadoop,并將NDFS重命名為HDFS(Hadoop Distributed File System)。
7)2006年,Doug Cutting加入了Yahoo,雅虎為此專門成立了專門的團(tuán)隊(duì)和資源,將Hadoop發(fā)展成能夠以Web網(wǎng)絡(luò)規(guī)模運(yùn)行的系統(tǒng)。
8)Doug Cutting在Yahoo的工作期間,先后設(shè)計(jì)了Hive,Pig,HBase等。
9)后來(lái)Yahoo將Hadoop、Hive、Pig、HBase等貢獻(xiàn)給了Apache。
安裝和編譯
編譯
本次編譯以Hadoop3.2.4版本為基礎(chǔ)進(jìn)行。
1)進(jìn)入目錄,上傳或者下載Hadoop3.2.4源碼包。
# 進(jìn)入軟件的預(yù)裝目錄
cd /opt/presoftware
# 下載Hadoop的源碼包
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4-src.tar.gz
2)解壓:
tar -xvf hadoop-3.2.4-src.tar.gz -C /opt/source
?3)進(jìn)入Hadoop的源碼包:
cd /opt/source/hadoop-3.2.4-src
4)執(zhí)行編譯命令:
mvn -X clean package -Pdist,native,docs -DskipTests -Dtar -Dmaven.skip.test=true -Dmaven.javadoc.skip=true -Denforcer.skip=true
如果編譯過(guò)程中提示缺少DynamoDBLocal,則上傳的jar包之后,執(zhí)行:
mvn install:install-file \
-Dfile=DynamoDBLocal-1.11.86.jar \
-DgroupId=com.amazonaws \
-DartifactId=DynamoDBLocal \
-Dversion=1.11.86 \
-Dpackaging=jar
然后重新編譯即可。
5)編譯完成后,進(jìn)入目錄:
cd hadoop-dist/target
即可見(jiàn)到編譯產(chǎn)生的安裝包。
安裝
偽分布式
安裝Hadoop之前,需要先安裝JDK1.8(最好是JDK1.8.255及以上版本),關(guān)閉防火墻。
1)修改主機(jī)名:
vim /etc/hostname
# 將主機(jī)名改為自己指定的主機(jī)名,例如:
hadoop01
修改完成之后保存退出。
2)進(jìn)行IP映射:
vim /etc/hosts
# 添加IP映射,例如
192.168.160.151 hadoop01
修改完成之后保存退出。
3)關(guān)閉SELINUX:
vim /etc/selinux/config
# 將SELINUX屬性改為disabled
SELINUX=disabled
保存退出。
4)重啟:
reboot
5)配置免密登錄:
# 產(chǎn)生密鑰
ssh-keygen
# 傳輸公鑰
ssh-copy-id root@hadoop01
# 測(cè)試
ssh hadoop01
# 如果不需要密碼,則退出
logout
6)上傳或者下載Hadoop安裝包:
# 進(jìn)入軟件的預(yù)裝目錄
cd /opt/presoftware
# 官網(wǎng)下載地址
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
7)解壓:
tar -xvf hadoop-3.2.4.tar.gz -C /opt/software
8)進(jìn)入Hadoop配置目錄:
cd /opt/software/hadoop-3.2.4/etc/hadoop/
9)編輯文件:
vim hadoop-env.sh
# 添加屬性
export JAVA_HOME=/opt/software/jdk1.8
export HADOOP_CONF_DIR=/opt/software/hadoop-3.2.4/etc/hadoop
# 保存退出,重新生效
source hadoop-env.sh
10)編輯文件:
vim core-site.xml
在文件中添加:
保存退出。
11)編輯文件:
vim hdfs-site.xml
在文件中添加:
保存退出。
12)編輯文件:
vim mapred-site.xml
在文件中添加:
保存退出。
13)編輯文件:
vim yarn-site.xml
在文件中添加:
保存退出。
14)編輯文件:
vim workers
# 刪除掉原來(lái)的localhost,添加指定的主機(jī)名,例如
hadoop01
保存退出。
15)進(jìn)入Hadoop的子目錄sbin下:
cd /opt/software/hadoop-3.2.4/sbin/
16)修改文件:
vim start-dfs.sh
# 在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
保存退出。
17)修改文件:
vim stop-dfs.hs
# 在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
保存退出。
18)修改文件:
vim start-yarn.sh
# 在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
保存退出。
19)修改文件:
vim stop-yarn.sh
# 在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
保存退出。
20)配置環(huán)境變量:
vim /etc/profile.d/hadoophome.sh
export HADOOP_HOME=/opt/software/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 保存退出,重新生效
source /etc/profile.d/hadoophome.sh
# 檢查環(huán)境變量是否配置正確
hadoop version
21)格式化NameNode:
hdfs namenode -format
如果出現(xiàn):
Storage directory /opt/software/hadoop-3.2.3/tmp/dfs/name has been successfully formatted.
則表示格式化成功。
22)啟動(dòng)Hadoop:
start-all.sh
23)命令查看:
jps
# 應(yīng)該出現(xiàn)如下進(jìn)程
Jps
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
24)可以通過(guò)主機(jī)名:9870的方式來(lái)查看HDFS的頁(yè)面。
25)可以通過(guò)主機(jī)名:8088的方式來(lái)查看YARN的頁(yè)面。
完全分布式安裝(重要)
至少需要準(zhǔn)備3個(gè)節(jié)點(diǎn)。安裝Hadoop之前,需要先安裝JDK1.8(最好是JDK1.8.255及以上版本),關(guān)閉防火墻。節(jié)點(diǎn)部署如下表-1所示:
表-1 進(jìn)程分布
進(jìn)程/節(jié)點(diǎn) hadoop01 hadoop02 hadoop03 NameNode √ SecondaryNameNode √ DataNode √ √ √ ResourceManager √ NodeManager √ √ √ JobHistoryServer √
1)修改三個(gè)節(jié)點(diǎn)的主機(jī)名:
#?編輯文件
vim /etc/hostname
# 刪除掉原來(lái)的名稱,添加自己的主機(jī)名,例如第一個(gè)節(jié)點(diǎn)設(shè)置為hadoop01,第二個(gè)節(jié)點(diǎn)設(shè)置為hadoop02,第三個(gè)節(jié)點(diǎn)設(shè)置為hadoop03
修改完成之后保存退出。
2)進(jìn)行IP映射。注意,此時(shí)需要將三個(gè)節(jié)點(diǎn)的主機(jī)名和IP全部進(jìn)行映射!
#?編輯文件
vim /etc/hosts
#?在文件末尾添加映射,例如:
192.168.160.151 hadoop01
192.168.160.152 hadoop02
192.168.160.153 hadoop03
保存退出。
3)關(guān)閉SELINUX:
#?編輯文件
vim /etc/selinux/config
#?將selinux屬性的值改為disabled
SELINUX=disabled
保存退出。
4)重啟:
reboot
5)所有節(jié)點(diǎn)之間相互免密互通:
#?產(chǎn)生密鑰
ssh-keygen
#?拷貝公鑰
ssh-copy-id root@hadoop01
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
#?測(cè)試是否免密
ssh hadoop01 # 如果不需要密碼,輸入logout
ssh hadoop02?# 如果不需要密碼,輸入logout
ssh hadoop03?# 如果不需要密碼,輸入logout
6)進(jìn)入軟件預(yù)裝目錄,上傳或者下載Hadoop的安裝包:
#?進(jìn)入目錄
cd /opt/presoftware/
#?官網(wǎng)下載地址
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
7)解壓:
tar -xvf hadoop-3.2.4.tar.gz -C /opt/software/
8)進(jìn)入Hadoop的配置目錄:
cd /opt/software/hadoop-3.2.4/etc/hadoop/
9)修改文件:
#?編輯文件
vim hadoop-env.sh
#?在文件中添加
export JAVA_HOME=/opt/software/jdk1.8
export HADOOP_CONF_DIR=/opt/software/hadoop-3.2.4/etc/Hadoop
# 保存退出,生效
source hadoop-env.sh
10)編輯文件:
vim core-site.xml
在文件中添加:
保存退出。
11)編輯文件:
vim hdfs-site.xml
在文件中添加:
保存退出。
12)編輯文件:
vim mapred-site.xml
在文件中添加:
保存退出。
13)編輯文件:
vim yarn-site.xml
在文件中添加:
保存退出。
14)編輯文件:
vim workers
#?刪除掉原來(lái)的數(shù)據(jù),添加三個(gè)節(jié)點(diǎn)的主機(jī)名,例如:
hadoop01
hadoop02
hadoop03
保存退出。
15)進(jìn)入Hadoop的命令目錄:
cd ../../sbin/
16)修改文件:
vim start-dfs.sh
#?在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
保存退出。
17)修改文件:
vim stop-dfs.sh
#?在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
保存退出。
18)編輯文件:
vim start-yarn.sh
#?在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
HDFS_DATANODE_SECURE_USR=root
保存退出。
19)編輯文件:
vim stop-yarn.sh
# 在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
HDFS_DATANODE_SECURE_USR=root
保存退出。
20)配置歷史服務(wù)器(可選)。
cd ../etc/hadoop/
#?編輯文件
vim mapred-site.xml
在文件中添加:
21)?日志聚集(可選)。當(dāng)任務(wù)在運(yùn)行過(guò)程中,會(huì)產(chǎn)生大量的日志。那么此時(shí)日志分布在不同的服務(wù)器上,希望將日志匯聚上傳到HDFS上,這個(gè)過(guò)程稱之為日志聚集/匯聚。通過(guò)日志聚集,可以比較容易的查看程序的運(yùn)行日志,方便對(duì)程序進(jìn)行調(diào)試。
#?編輯文件
vim yarn-site.xml
在文件中添加:
22)遠(yuǎn)程分發(fā):
#?回到安裝目錄
cd /opt/software/
# 遠(yuǎn)程拷貝給其他的節(jié)點(diǎn)
scp -r hadoop-3.2.4/ root@hadoop02:$PWD
scp -r hadoop-3.2.4/ root@hadoop03:$PWD
23)配置環(huán)境變量:
# 編輯文件
vim /etc/profile.d/hadoophome.sh
# 在文件中添加
export HADOOP_HOME=/opt/software/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#?保存退出,生效
source /etc/profile.d/hadoophome.sh
# 測(cè)試
hadoop version
24)在第一個(gè)節(jié)點(diǎn)上格式化NameNode:
hdfs namenode -format
如果出現(xiàn):
Storage directory /opt/software/hadoop-3.2.4/tmp/dfs/name has been successfully formatted.
則表示格式化成功。
25)在第一個(gè)節(jié)點(diǎn)上啟動(dòng)HDFS:
start-dfs.sh
26)在第三個(gè)節(jié)點(diǎn)上啟動(dòng)YARN:
start-yarn.sh
27)在第二個(gè)節(jié)點(diǎn)上啟動(dòng)歷史服務(wù)器:
mapred --daemon start historyserver
28)查看進(jìn)程:
jps
#?hadoop01
Jps
NameNode
DataNode
NodeManager
#?hadoop02
Jps
DataNode
SecondaryNameNode
NodeManager
JobHistoryServer
#?hadoop03
Jps
DataNode
ResourceManager
NodeManager
29)可以通過(guò)主機(jī)名:9870的方式來(lái)查看HDFS的頁(yè)面。
30)可以通過(guò)主機(jī)名:8088的方式來(lái)查看YARN的頁(yè)面。
完全分布式高可用模式
環(huán)境準(zhǔn)備:至少需要準(zhǔn)備3個(gè)節(jié)點(diǎn),安裝Hadoop之前,需要先安裝JDK1.8(最好是JDK1.8.255及以上版本),關(guān)閉防火墻,需要安裝好Zookeeper(最好是Zookeeper3.5及以上版本)。進(jìn)程分布如下表-2所示:
表-2 進(jìn)程分布
進(jìn)程/節(jié)點(diǎn) ha01 ha02 ha03 NameNode √ √ √ DataNode √ √ √ JournalNode √ √ √ ResourceManager √ √ NodeManager √ √ √ DFSZKFailoverController √ √ √ QuorumPeerMain √ √ √ JobHistoryServer √
1)修改主機(jī)名:
#?編輯文件
vim /etc/hostname
# 刪除掉原來(lái)的,添加自己的主機(jī)名,例如第一個(gè)節(jié)點(diǎn)為ha01,第二個(gè)節(jié)點(diǎn)為ha02,第三個(gè)節(jié)點(diǎn)為ha03
修改完成之后保存退出。
2)進(jìn)行IP映射:
#?編輯文件
vim /etc/hosts
# 添加IP映射,例如
192.168.160.161 ha01
192.168.160.162 ha02
192.168.160.163 ha03
保存退出。
3)關(guān)閉SELINUX:
#?編輯文件
vim /etc/selinux/config
#?將selinux屬性值改為disabled
SELINUX=disabled
保存退出。
4)重啟:
reboot
5)配置免密互通:
#?產(chǎn)生密鑰
ssh-keygen
#?拷貝公鑰
ssh-copy-id root@ha01
ssh-copy-id root@ha02
ssh-copy-id root@ha02
#?測(cè)試
ssh ha01 # 如果不需要密碼,輸入logout
ssh ha02 # 如果不需要密碼,輸入logout
ssh ha03 # 如果不需要密碼,輸入logout
6)進(jìn)入軟件預(yù)裝目錄,上傳或者下載Hadoop的安裝包:
# 進(jìn)入預(yù)裝目錄
cd /opt/presoftware/
# 官網(wǎng)下載地址
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
7)解壓:
tar -xvf hadoop-3.2.4.tar.gz -C /opt/software/
8)進(jìn)入Hadoop的配置目錄:
cd /opt/software/hadoop-3.2.4/etc/hadoop/
9)編輯文件:
#?編輯文件
vim hadoop-env.sh
#?在文件中添加
export JAVA_HOME=/opt/software/jdk1.8
export HADOOP_CONF_DIR=/opt/software/hadoop-3.2.4/etc/hadoop
#?保存退出,生效
source hadoop-env.sh
10)編輯文件:
vim core-site.xml
在文件中添加:
保存退出。
11)修改文件:
vim hdfs-site.xml
在文件中添加:
????
保存退出。
12)修改文件:
vim mapred-site.xml
在文件中添加:
保存退出。
13)修改文件:
vim yarn-site.xml
在文件中添加:
????
????
保存退出。
14)添加子節(jié)點(diǎn):
#?編輯文件
vim workers
#?刪除掉原來(lái)的,添加所有節(jié)點(diǎn)的主機(jī)名,例如
ha01
ha02
ha03
保存退出。
15)進(jìn)入Hadoop的命令目錄:
cd ../../sbin/
16)編輯文件:
vim start-dfs.sh
#?在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
保存退出。
17)?編輯文件:
vim stop-dfs.sh
#?在文件頭部添加
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
保存退出。
18)編輯文件:
vim start-yarn.sh
#?在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
保存退出。
19)?編輯文件:
vim stop-yarn.sh
#?在文件頭部添加
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
保存退出。
20)遠(yuǎn)程分發(fā):
#?回到安裝目錄
cd /opt/software/
#?遠(yuǎn)程分發(fā)
scp -r hadoop-3.2.4/ root@ha02:$PWD
scp -r hadoop-3.2.4/ root@ha03:$PWD
21)配置環(huán)境變量:
#?編輯文件
vim /etc/profile.d/hadoophome.sh
#?在文件中添加
export HADOOP_HOME=/opt/software/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#?保存退出,生效
source /etc/profile.d/hadoophome.sh
#?測(cè)試
hadoop version
22)啟動(dòng)Zookeeper:
#?啟動(dòng)
zkServer.sh start
#?查看狀態(tài)
zkServer.sh status
23)在第一個(gè)節(jié)點(diǎn)上向Zookeeper注冊(cè)節(jié)點(diǎn):
hdfs zkfc -formatZK
如果出現(xiàn):
Successfully created /hadoop-ha/ns in ZK.
則表示注冊(cè)成功。
24)三個(gè)節(jié)點(diǎn)啟動(dòng)JournalNode:
hdfs --daemon start journalnode
25)在第一個(gè)節(jié)點(diǎn)上格式化NameNode:
hdfs namenode -format
如果出現(xiàn):
Storage directory /opt/software/hadoop-3.2.4/tmp/hdfs/name has been successfully formatted.
則表示格式化成功。
26)在第一個(gè)節(jié)點(diǎn)上啟動(dòng)NameNode:
hdfs --daemon start namenode
27)在其他節(jié)點(diǎn)上格式化NameNode:
hdfs namenode -bootstrapStandby
如果出現(xiàn):
Storage directory /opt/software/hadoop-3.2.4/tmp/hdfs/name has been successfully formatted.
則表示格式化成功。
28)在其他節(jié)點(diǎn)上啟動(dòng)NameNode:
hdfs --daemon start namenode
29)三個(gè)節(jié)點(diǎn)啟動(dòng)DataNode:
hdfs --daemon start datanode
30)三個(gè)節(jié)點(diǎn)啟動(dòng)zkfc:
hdfs --daemon start zkfc
31)在第三個(gè)節(jié)點(diǎn)上啟動(dòng)YARN:
start-yarn.sh
32)在第二個(gè)節(jié)點(diǎn)上啟動(dòng)歷史服務(wù)器:
mapred --daemon start historyserver
33)查看進(jìn)程:
jps
#?ha01
Jps
NameNode
DataNode
JournalNode
ResourceManager
NodeManager
DFSZKFailoverController
QuorumPeerMain
#?ha02
Jps
NameNode
DataNode
JournalNode
NodeManager
DFSZKFailoverController
JobHistoryServer
QuorumPeerMain
#?ha03
Jps
NameNode
DataNode
JournalNode
ResourceManager
NodeManager
DFSZKFailoverController
QuorumPeerMain
34)可以通過(guò)主機(jī)名:9870的方式來(lái)查看HDFS的頁(yè)面。
35)可以通過(guò)主機(jī)名:8088的方式來(lái)查看YARN的頁(yè)面。
柚子快報(bào)邀請(qǐng)碼778899分享:Hadoop簡(jiǎn)介
精彩鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。