hadoop平臺(tái)搭建入門

學(xué)習(xí)hadoop平臺(tái)搭建也有一段時(shí)間了晌畅,期間也遇到很多問題但指,為了解決這些問題查了很多資料,浪費(fèi)不少時(shí)間抗楔,今天寫下這篇博客棋凳,為了幫助初學(xué)者,更快解決遇到的問題连躏。

首先剩岳,我們要搭建的是完全分布式,mysql作為hive元數(shù)據(jù)庫(kù)入热,spark完全分布式拍棕,如果有需要會(huì)更新hadoop HA晓铆,這個(gè)等下次再說(shuō),這次需要用到的軟件有 hadoop-2.7.5.tar绰播,jdk-8u151-linux-x64.tar骄噪,apache-hive-2.1.1-bin.tar,mysql-connector-java-6.0.6.tar幅垮,spark-2.0.2-bin-hadoop2.7腰池,我會(huì)把這些軟件放到百度云里分享給大家,大家可以到文章結(jié)尾查找忙芒。

現(xiàn)在開始部署環(huán)境我用到的系統(tǒng)是ubuntu-16.04.3-desktop-amd64,我也會(huì)放在最后的百度云里讳侨,這次會(huì)用到三臺(tái)虛擬機(jī)分別為:

master 192.168.0.1 namenode secondarynamenode? resourcemanager hive?

slave1 192.168.0.2 datanode nodemanager worker

slave2 192.168.0.3?datanode nodemanager worker

修改主機(jī)名的命令為:sudo vi /etc/hosts,將上面內(nèi)容粘貼進(jìn)去即可,可以用scp /etc/hosts x@slave1:/etc 發(fā)送到其他的電腦呵萨,但要注意修改hosts文件需要有權(quán)限,如果你的用戶沒有權(quán)限跨跨,可以自己一臺(tái)一臺(tái)的用sudo vi /etc/hosts修改潮峦。

修改完主機(jī)名之后需要重啟才能生效,重啟之后就要給虛擬機(jī)上傳軟件了勇婴,如果你用的crt連接虛擬機(jī)的話忱嘹,可以用rz上傳文件,如果沒有安裝耕渴,可以用 sudo apt install lrzsz 安裝拘悦, 如果沒有crt,也可以用ftp上傳橱脸,我用的是FlashFTP础米,這些軟件一會(huì)也會(huì)分享給大家。

上傳完之后添诉,開始解壓這些軟件屁桑,用到的命令是 tar zxvf XXX -C ~ ,這里我喜歡直接解壓到家目錄里栏赴,~

代表家目錄蘑斧。

XXX:為文件名

這是tar命令常用到的參數(shù):

-z:有g(shù)zip屬性的??gz

-j:有bz2屬性的?? bz2

-J?:有xz屬性的?? xz

-v:顯示所有過(guò)程

-c: 建立壓縮檔案

-x:解壓

-C 指定輸出路徑

解壓完要修改環(huán)境變量這是我的環(huán)境變量命令是:sudo vi /etc/profile,按G到最后一行,添加你的環(huán)境變量须眷,因?yàn)槲椅募冀鈮旱絩oot的家目錄里所以HOOM都在root里竖瘾,修改完同樣用命令 scp /etc/profile X@slavex 傳給別的虛擬機(jī)。


查看java的環(huán)境變量有沒有設(shè)置好可以用命令java查看柒爸,如果設(shè)置好會(huì)出現(xiàn):


下面開始修改hadoop文件,進(jìn)入到hadoop目錄下准浴,hadoop的配置文件為etc/hadoop,進(jìn)入會(huì)看到很多配置文件,我們需要配置的只有5個(gè)分別為 core-site.xml,haoop-env.sh,hdfs-site.xml,mapred-site.xml(這個(gè)文件默認(rèn)為mapred-site.xml.template 需要改名為mapred-site.xml),yarn-site.xml,slaves捎稚,配置這幾個(gè)文件的時(shí)候我查找了許多大神的博客乐横,但配置項(xiàng)實(shí)在是太多了求橄,后來(lái)經(jīng)過(guò)很多次的調(diào)試,我找的了一個(gè)最簡(jiǎn)化的配置項(xiàng)葡公。

首先配置core-site.xml文件

