Hadoop是一個(gè)能夠?qū)?strong>大量數(shù)據(jù)進(jìn)行分布式處理的軟件框架,并且是以一種可靠、高效、可伸縮的方式進(jìn)行處理的,它具有以下幾個(gè)方面的特性
一款分布式文件系統(tǒng),來源于2003年10月Google發(fā)表的GFS論文,是Hadoop體系中數(shù)據(jù)存儲管理的基礎(chǔ),兩大核心之一。HDFS具有高容錯(cuò)性,在設(shè)計(jì)上HDFS把硬件故障當(dāng)成常態(tài)來考慮,所以它能檢測到出現(xiàn)故障的硬件,并加以解決,不僅體現(xiàn)它的可靠性。HDFS通過流式數(shù)據(jù)訪問,提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問功能,適合帶有大型數(shù)據(jù)集的應(yīng)用程序。
YARN是為在現(xiàn)有的和新的Hadoop集群上工作而設(shè)計(jì)的資源調(diào)度器。從Apache Hadoop2.0版本開始,YARN不但為已有的MapReduce應(yīng)用提供了全面的兼容,也致力于支持幾乎所有的分布式應(yīng)用,實(shí)現(xiàn)了在Hadoop框架上運(yùn)行其他非MapReduce作業(yè)
一種計(jì)算模型,來源于2004年12月Google發(fā)表的一篇關(guān)于MapReduce的論文,可用于海量數(shù)據(jù)的計(jì)算。其中,Map函數(shù)對數(shù)據(jù)集上的獨(dú)立元素進(jìn)行指定的操作,生成Key-Value對形式的中間結(jié)果。Reduce函數(shù)則對Map函數(shù)得到的所有Key-Value對中相同Key的所有Value進(jìn)行規(guī)約來得到最后的結(jié)果,簡單地說,就是“分而治之”。MapReduce適用于大量計(jì)算機(jī)組成的分布式并行環(huán)境。
一種分布式的、可用性高的協(xié)調(diào)服務(wù),來源于2006年11月Google發(fā)表的Chubby論文。Zookeeper提供分布式鎖之類的基本服務(wù)用于構(gòu)建分布式應(yīng)用。
一種分布式的、按列存儲的數(shù)據(jù)庫,來源于2006年11月Google發(fā)表的Bigtable論文。HBase采用了BigTable的數(shù)據(jù)模型:增強(qiáng)的稀疏排序映射表(key/value),其中鍵由行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳構(gòu)成。HBase使用HDFS作為底層存儲,同時(shí)支持MapReduce的批量試計(jì)算和點(diǎn)查詢(隨機(jī)讀取),它將數(shù)據(jù)存儲和并行計(jì)算完美地結(jié)合在一起。
Hive由Facebook開源,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計(jì)問題,一種分布式的、按列存儲的數(shù)據(jù)倉庫。Hive管理HDFS中存儲的數(shù)據(jù),并提供基于SQL的查詢語句HQL,將SQL轉(zhuǎn)化為MapReduce任務(wù)在Hadoop上執(zhí)行,用以查詢數(shù)據(jù)。
數(shù)據(jù)流語言和運(yùn)行環(huán)境,由Yahoo開源,用以探究非常龐大的數(shù)據(jù)集。Pig運(yùn)行在MapReduce和HDFS集群上。
Mahout最初是Apache Lucent的子項(xiàng)目,隨著它的快速發(fā)展,如今已經(jīng)是Apache的頂級項(xiàng)目。Mahout包含了分類、聚類、推薦引擎(協(xié)同過濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。除此之外,Mahout還包含數(shù)據(jù)的輸入/輸出工具和與其他存儲系統(tǒng)集成等數(shù)據(jù)挖掘支持架構(gòu)。
Sqoop是SQL-to-Hadoop的縮寫,該工具用于在結(jié)構(gòu)化數(shù)據(jù)存儲(如關(guān)系型數(shù)據(jù)庫)和HDFS之間高效批量傳輸數(shù)據(jù)。數(shù)據(jù)的導(dǎo)入和導(dǎo)出本質(zhì)上是MapReduce程序,充分利用了MR的并行化和容錯(cuò)性。
Flume是Cloudera開源的日志收集系統(tǒng),具有分布式、高可靠、高容錯(cuò)、易于定制和擴(kuò)展的特點(diǎn)。它將數(shù)據(jù)從產(chǎn)生到傳輸再到處理以及最后寫入目標(biāo)路徑的過程抽象為數(shù)據(jù)流,在具體的數(shù)據(jù)流中,數(shù)據(jù)源支持在Flume中定制數(shù)據(jù)發(fā)送方,從而支持收集各種不同協(xié)議數(shù)據(jù)。同時(shí),Flume數(shù)據(jù)流提供對日志數(shù)據(jù)進(jìn)行簡單處理的能力。除此之外,Flume還具有能夠?qū)⑷罩緦懭敫鞣N數(shù)據(jù)目標(biāo)(可定制)的能力??偟膩碚f,Flume是一個(gè)可擴(kuò)展、適合復(fù)雜環(huán)境的海量日志收集系統(tǒng)。
cd 進(jìn)入 Hadoop 安裝包存放位置,執(zhí)行 tar 命令將 hadoop-3.1.3.tar.gz 解壓到/usr/local 目錄下,ls 查看是否生成了 hadoop3.1.3 文件夾。
編輯用戶環(huán)境配置文件
cd /usr/local
sudo vim ~/.bashrc
配置HADOOP_HOME、PATH環(huán)境變量,保存并退出文件
. ~/.bashrc
測試環(huán)境是否成功
用戶主目錄中新建 input 文件夾存放輸入數(shù)據(jù)文件:
拷貝 Hadoop 安裝目錄下/etc/hadoop 中所有的 XML 文件到 input 文件夾中:
**注意:**Hadoop 默認(rèn)不會覆蓋結(jié)果文件,因此再次運(yùn)行上面實(shí)例會提示出錯(cuò),需要先將output 刪除。查看當(dāng)前目錄下的文件,多出了 output 文件夾,cat 命令查看結(jié)果打印到屏幕上。
這個(gè)在第一篇已經(jīng)寫了如何進(jìn)行ssh免密登陸,這里就不多說了。
鏈接在這 搭建Hadoop集群
Hadoop 的配置文件位于安裝目錄的/etc/hadoop/下,偽分布式模式配置需要修改配置文件 core-site.xml 和 hdfs-site.xml。
core-site.xml 配置文件
hdfs-site.xml配置文件
hdfs namenode -format
先對配置文件進(jìn)行配置,一開始以為localhost改成031904102_master導(dǎo)致失敗,一直start不起來,后來才改成了localhost,localhost是對應(yīng)127.0.0.1,是本機(jī)的localhost,而031904102_master對應(yīng)的是192.168.1.200,對不上,所有后面連不上。
start-dfs.sh
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
hdfs dfs -mkdir /user/hadoop/input
查看hadoop是否創(chuàng)建成功文件
hdfs dfs -ls /user/hadoop
hdfs dfs -put /usr/local/hadoop-3.1.3/etc/hadoop*.xml input
查看是否存在input中
hdfs dfs -ls /user/hadoop/input
hadoop jar /usr/local/hadoop-3.1.3/etc/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
在分布式文件系統(tǒng)上查看結(jié)果
hdfs dfs -cat output/*
注意 :更改主機(jī)名稱之后,要重新配置ssh密鑰!!!!
注意主機(jī)名不要有 _ 要用-代替!!!!!
不要111111_xxxx 要11111-xxx 不然報(bào)錯(cuò)!我就是這樣!下面這些例子時(shí)我修改前的,沒成功,但是步驟是一樣的,后來改回來之后重新做了一遍,忘記截圖了。
與偽分布模式的區(qū)別在于其守護(hù)進(jìn)程運(yùn)行在一個(gè)集群上,通常采用全分布模式來整合集群環(huán)境下的所有資源。
兩個(gè)節(jié)點(diǎn) IP 配置如下,請依據(jù)計(jì)算機(jī)實(shí)際情況進(jìn)行 IP 地址和主機(jī)名分配。
主機(jī)名 IP 地址
Master 192.168.1.10
Slave 192.168.1.11
sudo vim /etc/hostsname
sudo vim /etc/hosts
reboot
檢查master和slave能否ping通
這一段第一篇已經(jīng)講過,再講一次吧。
更改主機(jī)名稱之后,要重新配置ssh密鑰。在本次實(shí)驗(yàn)中借助xftp進(jìn)行密鑰的傳遞。
然后再依次配置master中hadoop的文件配置
workers
這里是你副節(jié)點(diǎn)的主機(jī)名稱,我截是截老師的,我自己的是031904102-Slave就多了個(gè)學(xué)號,按照你自己的來。
core-site.xml
這也是老師的圖,我這里是031904102-Master
hdfs-site.xml
mapred-site.xml
yarn-site.xml
配置其余節(jié)點(diǎn),使所有節(jié)點(diǎn) Hadoop 配置保持一致。刪除之前運(yùn)行偽分布式生成的
log 文件和 tmp 文件夾,打包 Hadoop 遠(yuǎn)程發(fā)送給其它節(jié)點(diǎn)并解壓。如果其它節(jié)點(diǎn)已安裝有
Hadoop 也可以直接同步修改配置文件。
Master節(jié)點(diǎn)的操作
刪除
sudo rm -r /usr/local/hadoop-3.1.3/tmp
sudo rm -r /usr/local/hadoop-3.1.3/logs/*
打包
cd /usr/local
tar -zcf ~/hadoop_m.tar.gz ./hadoop-3.1.3
scp ~/hadoop_m.tar.gz Slave:/home/hadoop
于是上網(wǎng)就有說上傳到tmp目錄中。就可以了
這里Slave是你上面配置的Slave 我自己的是031904102-Slave
Slave的操作
sudo rm -r /usr/local/hadoop-3.1.3
sudo tar -zxf ~/hadoop_m.tar.gz -C /usr/local
start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
hadoop jar /usr/local/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output `dfs[a-z]+`
hdfs dfs -rm -r output
hadoop的三種模式已經(jīng)介紹一一配置了!
有什么問題評論區(qū)留言或是私信我吧!
我是大數(shù)據(jù)專業(yè)的,喜歡大數(shù)據(jù)的可以關(guān)注我!
聯(lián)系客服