文章較長,附目錄,此次安裝是在VM虛擬環(huán)境下進(jìn)行。文章第一節(jié)主要是介紹Hadoop與Hadoop生態(tài)圈并了解Hadoop三種集群的區(qū)別,第二節(jié)和大家一起下載,配置Linux三種集群以及大數(shù)據(jù)相關(guān)所需的jdk,zookeeper,只需安裝配置的朋友可以直接跳到文章第二節(jié)。同時,希望我的文章能幫助到你,如果覺得我的文章寫的不錯,請留下你寶貴的點贊,謝謝。
目錄
一、了解Hadoop
Hadoop
什么是Hadoop
Hadoop的歷史
Hadoop的特點
Hadoop的生態(tài)系統(tǒng)
1.HDFS
2.MapReduce
3.YARN
4.Hive
5.HBase
6.Oozie
7.Mahout
8.spark
9.Flink
10.zookeeper
二、下載安裝包
jdk官網(wǎng)下載地址
Hadoop官網(wǎng)下載地址
zookeeper官網(wǎng)下載地址
三、Hadoop集群搭建
一、偽分布式搭建
二、完全分布式搭建
三、高可用搭建+zookeeper
拓展、Hadoop 與?HPCC的區(qū)別
一、了解Hadoop
Hadoop
什么是Hadoop
Hadoop官網(wǎng)介紹
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),是一個開源的框架,用于編寫和運行分布式應(yīng)用以處理大規(guī)模數(shù)據(jù)。它最初是從Nutch項目中分離出來的,專門負(fù)責(zé)分布式存儲以及分布式運算。Hadoop的核心主要包含HDFS(Hadoop Distributed File System,分布式文件系統(tǒng))和MapReduce(分布式數(shù)據(jù)處理模型)。
HDFS用于分布式存儲海量數(shù)據(jù),而MapReduce則用于數(shù)據(jù)的分布式處理,其本質(zhì)是并行處理。Hadoop的數(shù)據(jù)來源可以是任意類型的,它在處理半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)時與關(guān)系型數(shù)據(jù)庫相比有更好的性能和靈活性。任何類型的數(shù)據(jù)最終都會轉(zhuǎn)化成key/value的形式,這是Hadoop的基本數(shù)據(jù)單元。
Hadoop專為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計,并不適合對少量記錄進(jìn)行隨機在線處理的模式。在實際應(yīng)用中,Hadoop常被用于日志分析等任務(wù),還可以與Hive等工具配合使用以進(jìn)一步提升數(shù)據(jù)處理能力。
總的來說,Hadoop是一個可以更容易開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺,用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。
Hadoop的歷史
Hadoop的歷史
Hadoop起源于Apache Nutch項目,始于2002年,是Apache?Lucene的子項目之一?[2]。2004年,Google在“操作系統(tǒng)設(shè)計與實現(xiàn)”(Operating System Design and Implementation,OSDI)會議上公開發(fā)表了題為MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:簡化大規(guī)模集群上的數(shù)據(jù)處理)的論文之后,受到啟發(fā)的Doug Cutting等人開始嘗試實現(xiàn)MapReduce計算框架,并將它與NDFS(Nutch Distributed File System)結(jié)合,用以支持Nutch引擎的主要算法?[2]。由于NDFS和MapReduce在Nutch引擎中有著良好的應(yīng)用,所以它們于2006年2月被分離出來,成為一套完整而獨立的軟件,并被命名為Hadoop。到了2008年年初,hadoop已成為Apache的頂級項目,包含眾多子項目,被應(yīng)用到包括Yahoo在內(nèi)的很多互聯(lián)網(wǎng)公司
Hadoop的特點
?Hadoop的特點
- 高可靠性:Hadoop采用分布式存儲,將數(shù)據(jù)備份多份并分發(fā)至不同的機器進(jìn)行保存,避免了因機器宕機導(dǎo)致的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的安全性和可靠性。即使Hadoop的某個計算元素或存儲出現(xiàn)故障,也不會導(dǎo)致數(shù)據(jù)丟失。
- 高擴展性:Hadoop是一個高度可擴展的系統(tǒng),可以在集群間分配任務(wù)數(shù)據(jù),方便地擴展到數(shù)以千計的節(jié)點。當(dāng)現(xiàn)有集群的資源不足以完成數(shù)據(jù)處理和分析任務(wù)時,可以通過快速擴充集群規(guī)模進(jìn)行擴容,從而加強集群的運算能力。
- 高效性:Hadoop采用MapReduce編程模型,能夠并行工作,以加快任務(wù)處理速度。它能夠在節(jié)點之間動態(tài)地移動數(shù)據(jù),并保證各個節(jié)點的動態(tài)平衡,因此處理速度非???。相比傳統(tǒng)的單臺機器處理數(shù)據(jù),Hadoop的效率得到了極大的提升。
- 高容錯性:Hadoop能夠自動保存數(shù)據(jù)的多個副本,當(dāng)某個節(jié)點宕機時,它可以自動地將副本復(fù)制給其他機器,保證數(shù)據(jù)的完整性。同時,Hadoop能夠自動將失敗的任務(wù)重新分配,確保任務(wù)的順利完成。
- 低成本:Hadoop可以運行在廉價的機器上,集群可以將程序并發(fā)處理,從而降低成本,提高效率,是處理海量數(shù)據(jù)的最佳選擇。
Hadoop的生態(tài)系統(tǒng)
Hadoop的生態(tài)系統(tǒng)
Hadoop生態(tài)系統(tǒng)是大數(shù)據(jù)的核心,同時,Hadoop也是大量工具的合集。它們一起協(xié)同完成特定的任務(wù),組成Hadoop的生態(tài)圈,在這里,我要講的是Hadoop生態(tài)系統(tǒng)的版本為2.X,如上圖所示。
1.HDFS
HDFS是Hadoop生態(tài)系統(tǒng)的核心組成部分之一,它是一個分布式文件系統(tǒng),用于存儲和管理大規(guī)模數(shù)據(jù)集。HDFS的設(shè)計目標(biāo)是提供高吞吐量的數(shù)據(jù)訪問,適合處理超大規(guī)模數(shù)據(jù)集。它通過將數(shù)據(jù)分塊并分布在集群中的多個節(jié)點上來實現(xiàn)數(shù)據(jù)的分布式存儲,同時提供數(shù)據(jù)復(fù)制和容錯機制以確保數(shù)據(jù)的安全性和可靠性。
2.MapReduce
MapReduce是Hadoop的另一個核心組件,它是一種編程模型和執(zhí)行環(huán)境,用于處理和分析大規(guī)模數(shù)據(jù)集。MapReduce將復(fù)雜的數(shù)據(jù)處理任務(wù)分解為兩個主要階段:Map階段和Reduce階段。在Map階段,系統(tǒng)將數(shù)據(jù)劃分為多個子集,并在集群中的節(jié)點上并行處理這些子集。在Reduce階段,系統(tǒng)對Map階段的結(jié)果進(jìn)行匯總和合并,生成最終的處理結(jié)果。這種并行處理的方式大大提高了數(shù)據(jù)處理的速度和效率。
3.YARN
YARN是Hadoop 2.0中引入的一個新的資源管理系統(tǒng),它負(fù)責(zé)集群資源的調(diào)度和管理。YARN將資源管理和應(yīng)用程序管理分離,使得Hadoop集群能夠同時運行多種類型的應(yīng)用程序。YARN通過引入一個全局的資源管理器(ResourceManager)和多個節(jié)點管理器(NodeManager)來實現(xiàn)對集群資源的統(tǒng)一管理和調(diào)度。ResourceManager負(fù)責(zé)接收來自應(yīng)用程序的任務(wù)請求,并根據(jù)集群的資源狀況進(jìn)行任務(wù)調(diào)度和分配。NodeManager則負(fù)責(zé)在節(jié)點上啟動和管理任務(wù)執(zhí)行容器(Container),確保任務(wù)能夠順利執(zhí)行。
4.Hive
Hive是一個構(gòu)建在Hadoop上的數(shù)據(jù)倉庫工具,它提供了類似SQL的查詢語言HQL,使得用戶能夠方便地進(jìn)行數(shù)據(jù)分析和查詢。Hive將結(jié)構(gòu)化數(shù)據(jù)存儲在HDFS中,并通過MapReduce進(jìn)行計算。它使得數(shù)據(jù)分析和處理變得更加簡單和直觀,尤其適合那些熟悉SQL但不熟悉Java編程的數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家。
5.HBase
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),它運行在HDFS上,提供了高可靠性、高性能、列存儲、可伸縮、實時讀寫等特性。HBase利用Hadoop的HDFS作為其底層的存儲支持,利用Hadoop的MapReduce來處理HBase中的海量數(shù)據(jù),從而提供高并發(fā)讀寫服務(wù)的能力。
此外,Hadoop生態(tài)系統(tǒng)還不斷擴展和演進(jìn),新的工具和組件不斷涌現(xiàn),以滿足不同領(lǐng)域和場景的需求。這些工具和組件的協(xié)同工作,使得Hadoop生態(tài)系統(tǒng)成為了一個強大而靈活的平臺,能夠處理和分析各種規(guī)模的數(shù)據(jù)集,為數(shù)據(jù)驅(qū)動的業(yè)務(wù)決策提供了有力的支持。
總的來說,Hadoop的生態(tài)系統(tǒng)是一個龐大而復(fù)雜的集合,它提供了豐富的功能和工具,使得用戶可以輕松地構(gòu)建和部署分布式應(yīng)用程序,以處理和分析大規(guī)模數(shù)據(jù)。隨著技術(shù)的不斷發(fā)展,Hadoop生態(tài)系統(tǒng)將繼續(xù)擴展和完善,為更多領(lǐng)域和場景提供強大的數(shù)據(jù)處理和分析能力。
6.Oozie
Oozie是一個Java Web應(yīng)用程序,運行在Java Servlet容器中,用于管理Hadoop作業(yè)的工作流。它使用數(shù)據(jù)庫來存儲工作流定義以及當(dāng)前運行的工作流實例的狀態(tài)和變量。Oozie工作流是通過放置在控制依賴DAG中的一組動作來定義的,這些動作包括Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等,并指定了它們執(zhí)行的順序。
7.Mahout
在Hadoop生態(tài)圈中,Mahout起到了提供可擴展機器學(xué)習(xí)算法實現(xiàn)的重要作用。它幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序,通過利用Hadoop的分布式計算框架,Mahout將原本運行于單機上的機器學(xué)習(xí)算法轉(zhuǎn)化為了MapReduce模式,從而提升了算法可處理的數(shù)據(jù)量和處理性能。這使得Mahout能夠有效地擴展到云中,利用云計算的優(yōu)勢進(jìn)行大規(guī)模數(shù)據(jù)處理和分析。
8.spark
在Hadoop的生態(tài)圈中,Apache Spark擔(dān)當(dāng)著至關(guān)重要的角色。作為一個快速、通用的大規(guī)模數(shù)據(jù)處理引擎,Spark補充并擴展了Hadoop的能力,為用戶提供了更為強大和靈活的數(shù)據(jù)處理工具。
9.Flink
Apache Flink是一個開源的流處理框架,其核心是一個用Java和Scala編寫的分布式流數(shù)據(jù)流引擎,以對無界和有界數(shù)據(jù)流進(jìn)行有狀態(tài)計算。Flink被設(shè)計在所有常見的集群環(huán)境中運行,以內(nèi)存執(zhí)行速度和任意規(guī)模來執(zhí)行計算。
Flink的出現(xiàn)代表了數(shù)據(jù)處理技術(shù)的進(jìn)步。作為第三代大數(shù)據(jù)引擎(第一代為Hadoop,第二代為Spark),F(xiàn)link在實時計算方面有著顯著的優(yōu)勢。雖然其設(shè)計初衷是為實時計算而設(shè)計,但由于其計算引擎的強大,也可以進(jìn)行離線計算
10.zookeeper
Zookeeper是一個開源的分布式協(xié)調(diào)服務(wù),其設(shè)計目標(biāo)是將那些復(fù)雜的且容易出錯的分布式一致性服務(wù)封裝起來,構(gòu)成一個高效可靠的原語集,并以一些簡單的接口提供給用戶使用。它主要為分布式應(yīng)用提供協(xié)調(diào)服務(wù),確保在分布式系統(tǒng)中的各個部分能夠協(xié)同工作。
在Zookeeper中,并沒有沿用傳統(tǒng)的Master/Slave概念,而是引入了Leader、Follower、Observer三種角色。其中,Leader是領(lǐng)導(dǎo)者,負(fù)責(zé)進(jìn)行投票的發(fā)起和決議,更新系統(tǒng)狀態(tài);Follower是跟隨者,用于接收客戶端請求并轉(zhuǎn)發(fā)給Leader,在選舉過程中參與投票;Observer是觀察者,可以接收客戶端請求并轉(zhuǎn)發(fā)給Leader,但不參與投票過程,通常用于提高讀取性能。
二、下載安裝包
jdk官網(wǎng)下載地址
這里我選擇下載的是一個Linux中的免安裝版本,大家可根據(jù)自己的需求選擇版本,但一定要選擇各組件相互兼容的版本。
Hadoop官網(wǎng)下載地址
zookeeper官網(wǎng)下載地址
以上安裝包,選擇自己需要的版本下載即可
三、Hadoop集群搭建
? 我使用的主機、從機名稱分別為BigData01,BigData02,BigData03,Jdk版本為jdk-8u171,? ? Hadoop版本為hadoop-2.7.5,zookeeper版本為zookeeper-3.4.5,解壓到opt下,如有主機從? ? 機名稱,ip,版本,路徑與我不一致的,更改成自己的即可。zookeeper我會在高可用中配置,? ? 其他兩種直接套即可。
#將下載的壓縮包上傳到Downloads中并解壓到opt下
tar -zxvf /root/Downloads/hadoop-2.7.5.tar.gz -C /opt/
tar -zxvf /root/Downloads/jdk-8u171-linux-x64.tar.gz -C /opt/
vim /etc/profile
#在配置文件結(jié)尾添加以下內(nèi)容
export JAVA_HOME=/opt/jdk1.8.0_171
export HADOOP_HOME=/opt/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#刷新配置文件
source /etc/profile
#查看java jdk、hadoop是否可用
java -version
hadoop version
? 先將主機關(guān)機,克隆兩個從機(右擊主機虛擬機 > 管理 > 克隆)
vim /etc/hosts
#配置hosts文件,刪除原有內(nèi)容,添加主機從機名稱和ip地址(ifconfig查看)
192.168.67.128 BigData01
192.168.67.129 BigData02
192.168.67.130 BigData03
scp /etc/hosts/ root@BigData02:/etc
scp /etc/hosts/ root@BigData03:/etc
#配置ssh免密登錄
ssh-keygen -t rsa
cd ~/.ssh/
cat ./id_rsa.pub >> ./authorized_keys
scp ./authorized_keys root@BigData02:/.ssh
scp ./authorized_keys root@BigData03:/.ssh
ssh-copy-id s1的ip
ssh-copy-id s1的ip
? 自此,選擇跟著一搭建就是偽分布式,跟著二搭建就是完全分布式文章來源:http://www.zghlxwxcb.cn/news/detail-841601.html
一、偽分布式搭建
vim /opt/hadoop-2.7.5/etc/hadoop/hadoop-env.sh
#在文件結(jié)尾添加下面代碼
export JAVA_HOME=/opt/jdk1.8.0_171
vim /opt/hadoop-2.7.5/etc/hadoop/core-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>fs.defaultFS</name>
<value>hdfs://BigData01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp</value>
</property>
vim /opt/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>ds.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp/dfs/data</value>
</property>
cd /opt/hadoop-2.7.5/sbin
hdfs namenode -format
./start-all.sh
jps
#主機出現(xiàn)NameNode,Datanode即成功
二、完全分布式搭建
vim /opt/hadoopHA/etc/hadoop/hadoop-env.sh
#在文件末尾添加下面代碼
export JAVA_HOME=/opt/jdk1.8.0_171
vim /opt/hadoop-2.7.5/etc/hadoop/core-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>fs.defaultFS</name>
<value>hdfs://BigData01:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp</value>
</property>
vim /opt/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.7.5/tmp/dfs/data</value>
</property>
vim /opt/hadoop-2.7.5/etc/hadoop/yarn-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>BigData01</value>
</property>
cd /opt/hadoop-2.7.5/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vim /opt/hadoop-2.7.5/etc/hadoop/mapred-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
scp -r /opt/hadoop-2.7.5/ root@BigData02:/opt/
輸入 yes
scp -r /opt/hadoop-2.7.5/ root@BigData03:/opt/
輸入 yes
cd /opt/hadoop-2.7.5/sbin
hdfs namenode -format
start-all.sh
#三個節(jié)點分別jps
jps
#主機上出現(xiàn)NodeManager、NameNode、ResourceManager、DataNode
從機1出現(xiàn)NodeManager、SecondaryNameNode、DataNode
從機2出現(xiàn)DataNode、NodeManager
即配置成功
三、高可用搭建+zookeeper
tar zxvf /root/Downloads/jdk-8u171-linux-x64.tar.gz -C/opt/
tar zxvf /root/Downloads/zookeeper-3.4.5.tar.gz -C/opt/
tar zxvf /root/Downloads/hadoop-2.7.5.tar.gz -C/opt/
vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171
export HADOOP_HOME=/opt/hadoopHA
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
mv /opt/zookeeper-3.4.5/ /opt/zookeeper
mv /opt/hadoop-2.7.5/ /opt/hadoopHA
cd /opt/zookeeper
mkdir data && mkdir logs
#克隆BigData02,BigData03
vim /etc/hosts
192.168.67.128 BigData01
192.168.67.129 BigData02
192.168.67.130 BigData03
#(根據(jù)實際ip改變)
scp -r /etc/hosts @BigData02:/etc/
scp -r /etc/hosts @BigData03:/etc/
#(接yes和密碼)
#免密登錄
ssh-keygen -t rsa
cd ~/.ssh/
cat ./id_rsa.pub >> ./authorized_keys
scp ./authorized_keys root@BigData02:/.ssh
scp ./authorized_keys root@BigData03:/.ssh
ssh-copy-id BigData02
ssh-copy-id BigData03
echo 1 > /opt/zookeeper/data/myid
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
vim /opt/zookeeper/conf/zoo.cfg
修改dataDir=/opt/zookeeper/data
末尾添加:
server.1=BigData01:2888:3888
server.2=BigData02:2888:3888
server.3=BigData03:2888:3888
scp -r /opt/zookeeper root@BigData02:/opt/
scp -r /opt/zookeeper root@BigData03:/opt/
02虛擬機下:echo 2 > /opt/zookeeper/data/myid
03虛擬機下:echo 3 > /opt/zookeeper/data/myid
三個節(jié)點下:
systemctl stop firewalld.service
zkServer.sh start
zkServer.sh status
cd /opt/hadoopHA/
mkdir tmp
scp -r /opt/hadoopHA/tmp @BigData02:/opt/hadoopHA/
scp -r /opt/hadoopHA/tmp @BigData03:/opt/hadoopHA/
vim /opt/hadoopHA/etc/hadoop/hadoop-env.sh
#在文件末尾添加下面代碼
export JAVA_HOME=/opt/jdk1.8.0_171
vim /opt/hadoopHA/etc/hadoop/core-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<!--指定HDFS的通信地址-->
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<property>
<!--指定hadoop運行時產(chǎn)生文件的存儲路徑(即臨時目錄)-->
<name>hadoop.tmp.dir</name>
<value>/opt/hadoopHA/tmp</value>
</property>
<property>
<!--指定ZooKeeper地址(2181端口參考zoo.cfg配置文件) -->
<name>ha.zookeeper.quorum</name>
<value>BigData01:2181,BigData02:2181,BigData03:2181</value>
</property>
vim /opt/hadoopHA/etc/hadoop/hdfs-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<!--指定HDFS的nameservices為ns1,需要與core-site.xml保持一致-->
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<property>
<!--ns1下面設(shè)置2個NameNode,分別是nn1,nn2-->
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<property>
<!--設(shè)置nn1的RPC通信地址-->
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>BigData01:9000</value>
</property>
<property>
<!--設(shè)置nn1的http通信地址-->
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>BigData01:50070</value>
</property>
<property>
<!--設(shè)置nn2的RPC通信地址-->
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>BigData02:9000</value>
</property>
<property>
<!--設(shè)置nn2的http通信地址-->
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>BigData02:50070</value>
</property>
<property>
<!--設(shè)置NameNode的元數(shù)據(jù)在JournalNode上的存放位置-->
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://BigData01:8485;BigData02:8485;BigData03:8485/ns1</value>
</property>
<property>
<!--指定JournalNode存放edits日志的目錄位置-->
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoopHA/tmp/dfs/journal</value>
</property>
<property>
<!--開啟NameNode失敗自動切換-->
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<!--配置失敗自動切換實現(xiàn)方式-->
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<!--配置隔離機制-->
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!--設(shè)置使用隔離機制時需要的SSH免登錄-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
vim /opt/hadoopHA/etc/hadoop/yarn-site.xml
#在<configuration></configuration>里添加下面代碼
<property>
<!--設(shè)置resourcemanager在哪個節(jié)點上-->
<name>yarn.resourcemanager.hostname</name>
<value>BigData01</value>
</property>
<property>
<!--Reducer取數(shù)據(jù)的方法是mapreduce_shuffle-->
<!--指定nodemanager啟動時加載server的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
cd /opt/hadoopHA/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
cd
vim /opt/hadoopHA/etc/hadoop/mapred-site.xml
<property>
<!--指定MR(mapreduce)框架使用YARN方式-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vim /opt/hadoopHA/etc/hadoop/slaves
BigData01
BigData02
BigData03
scp -r /opt/hadoopHA root@BigData02:/opt/
scp -r /opt/hadoopHA root@BigData03:/opt/
三個節(jié)點啟動zookeeper,查看狀態(tài)
zkServer.sh start
zkServer.sh status
jps查看進(jìn)程
hadoop-daemon.sh start journalnode
主節(jié)點下:
hdfs namenode -format
scp -r /opt/hadoopHA/tmp/dfs @BigData02:/opt/hadoopHA/tmp/
hadoop-daemon.sh start namenode
另外一個namenode節(jié)點下(從節(jié)點1):
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode
主節(jié)點下:
hdfs zkfc -formatZK 格式化
啟動服務(wù):
start-dfs.sh
start-yarn.sh
查看進(jìn)程:
jps
jps下
BigData01 -- NameNode、DataNode、NodeManager、ResourceManager、
JournalNode、QuorumPeerMain、DFSZKFailoverController
BigData02 -- NameNode、DataNode、NodeManager、
JournalNode、QuorumPeerMain、DFSZKFailoverController
BigData03 -- DataNode、NodeManager、
JournalNode、QuorumPeerMain
即可安裝成功
關(guān)機前關(guān)閉集群服務(wù):
stop-yarn.sh
stop-dfs.sh
瀏覽器打開查看
http://192.168.67.130:50070/
http://192.168.67.128:50070
根據(jù)實際ip地址查看
拓展、Hadoop 與?HPCC的區(qū)別
-
架構(gòu)與中間件:
- Hadoop是一個開源的分布式計算平臺,其核心組件包括HDFS(分布式文件系統(tǒng))和MapReduce(編程模型)。它通常通過命令行或API與應(yīng)用程序進(jìn)行交互。
- HPCC則提供了更為豐富的中間件,包括ECL代碼倉庫、ECL服務(wù)器、ESP服務(wù)器(提供認(rèn)證、日志記錄等功能)以及Dali服務(wù)器(用作存儲任務(wù)工作單元信息和為分布式文件系統(tǒng)提供名字服務(wù))等。這些中間件為HPCC提供了更多的靈活性和功能。
-
擴展性:
- Hadoop在理論上可以擴展到數(shù)千個節(jié)點,但在實際部署中,隨著集群規(guī)模的增大,管理和維護(hù)的復(fù)雜性也會增加。
- HPCC被設(shè)計為可以靈活地運行在一個到幾千個節(jié)點上,并且在實際應(yīng)用中,較小的節(jié)點數(shù)量就可以提供與Hadoop集群相當(dāng)?shù)奶幚硇阅?。然而,集群的大小可能取決于分布式文件系統(tǒng)的整體存儲需求。
-
性能:
- 在基準(zhǔn)測試中,HPCC在某些場景下表現(xiàn)出比Hadoop更高的性能。例如,在排序基準(zhǔn)測試中,HPCC平臺在高性能的400個節(jié)點系統(tǒng)上102秒內(nèi)對1TB的數(shù)據(jù)完成排序,而相同硬件配置下的Hadoop則需要25分鐘28秒。
- 然而,性能的比較也取決于具體的任務(wù)、數(shù)據(jù)分布以及硬件配置等因素,因此在實際應(yīng)用中可能會有所不同。
-
生態(tài)系統(tǒng)與集成:
- Hadoop擁有龐大的生態(tài)系統(tǒng)和豐富的工具集,包括Hive(數(shù)據(jù)倉庫工具)、Pig(數(shù)據(jù)流語言)、HBase(分布式數(shù)據(jù)庫)等,使得用戶可以方便地進(jìn)行各種數(shù)據(jù)處理和分析任務(wù)。
- HPCC也提供了一套工具和接口,用于管理和監(jiān)視其配置和環(huán)境。然而,與Hadoop相比,其生態(tài)系統(tǒng)可能相對較小,工具和集成選項可能有限。
-
社區(qū)與支持:
- Hadoop作為開源項目的代表,擁有龐大的社區(qū)和廣泛的行業(yè)支持。這使得Hadoop在問題解決、功能更新和文檔完善等方面通常能夠得到及時的響應(yīng)。
- HPCC的社區(qū)規(guī)模和支持情況可能因具體產(chǎn)品而異。在選擇平臺時,了解社區(qū)的活躍度和支持力度是非常重要的。
Hadoop的優(yōu)勢:
- 廣泛的行業(yè)認(rèn)可和應(yīng)用:Hadoop已經(jīng)在多個行業(yè)得到了廣泛的應(yīng)用,包括金融、電商、醫(yī)療、科研等。眾多企業(yè)已經(jīng)成功地將Hadoop集成到他們的數(shù)據(jù)分析和處理流程中,并取得了顯著的成果。這種廣泛的行業(yè)認(rèn)可和應(yīng)用進(jìn)一步推動了Hadoop的普及和發(fā)展。
- 可擴展性和靈活性:Hadoop的分布式架構(gòu)使其能夠處理大規(guī)模的數(shù)據(jù)集,并且具有良好的可擴展性。無論是處理結(jié)構(gòu)化、半結(jié)構(gòu)化還是非結(jié)構(gòu)化數(shù)據(jù),Hadoop都能提供高效的解決方案。同時,Hadoop的靈活性也使得它能夠適應(yīng)不同的業(yè)務(wù)場景和需求。
- 成本效益:Hadoop是一個開源項目,可以免費使用和修改。這使得企業(yè)能夠以較低的成本構(gòu)建和維護(hù)大數(shù)據(jù)處理平臺。此外,Hadoop的硬件要求相對較低,可以使用普通的商用硬件進(jìn)行部署,進(jìn)一步降低了企業(yè)的成本負(fù)擔(dān)。
總結(jié):雖然Hadoop比HPCC來說,有強大的生態(tài)系統(tǒng)、廣泛的行業(yè)認(rèn)可、可擴展性和靈活性以及成本效益等方面的優(yōu)勢,但選擇適合的大數(shù)據(jù)處理和分析工具時,應(yīng)根據(jù)具體的需求、數(shù)據(jù)規(guī)模、處理速度要求以及資源限制等因素進(jìn)行綜合考慮。文章來源地址http://www.zghlxwxcb.cn/news/detail-841601.html
到了這里,關(guān)于Linux-一篇文章,速通Hadoop集群之偽分布式,完全分布式,高可用搭建(附zookeeper,jdk介紹與安裝)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!