fs.default.name也可以寫為fs.defaultFS,后面的應(yīng)該是比較新的版本寫法但意思一樣罐农,這個(gè)配置項(xiàng)是配置namenode的9000是它的端口,

hadoop.tmp.dir 是配置他的臨時(shí)文件存放地址催什,如果不配置的話他默認(rèn)存放在/tmp下涵亏,如果重啟虛擬機(jī)的話,這個(gè)目錄會(huì)清空蒲凶,導(dǎo)致hadoop無(wú)法正常啟動(dòng)气筋。所以一般把這個(gè)目錄配置到hadoop目錄下,如果多次格式化hadoop的時(shí)候可能會(huì)導(dǎo)致namendoe id 和datanode id 不一致旋圆。后面我會(huì)詳細(xì)講解這個(gè)問題宠默。

haoop-env.sh

這個(gè)文件需要修改你的JAVA_HOME,找到這一行把#去掉灵巧,然后修改路徑


hdfs-site.xml 這個(gè)配置項(xiàng)是用來(lái)配置DataNode個(gè)數(shù)搀矫,在這次配置中我們有一個(gè)namenode,和兩個(gè)datanode,所以dfs.replication配置項(xiàng)應(yīng)該為2。


mapreduce-site.xml

這個(gè)文件里刻肄,只有一個(gè)必須的配置項(xiàng)瓤球,但為了給大家拓展一下,我會(huì)寫出兩個(gè)不是必要的配置項(xiàng)敏弃。

必要:


這個(gè)配置項(xiàng)指定使用yarn運(yùn)行mapreduce程序卦羡,yarn是hadoop2版本才使用的資源管理框架,負(fù)責(zé)集群資源管理和調(diào)度权她。Hadoop 1.0資源管理由兩部分組成:資源表示模型和資源分配模型虹茶,想詳細(xì)了解的同學(xué)可以自行百度。

不是必要的:

<property>

<name>dfs.name.dir</name>

<value>xxx</value>

</property>

這個(gè)參數(shù)用于確定將HDFS文件系統(tǒng)的元信息保存在什么目錄下隅要。

如果這個(gè)參數(shù)設(shè)置為多個(gè)目錄蝴罪,那么這些目錄下都保存著元信息的多個(gè)備份。

<property>

<name>dfs.data.dir</name>

<value>xxx<value>

</property>

這個(gè)參數(shù)用于確定將HDFS文件系統(tǒng)的數(shù)據(jù)保存在什么目錄下步清。

我們可以將這個(gè)參數(shù)設(shè)置為多個(gè)分區(qū)上目錄要门,即可將HDFS建立在不同分區(qū)上。

重點(diǎn)

yarn-site.xml?

這個(gè)文件配置項(xiàng)很多廓啊,而且都很重要欢搜,如果涉及到調(diào)優(yōu)的話,一般都會(huì)涉及到這個(gè)文件的內(nèi)容谴轮。


master為我的namenode主機(jī)名

下面我來(lái)解釋一下這三個(gè)配置項(xiàng)的意思:

yarn.resourcemanager.address

參數(shù)解釋:ResourceManager 對(duì)客戶端暴露的地址炒瘟。客戶端通過(guò)該地址向RM提交應(yīng)用程序第步,殺死應(yīng)用程序等疮装。

yarn.resourcemanager.scheduler.address

參數(shù)解釋:ResourceManager對(duì)ApplicationMaster暴露的訪問地址缘琅。ApplicationMaster通過(guò)該地址向RM申請(qǐng)資源、釋放資源等廓推。

yarn.resourcemanager.resource-tracker.address

參數(shù)解釋:ResourceManager對(duì)NodeManager暴露的地址.刷袍。NodeManager通過(guò)該地址向RM匯報(bào)心跳,領(lǐng)取任務(wù)等樊展。

這三個(gè)參數(shù)在偽分布式時(shí)可以不用配置呻纹,但在完全分布式中,如果不配置专缠,yarn進(jìn)程會(huì)正常啟動(dòng)雷酪,但執(zhí)行任務(wù)時(shí)會(huì)卡主。一會(huì)我會(huì)詳細(xì)講解這個(gè)問題藤肢。


yarn.nodemanager.resource.memory-mb

【存疑】

表示該節(jié)點(diǎn)上YARN可使用的物理內(nèi)存總量太闺,默認(rèn)是8192(MB),注意嘁圈,如果你的節(jié)點(diǎn)內(nèi)存資源不夠8GB,則需要調(diào)減小這個(gè)值蟀淮,而YARN不會(huì)智能的探測(cè)節(jié)點(diǎn)的物理內(nèi)存總量最住,這個(gè)參數(shù)另一種說(shuō)法是,該參數(shù)的默認(rèn)值是8192MB怠惶,即使你的機(jī)器內(nèi)存不夠8192MB涨缚,YARN也會(huì)按照這些內(nèi)存來(lái)使用,對(duì)于這兩種說(shuō)法策治,我比較認(rèn)可第二種脓魏,因?yàn)槲乙郧岸际怯?G內(nèi)存搭建的平臺(tái),這個(gè)參數(shù)都是默認(rèn)通惫,但一直正常運(yùn)行茂翔,不用修改。

講到這我想給大家擴(kuò)展一下yarn框架履腋。

ResourceManager做的事情是負(fù)責(zé)協(xié)調(diào)集群上計(jì)算資源的分配珊燎。調(diào)度、啟動(dòng)每一個(gè) Job 所屬的 ApplicationMaster遵湖、另外監(jiān)控 ApplicationMaster 的存在情況悔政。

NodeManager 功能比較專一,根據(jù)要求啟動(dòng)和監(jiān)視集群中機(jī)器的計(jì)算容器container延旧。負(fù)責(zé) Container 狀態(tài)的維護(hù)谋国,并向 RM 保持心跳匯報(bào)該節(jié)點(diǎn)資源使用情況。

ApplicationMaster 負(fù)責(zé)一個(gè) Job 生命周期內(nèi)的所有工作迁沫。注意每一個(gè)Job都有一個(gè) ApplicationMaster芦瘾。它和MapReduce任務(wù)一樣在容器中運(yùn)行捌蚊。AM通過(guò)與RM交互獲取資源,然后然后通過(guò)與NM交互旅急,啟動(dòng)計(jì)算任務(wù)逢勾。

容器是由ResourceManager進(jìn)行統(tǒng)一管理和分配的。有兩類container:一類是AM運(yùn)行需要的container藐吮;另一類是AP為執(zhí)行任務(wù)向RM申請(qǐng)的溺拱。

Container是YARN中的資源抽象,它封裝了某個(gè)節(jié)點(diǎn)上的多維度資源谣辞,如內(nèi)存迫摔、CPU、磁盤泥从、網(wǎng)絡(luò)等句占,當(dāng)AM向RM申請(qǐng)資源時(shí),RM為AM返回的資源便是用Container表示的躯嫉。

這只是對(duì)yarn初步的理解纱烘,在此需要注意的是,cotainer是一個(gè)抽象的理解祈餐。

yarn.nodemanager.vmem-pmem-ratio

任務(wù)每使用1MB物理內(nèi)存擂啥,最多可使用虛擬內(nèi)存量,默認(rèn)是2.1帆阳,因?yàn)殚_始運(yùn)行任務(wù)的時(shí)候哺壶,會(huì)先檢查分配給他的資源,如果需要的虛擬內(nèi)存小于分配給他的虛擬內(nèi)存任務(wù)會(huì)失敗蜒谤,如果不想讓他運(yùn)行時(shí)檢查虛擬內(nèi)存山宾,可以通過(guò)下一個(gè)參數(shù)關(guān)閉檢測(cè),并不會(huì)影響任務(wù)運(yùn)行鳍徽。

yarn.nodemanager.vmem-check-enabled

是否啟用一個(gè)線程檢查每個(gè)任務(wù)證使用的虛擬內(nèi)存量资锰,如果任務(wù)超出了分配值,則直接將其kill旬盯,默認(rèn)是true台妆,修改是將參數(shù)改為 false。


最后一個(gè)文件 slaves

在這個(gè)文件里添加上胖翰,你的datanode節(jié)點(diǎn)的主機(jī)名接剩。

修改完配置文件就可以下發(fā)hadoop文件到slave節(jié)點(diǎn)用到的命令是:scp -r [hadoop-版本] [用戶名]@[主機(jī)名]:~

發(fā)送到slave主機(jī)的用戶的家目錄。

將hadoop文件下發(fā)到slave文件之后就可以格式化文件系統(tǒng)了萨咳,在此懊缺,我用一張圖來(lái)描述linux文件系統(tǒng)和hdfs文件系統(tǒng)的區(qū)別。


需要注意的是 hadoop1 版本的默認(rèn)hdfs塊大小為64M,而Hadoop2默認(rèn)的塊大小為128M鹃两。

hdfs文件系統(tǒng)的特點(diǎn)

HDFS優(yōu)點(diǎn):

高容錯(cuò)性:數(shù)據(jù)自動(dòng)保存多個(gè)副本遗座,副本丟失后,自動(dòng)恢復(fù)

適合批處理:移動(dòng)計(jì)算而飛數(shù)據(jù)俊扳。數(shù)據(jù)位置暴露給計(jì)算框架

適合大數(shù)據(jù)處理:GB,TB,設(shè)置PB級(jí)數(shù)據(jù)途蒋。百萬(wàn)規(guī)模以上文件數(shù)量。10K+節(jié)點(diǎn)規(guī)模馋记。

流式文件訪問:一次性寫入号坡,多次讀取。保證數(shù)據(jù)一致性梯醒。

可構(gòu)建在廉價(jià)機(jī)器上:通過(guò)多副本提高可靠性宽堆。提供容錯(cuò)和恢復(fù)機(jī)制。

HDFS缺點(diǎn):

不適合低延遲數(shù)據(jù)訪問場(chǎng)景:比如毫秒級(jí)茸习,低延遲與高吞吐率畜隶。

不適合小文件存取場(chǎng)景:占用NameNode大量?jī)?nèi)存。尋道時(shí)間超過(guò)讀取時(shí)間号胚。

不適合并發(fā)寫入籽慢,文件隨機(jī)修改場(chǎng)景:一個(gè)文件只能有一個(gè)寫者。僅支持append猫胁。

hdfs文件系統(tǒng)在存儲(chǔ)文件的流程是嗡综,client客戶端向namenode發(fā)送存儲(chǔ)請(qǐng)求,namenode檢查路徑是否可以存儲(chǔ)杜漠,如果可以回復(fù)請(qǐng)求,client客戶端將文件分為128M一個(gè)塊的文件(如果文件小于128M占一個(gè)塊察净,但存儲(chǔ)在分布式系統(tǒng)上是它實(shí)際大屑蒈睢),比如一個(gè)257M的文件氢卡,client會(huì)把它且分為2個(gè)128M的文件和1個(gè)1M的文件锈至,當(dāng)寫完一份文件后,datanode會(huì)將這份文件復(fù)制到其他的節(jié)點(diǎn)上面译秦,默認(rèn)是存放三份峡捡,HDFS文件系統(tǒng)主要是用來(lái)處理大量數(shù)據(jù)時(shí)使用,增大他的數(shù)據(jù)塊容量有利于文件塊的定位筑悴,但也不是越大越好们拙,如果有大量的小數(shù)據(jù)存入到HDFS系統(tǒng)中,因?yàn)閿?shù)據(jù)的元數(shù)據(jù)都存放在datanode中阁吝,因此,HDFS所能存儲(chǔ)的文件數(shù)量會(huì)受到namenode內(nèi)存的限制砚婆。

拓展

namenode 作用,運(yùn)行原理

NameNode主要是用來(lái)保存HDFS的元數(shù)據(jù)信息突勇,比如命名空間信息装盯,塊信息等坷虑。當(dāng)它運(yùn)行的時(shí)候,這些信息是存在內(nèi)存中的埂奈。但是這些信息也可以持久化到磁盤上迄损。

在此引出secondary namenode 的概念,初次聽到這個(gè)詞可能很多人以為這是namenode的備份账磺,其實(shí)不然芹敌,這里就要講一下namenode的工作原理:

namenode主要由兩個(gè)文件組成fsimage,edit logs 绑谣。當(dāng)“寫請(qǐng)求”到來(lái)時(shí)namenode會(huì)首先寫editlog到磁盤党窜,即向edits文件中寫日志,成功返回后借宵,才會(huì)修改內(nèi)存幌衣,并且向客戶端返回。只有在NameNode重啟時(shí)壤玫,edit logs才會(huì)合并到fsimage文件中豁护,從而得到一個(gè)文件系統(tǒng)的最新快照。但是在產(chǎn)品集群中NameNode是很少重啟的欲间,這也意味著當(dāng)NameNode運(yùn)行了很長(zhǎng)時(shí)間后楚里,edit logs文件會(huì)變得很大。在這種情況下就會(huì)出現(xiàn)下面一些問題:

edit logs文件會(huì)變的很大猎贴,怎么去管理這個(gè)文件是一個(gè)挑戰(zhàn)班缎。

NameNode的重啟會(huì)花費(fèi)很長(zhǎng)時(shí)間,因?yàn)橛泻芏喔膭?dòng)[筆者注:在edit logs中]要合并到fsimage文件上她渴。

如果NameNode掛掉了达址,那我們就丟失了很多改動(dòng)因?yàn)榇藭r(shí)的fsimage文件非常舊](此處摘自hadoop的NAMENODE的管理機(jī)制,工作機(jī)制和DATANODE的工作原理 - CSDN博客 想詳細(xì)了解可以去看看)



因此為了克服這個(gè)問題趁耗,我們需要一個(gè)易于管理的機(jī)制來(lái)幫助我們減小edit logs文件的大小和得到一個(gè)最新的fsimage文件沉唠,這樣也會(huì)減小在NameNode上的壓力。

SecondaryNameNode就是來(lái)幫助解決上述問題的苛败,它的職責(zé)是合并NameNode的edit logs到fsimage文件中满葛。


上面的圖片展示了Secondary NameNode是怎么工作的。

首先罢屈,它定時(shí)到NameNode去獲取edit logs嘀韧,并更新到fsimage上。[筆者注:Secondary NameNode自己的fsimage]

一旦它有了新的fsimage文件儡遮,它將其拷貝回NameNode中乳蛾。

NameNode在下次重啟時(shí)會(huì)使用這個(gè)新的fsimage文件,從而減少重啟的時(shí)間∷嘁叮總之我理解的secondary name是用來(lái)幫助namenode處理元數(shù)據(jù)的更新蹂随。

好,講解完namenode因惭,secondary namenode開始重回搭建平臺(tái)的話題岳锁,上回說(shuō)到修改完配置文件,開始格式化文件系統(tǒng)命令為:hdfs namenode -format 或者h(yuǎn)adoop namenode -format 成功后會(huì)顯示


成功格式化后蹦魔,就可以啟動(dòng)你的進(jìn)程了激率。

start-dfs.sh的作用在于啟動(dòng)主節(jié)點(diǎn)的namenode,啟動(dòng)secondnamenode勿决,以及各從節(jié)點(diǎn)的datanode進(jìn)程乒躺。

stop-dfs.sh的作用在于關(guān)閉主節(jié)點(diǎn)的namenode,啟動(dòng)secondnamenode低缩,以及各從節(jié)點(diǎn)的datanode進(jìn)程嘉冒。

啟動(dòng)完進(jìn)程,可以用命令:jps 查看

我的namenode節(jié)點(diǎn):bootstrap不是我啟動(dòng)的咆繁,他是一個(gè)前端框架讳推。


我的datanode節(jié)點(diǎn)


start-yarn.sh 啟動(dòng)yarn?

namenode節(jié)點(diǎn)


datanode節(jié)點(diǎn): org 那個(gè)不是


啟動(dòng)完進(jìn)程就可以測(cè)試一下搭建的環(huán)境首先建一個(gè)文件a.txt,在里面隨便寫上一些內(nèi)容


然后上傳文件到hdfs系統(tǒng)上,命令hadoop fs -put a.txt? /? 上傳a.txt 到hdfs的根目錄,然后開始我們第一個(gè)wordcount 程序玩般,hadoop jar xxx(你的hadoop路徑)/share/hadoop/mapreduce/hadoop-mapreduce-examples-xxx(你的hadoop版本).jar wordcount ? ? /a.txt(輸入路徑 我把a(bǔ).txt 放在根下) ?? /output(輸出路徑這里我放在根下的output目錄中)银觅,這是我的運(yùn)行命令:注意輸出目錄必須是之前不存在的

運(yùn)行完之后坏为,檢查一下輸出的結(jié)果:hadoop fs -cat /output/part-00000


成功究驴,這是最簡(jiǎn)單的wordcount,用到的是hadoop自帶的一個(gè)jar包匀伏,以后根據(jù)不同的需求纳胧,需要自己寫wordcount程序,基本會(huì)用java或者python寫帘撰,都有自己的框架,學(xué)習(xí)起來(lái)也不算太難万皿。

在這里我放上基本的一些hadoop命令:

復(fù)制?hadoop fs -cp /tmp/input/hadoop1/hadoop/*.* /tmp/input/hadoop

本地文件上傳到hdfs上?hadoop fs -put /tmp/input/hadoop1/hadoop/*.* /tmp/input/hadoop

從hdfs上下載文件??hadoop fs -get /tmp/input/hadoop1/hadoop/*.* /tmp/input/hadoop

查看文件列表 ?hadoop fs -ls /tmp/input/hadoop1/hadoop/

這些是最基本的命令摧找,hadoop 的命令和linux 差別不大,學(xué)會(huì)linux即可掌握這些命令牢硅。

測(cè)試完之后蹬耘,hadoop搭建基本完成,我們開始搭建hive减余,首先來(lái)簡(jiǎn)單介紹一下hive:

Hive是一個(gè)數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)工具在Hadoop中用來(lái)處理結(jié)構(gòu)化數(shù)據(jù)综苔。它架構(gòu)在Hadoop之上,總歸為大數(shù)據(jù),并使得查詢和分析方便如筛。并提供簡(jiǎn)單的sql查詢功能堡牡,可以將sql語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。

搭建hive杨刨,我們用到了mysql作為元數(shù)據(jù)庫(kù)晤柄,在ubuntu中可以使用命令:sudo apt install mysql-client mysql-server 安裝mysql,安裝完之后會(huì)出現(xiàn)配置界面讓你輸入root用戶密碼妖胀,輸入完成芥颈,再輸入一遍密碼,配置完成赚抡。

賦給hive用戶權(quán)限爬坑,在這里給hive登錄的用戶名為hive密碼也是hive。

1.進(jìn)入mysql涂臣,我給mysql盾计,root用戶密碼為123456,mysql-uroot -p,登錄成功肉康。

2.grant all on *.* to hive@'%' identified by 'hive'? 這里賦予權(quán)限還有幾種遠(yuǎn)程登錄闯估,感興趣的可以去看一下。

3.配置完權(quán)限吼和,需要用命令 flush privileges 刷新一下權(quán)限涨薪,然后退出。

4.修改hive配置項(xiàng)炫乓,進(jìn)入$HIVE_HOME/conf,首先修改hive-site.xml.temp,改名為hive-site.xml,然后找到里面的HADOOP_HOME 刪掉前面的#刚夺,修改后面的路徑為你的hadoop目錄,然后新建文件hive-site.xml,添加配置項(xiàng)


修改這個(gè)配置文件有點(diǎn)小技巧末捣,可以去hive-default.xml.template文件中粘貼這些配置項(xiàng)侠姑,然后修改。

修改完之后進(jìn)入$HIVE_HOME/lib 拷貝jline-2.1.2(可能和我的版本不一樣) 箩做,到$HADOOP_HOME/share/hadoop/yarn/lib


這時(shí)還有一個(gè)mysql和hive連接的驅(qū)動(dòng) mysql-connector-java-5.1.45.tar(最好別用太高版本,這個(gè)文件我也會(huì)上傳)莽红,將這個(gè)文件放到$HIVE_HOME/lib中


進(jìn)入$HIVE_HOME/bin,執(zhí)行./schematool -initSchema -dbType mysql ,初始化元數(shù)據(jù)庫(kù)邦邦,如果出現(xiàn)初始化失敗安吁,首先檢查配置文件有沒有出錯(cuò),如果配置文件沒有問題燃辖,那就可能要修改mysql的綁定ip,修改 /etc/mysql/mysql.conf.d/mysqld.cnf,找到里面的bind-address 默認(rèn)為127.0.0.1 修改為0.0.0.0鬼店,此時(shí)在重新初始化。



初始化完成之后黔龟,進(jìn)入$HIVE_HOME/sbin目錄下妇智,執(zhí)行./hive 滥玷,啟動(dòng)hive。

有些任務(wù)可能涉及到將查詢到的結(jié)果輸出到控制臺(tái)或者重定向到某個(gè)文檔內(nèi) 可以使用hive -e "xxxx"

重定向 hive -e "xxx" >>xx.txt,還有大量數(shù)據(jù)在hive和hdfs互導(dǎo)時(shí)會(huì)用到sqoop,感興趣的可以去看一下巍棱。

spark 分布式搭建

我用的軟件版本是spark-2.0.2-bin-hadoop2.7惑畴,解壓完軟件包之后,進(jìn)入conf目錄拉盾,將slaves.template改名為slaves桨菜,

添加slave主機(jī)名,修改spark-env.sh.template為spark-env.sh捉偏,添加配置項(xiàng)


spark_master_ip 為namenode的 ip

下發(fā)spark到datanode節(jié)點(diǎn)倒得,下發(fā)完成后,進(jìn)入$SPARK_HOME/sbin,執(zhí)行start-all.sh,啟動(dòng)spark進(jìn)程夭禽,看到namenode上有master,datanode上有worker就說(shuō)明正常啟動(dòng)了霞掺。


遇到的問題

在剛開始搭建平臺(tái)的時(shí)候,遇到過(guò)很多問題讹躯,但問題解決后都沒有記下來(lái)菩彬,現(xiàn)在只能一點(diǎn)一點(diǎn)回去找,所以暫時(shí)更新到這里潮梯,后續(xù)會(huì)添加上這一塊骗灶。

未完待續(xù).....

資源

hadoop 搭建資源

密碼:5dct

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市秉馏,隨后出現(xiàn)的幾起案子耙旦,更是在濱河造成了極大的恐慌,老刑警劉巖萝究,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件免都,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帆竹,警方通過(guò)查閱死者的電腦和手機(jī)绕娘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)栽连,“玉大人险领,你說(shuō)我怎么就攤上這事∶虢簦” “怎么了舷暮?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)噩茄。 經(jīng)常有香客問我,道長(zhǎng)复颈,這世上最難降的妖魔是什么绩聘? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任沥割,我火速辦了婚禮,結(jié)果婚禮上凿菩,老公的妹妹穿的比我還像新娘机杜。我一直安慰自己,他們只是感情好衅谷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布椒拗。 她就那樣靜靜地躺著,像睡著了一般获黔。 火紅的嫁衣襯著肌膚如雪蚀苛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天玷氏,我揣著相機(jī)與錄音堵未,去河邊找鬼。 笑死盏触,一個(gè)胖子當(dāng)著我的面吹牛渗蟹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赞辩,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼雌芽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了辨嗽?” 一聲冷哼從身側(cè)響起世落,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎召庞,沒想到半個(gè)月后岛心,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篮灼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年忘古,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诅诱。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡髓堪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娘荡,到底是詐尸還是另有隱情干旁,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布炮沐,位于F島的核電站争群,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏大年。R本人自食惡果不足惜换薄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一玉雾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轻要,春花似錦复旬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至凡恍,卻和暖如春志秃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咳焚。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工洽损, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人革半。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓碑定,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親又官。 傳聞我的和親對(duì)象是個(gè)殘疾皇子延刘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 終極算法 關(guān)注微信號(hào)每天收聽我們的消息終極算法為您推送精品閱讀 前言 Hadoop 在大數(shù)據(jù)技術(shù)體系中的地位至關(guān)...
    Yespon閱讀 129,745評(píng)論 12 168
  • Zookeeper用于集群主備切換。 YARN讓集群具備更好的擴(kuò)展性六敬。 Spark沒有存儲(chǔ)能力碘赖。 Spark的Ma...
    Yobhel閱讀 7,255評(píng)論 0 34
  • 這是Ruifree的平臺(tái)分享的第10篇原創(chuàng)文章。 也許經(jīng)歷過(guò)生死才會(huì)對(duì)生命心存感激外构,會(huì)想要去更多地了解生命的本真普泡,...
    空山歆語(yǔ)閱讀 282評(píng)論 0 0
  • Error通常是由于物理環(huán)境引起的,也就是說(shuō)運(yùn)行的環(huán)境的異常 而Exception是我們變成人員审编,編碼過(guò)程中撼班,考慮...
    夢(mèng)境中_i閱讀 215評(píng)論 0 0
  • 猴年,就要結(jié)束了垒酬,12年就來(lái)一次砰嘁。上一個(gè)猴年,2004勘究,再上一個(gè)1992矮湘,似乎每個(gè)年份都不太順。 回顧一下...
    155守時(shí)待命閱讀 187評(píng)論 0 0