一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
1:Hadoop分布式計(jì)算平臺是由Apache軟件基金會開發(fā)的一個(gè)開源分布式計(jì)算平臺。以Hadoop分布式文件系統(tǒng)(HDFS)和MapReduce(Google MapReduce的開源實(shí)現(xiàn))為核心的Hadoop為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)。
?注意:HADOOP的核心組件有:
1)HDFS(分布式文件系統(tǒng))
2)YARN(運(yùn)算資源調(diào)度系統(tǒng))
3)MAPREDUCE(分布式運(yùn)算編程框架)
????? Hadoop 中的分布式文件系統(tǒng) HDFS 由一個(gè)管理結(jié)點(diǎn) ( NameNode )和N個(gè)數(shù)據(jù)結(jié)點(diǎn) ( DataNode )組成,每個(gè)結(jié)點(diǎn)均是一臺普通的計(jì)算機(jī)。在使用上同我們熟悉的單機(jī)上的文件系統(tǒng)非常類似,一樣可以建目錄,創(chuàng)建,復(fù)制,刪除文件,查看文件內(nèi)容等。但其底層實(shí)現(xiàn)上是把文件切割成 Block,然后這些 Block 分散地存儲于不同的 DataNode 上,每個(gè) Block 還可以復(fù)制數(shù)份存儲于不同的 DataNode 上,達(dá)到容錯(cuò)容災(zāi)之目的。NameNode 則是整個(gè) HDFS 的核心,它通過維護(hù)一些數(shù)據(jù)結(jié)構(gòu),記錄了每一個(gè)文件被切割成了多少個(gè) Block,這些 Block 可以從哪些 DataNode 中獲得,各個(gè) DataNode 的狀態(tài)等重要信息。
???? MapReduce 是 Google 公司的核心計(jì)算模型,它將復(fù)雜的運(yùn)行于大規(guī)模集群上的并行計(jì)算過程高度的抽象到了兩個(gè)函數(shù),Map 和 Reduce, 這是一個(gè)令人驚訝的簡單卻又威力巨大的模型。適合用 MapReduce 來處理的數(shù)據(jù)集(或任務(wù))有一個(gè)基本要求: 待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個(gè)小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。基于它寫出來的程序能夠運(yùn)行在由上千臺商用機(jī)器組成的大型集群上,并以一種可靠容錯(cuò)的方式并行處理T級別的數(shù)據(jù)集,實(shí)現(xiàn)了Haddoop在集群上的數(shù)據(jù)和任務(wù)的并行計(jì)算與處理。
?個(gè)人認(rèn)為,從HDFS(分布式文件系統(tǒng))觀點(diǎn)分析,集群中的服務(wù)器各盡其責(zé),通力合作,共同提供了整個(gè)文件系統(tǒng)的服務(wù)。從職責(zé)上集群服務(wù)器以各自任務(wù)分為namenode、datanode服務(wù)器.其中namenode為主控服務(wù)器,datanode為數(shù)據(jù)服務(wù)器。Namenode管理所有的datanode數(shù)據(jù)存儲、備份、組織記錄分配邏輯上的處理。說明白點(diǎn)namenode就是運(yùn)籌帷幄、負(fù)責(zé)布局指揮將軍,具體的存儲、備份是由datanode這樣的戰(zhàn)士執(zhí)行完成的。故此很多資料將HDFS分布式文件系統(tǒng)的組織結(jié)構(gòu)分為master(主人)和slaver(奴隸)的關(guān)系。其實(shí)和namenode、datanode劃分道理是一樣的。
從MapReduce計(jì)算模型觀點(diǎn)分析,Map/Reduce框架和分布式文件系統(tǒng)是運(yùn)行在一組相同的節(jié)點(diǎn)上的,也就是說計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)在一起。這種配置允許在那些已經(jīng)存好數(shù)據(jù)的節(jié)點(diǎn)上高效的調(diào)度任務(wù),這樣可以使整個(gè)集群的網(wǎng)絡(luò)寬帶得到非常高效的利用。另外,在Hadoop中,用于執(zhí)行MapReduce任務(wù)的機(jī)器有兩個(gè)角色:JobTracker,TaskTracker。JobTracker(一個(gè)集群中只能有一臺)是用于管理和調(diào)度工作的,TaskTracker是用于執(zhí)行工作的。
在技術(shù)方面Hadoop體系具體包含了以下技術(shù):
Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他項(xiàng)目公共內(nèi)容,從0.21開始HDFS和MapReduce被分離為獨(dú)立的子項(xiàng)目,其余內(nèi)容為Hadoop Common。
?
1:HADOOP(hdfs、MAPREDUCE、yarn) :元老級大數(shù)據(jù)處理技術(shù)框架,擅長離線數(shù)據(jù)分析;
2:Avro:新的數(shù)據(jù)序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機(jī)制。
3:MapReduce:并行計(jì)算框架,0.20前使用org.apache.hadoop.mapred舊接口,0.20版本開始引入org.apache.hadoop.mapreduce的新API。? 分布式運(yùn)算程序開發(fā)框架;
4:HDFS:Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)。分布式文件系統(tǒng);
5:Pig:大數(shù)據(jù)分析平臺,為用戶提供多種接口。
6:Hive:數(shù)據(jù)倉庫工具,由Facebook貢獻(xiàn)。基于大數(shù)據(jù)技術(shù)(文件系統(tǒng)+運(yùn)算框架)的SQL數(shù)據(jù)倉庫工具;數(shù)據(jù)倉庫工具,使用方便,功能豐富,基于MR延遲大;
7:Hbase:類似Google BigTable的分布式NoSQL列數(shù)據(jù)庫。(HBase和Avro已經(jīng)于2010年5月成為頂級Apache項(xiàng)目)。基于HADOOP的分布式海量數(shù)據(jù)庫;分布式海量數(shù)據(jù)庫,離線分析和在線業(yè)務(wù)通吃;
8:ZooKeeper:分布式鎖設(shè)施,提供類似Google Chubby的功能,由Facebook貢獻(xiàn)。分布式協(xié)調(diào)服務(wù)基礎(chǔ)組件;分布式協(xié)調(diào)服務(wù)基礎(chǔ)組件;
9:Sqoop:Sqoop是一個(gè)用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如 :MySQL, Oracle, Postgres等)中的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫中。數(shù)據(jù)導(dǎo)入導(dǎo)出工具;
10:Oozie:負(fù)責(zé)MapReduce作業(yè)調(diào)度。工作流調(diào)度框架;
11:Mahout:基于mapreduce/spark/flink等分布式運(yùn)算框架的機(jī)器學(xué)習(xí)算法庫。
12:Flume:日志數(shù)據(jù)采集框架;數(shù)據(jù)采集框架;
?
以上對Hadoop體系框架和相應(yīng)技術(shù)做了相應(yīng)分析,并從HDFS、MapReduce的角度分析了集群中的角色扮演,這既是我們實(shí)驗(yàn)的理論基礎(chǔ),也是實(shí)驗(yàn)研究Hadoop深層次系統(tǒng)知識體系結(jié)構(gòu)的意義所在。
Hadoop集群簡介:
1)HADOOP集群具體來說包含兩個(gè)集群:HDFS集群和YARN集群,兩者邏輯上分離,但物理上常在一起
2)HDFS集群:
負(fù)責(zé)海量數(shù)據(jù)的存儲,即負(fù)責(zé)數(shù)據(jù)文件的讀寫操作,集群中的角色主要有 NameNode (Hdfs的大哥)/ DataNode(Hdfs的小弟)
3)YARN集群:
負(fù)責(zé)海量數(shù)據(jù)運(yùn)算時(shí)的資源調(diào)度,即負(fù)責(zé)為mapreduce程序分配運(yùn)算硬件資源,集群中的角色主要有 ResourceManager (Yarn的小哥)/NodeManager(Yarn的小弟)
4)注意:節(jié)點(diǎn)分配思想,hdfs是數(shù)據(jù)的存儲,所以DataNode存儲數(shù)據(jù),而yarn是資源調(diào)度,所在的機(jī)器正好存在數(shù)據(jù),就可以進(jìn)行調(diào)度,否則通過網(wǎng)絡(luò)傳輸,在yarn上ResourceManager對NodeManager進(jìn)行管理,管理資源調(diào)度?。
5)如果,集群搭建案例,以5節(jié)點(diǎn)為例進(jìn)行搭建,角色分配如下:
機(jī)器-01 ???NameNode ?SecondaryNameNode
機(jī)器-02 ???ResourceManager
機(jī)器-03?? DataNode ???NodeManager
?? 機(jī)器-04?? DataNode ???NodeManager
? ? 機(jī)器-05?? DataNode ???NodeManager
2:首先自己搞三臺虛擬機(jī),這里使用centOs虛擬機(jī)(本實(shí)驗(yàn)只搭建一個(gè)有三臺主機(jī)的小集群。三臺機(jī)器的具體分工命名如下):
| IP | 主機(jī)名 | 功能角色 |
| 192.168.3.129 | ?CentOS-01/master(主人) | namenode(控制節(jié)點(diǎn))、JobTracker(工作分配) |
| 192.168.3.130 | ?CentOS-02/slaver1(奴隸) | datanode(數(shù)據(jù)節(jié)點(diǎn))、TaskTracker(任務(wù)執(zhí)行) |
| 192.168.3.131 | ?CentOS-03/slaver2(奴隸) | datanode(數(shù)據(jù)節(jié)點(diǎn))、TaskTracker(任務(wù)執(zhí)行) |
?3:講解一下網(wǎng)絡(luò)配置,不然好多小伙伴不知道網(wǎng)絡(luò)怎么搞,以至于一直拖延不前:
首先,在VMware軟件里面的編輯----》虛擬網(wǎng)絡(luò)編輯器---》選擇VMnet8模式
?
然后選擇NET設(shè)置,將網(wǎng)關(guān)ip修改為這個(gè)模式192.168.x.1格式:
然后選擇DHCP設(shè)置,自己可以選擇的ip地址范圍:
然后找到本地的網(wǎng)絡(luò)設(shè)置,設(shè)置一下本地網(wǎng)絡(luò):
然后開始設(shè)置虛擬機(jī)的靜態(tài)ip地址,如下所示,三個(gè)虛擬機(jī)按照如下進(jìn)行設(shè)置,下面只寫一個(gè)虛擬機(jī),其他兩個(gè)類比即可:
?鼠標(biāo)右擊找到Edit Connections:
然后進(jìn)行編輯:
注意下面紅色圈起來的地方(Address分別設(shè)置成自己容易識別的,我的是192.168.3.129,192.168.3.130,192.168.3.131):
最后網(wǎng)絡(luò)就可以使用了,使用XShell進(jìn)行遠(yuǎn)程連接方便操作:
需要注意的是這里的網(wǎng)絡(luò)設(shè)置必須是Net8模式的:
?4:Hadoop完全分布式的安裝需要以下幾個(gè)過程:
1 綜述:Hadoop完全分布式的安裝需要以下幾個(gè)過程: 2 (1)為防止權(quán)限不夠,三臺機(jī)器均開啟root登錄。 3 (2)為三臺機(jī)器分配IP地址及相應(yīng)的角色。 4 (3)對三臺機(jī)器進(jìn)行jdk安裝并配置環(huán)境變量。 5 (4)對三臺機(jī)器進(jìn)行ssh(安全外殼協(xié)議)遠(yuǎn)程無密碼登錄安裝配置。 6 (5)進(jìn)行Hadoop集群完全分布式的安裝配置。 7 下面對以上過程進(jìn)行詳細(xì)敘述。5:切換root用戶進(jìn)行操作(三臺機(jī)器都執(zhí)行此操作即可):
1)如果正式工作了,建議使用自己的用戶,而非root用戶(詳細(xì)創(chuàng)建用戶命令可百度):
useradd 用戶名稱;
passwd 密碼;
2)新建用戶以后,會遇到一些很煩心的事情,這個(gè)時(shí)候修改:vim /etc/sudoers新用戶的權(quán)限,如給hadoop用戶添加執(zhí)行的權(quán)限;
6:在三臺主機(jī)上分別設(shè)置/etc/hosts及/etc/sysconfig/network(centos操作系統(tǒng))?????? /etc/hostname(ubuntu操作系統(tǒng)):
hosts文件用于定義主機(jī)名與IP地址之間的對應(yīng)關(guān)系(三臺主機(jī)配置相同)。
如下所示:
執(zhí)行此命令:[root@localhost hadoop]# vim /etc/sysconfig/network
主節(jié)點(diǎn)修改為master:
?節(jié)點(diǎn)一修改為slaver1
??節(jié)點(diǎn)二修改為slaver2
然后修改主機(jī)名稱和ip的對應(yīng)關(guān)系:
三臺主機(jī)配置相同:
如下命令:[root@localhost hadoop]# vim /etc/hosts
配置好以后進(jìn)行重啟三臺電腦即可(重啟命令reboot):
自己可以進(jìn)行驗(yàn)證一下是否修改正確,如ping master/ping slaver1/ping slaver2:
7:三臺機(jī)器上安裝jdk(將linux版本的jdk上傳到虛擬機(jī),上傳操作之前說過,此處省略,注意jdk的是linux版本的):
上傳之后進(jìn)行解壓縮和配置環(huán)境變量:
?
配置一下jdk的環(huán)境變量(必須用root權(quán)限進(jìn)行修改配置文件):
[root@master hadoop]# vim /etc/profile
然后驗(yàn)證三臺機(jī)器的jdk是否安裝成功:
驗(yàn)證之前先刷新一下配置文件:[root@slaver1 hadoop]# source /etc/profile
然后使用java/javac/java -version三個(gè)命令分別在三臺機(jī)器上面進(jìn)行驗(yàn)證:
8:安裝SSH,配置免秘鑰登錄操作,由于我的已經(jīng)安裝好了,所以這一步略過,自己可以去百度,直接配置免秘鑰登錄:
生成密鑰并配置SSH免密碼登錄本機(jī),執(zhí)行以下命令,生成密鑰對,并把公鑰文件寫入授權(quán)文件中:
?生成密鑰對,并把公鑰文件寫入授權(quán)文件中,cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys會自動創(chuàng)建authorized_keys文件,然后將id_dsa.pub的內(nèi)容寫到authorized_keys文件里面,這個(gè)時(shí)候去查看authorized_keys已經(jīng)存在id_dsa.pub里面的內(nèi)容(生成密鑰對及授權(quán)文件,公鑰在/root/.ssh/下):
然后將授權(quán)文件復(fù)制到slaver1主機(jī)中,輸入命令:
[hadoop@master .ssh]$ scp authorized_keys root@192.168.3.130:~/.ssh/
可以看到slaver1已經(jīng)存在授權(quán)文件:
然后在slave1機(jī)器中,使用同樣命令生成密鑰對,將公鑰寫入授權(quán)文件中。然后將slaver1主機(jī)中的授權(quán)文件復(fù)制到slaver2中,使用同樣命令生成密鑰對,將公鑰寫入授權(quán)文件中。這樣就完成了同一個(gè)授權(quán)文件擁有三個(gè)公鑰。最后將此時(shí)的授權(quán)文件分別復(fù)制到master主機(jī)、slaver1主機(jī)中,這樣就完成了,ssh免密登錄驗(yàn)證工作。
為了防止防火墻禁止一些端口號,三臺機(jī)器應(yīng)使用
關(guān)閉防火墻命令:ufw disable
重啟三臺機(jī)器,防火墻關(guān)閉命令才能生效,重啟后后查看是否可以從master主機(jī)免密碼登錄slaver,輸入命令:ssh slaver1,ssh slaver2:
在slaver1進(jìn)行生成密鑰對,將公鑰寫入授權(quán)文件中:
?
?將公鑰寫入授權(quán)文件中:
?
然后將slaver1主機(jī)中的授權(quán)文件復(fù)制到slaver2中,使用同樣命令生成密鑰對,將公鑰寫入授權(quán)文件中。
?
?使用同樣命令在slaver2生成密鑰對,將公鑰寫入授權(quán)文件中。
?
將公鑰寫入授權(quán)文件中:
?
這樣就完成了同一個(gè)授權(quán)文件擁有三個(gè)公鑰。最后將此時(shí)的授權(quán)文件分別復(fù)制到master主機(jī)、slaver1主機(jī)中,這樣就完成了,ssh免密登錄驗(yàn)證工作。
?
然后查看master的授權(quán)文件:
然后將此時(shí)的授權(quán)文件分別復(fù)制到slaver1主機(jī)中,這樣就完成了:
然后查看slaver1的授權(quán)文件:
為了防止防火墻禁止一些端口號,三臺機(jī)器應(yīng)使用
關(guān)閉防火墻命令:ufw disable(重啟三臺機(jī)器,防火墻關(guān)閉命令才能生效)/?service iptables stop(暫時(shí)關(guān)閉防火墻,方便測試使用)
重啟后后查看是否可以從master主機(jī)免密碼登錄slaver,輸入命令:
ssh slaver1
ssh slaver2
第一次登陸不知道為啥還是讓輸入一個(gè)yes,之后再進(jìn)行登陸就直接登陸成功了:
?
?9:進(jìn)行Hadoop集群完全分布式的安裝配置(將下載的hadoop-2.2.0上傳到虛擬機(jī)并解壓至/home/hadoop目錄下):
?[root@master hadoop]# tar -zxvf hadoop-2.4.1.tar.gz
三臺hadoop文件配置相同,所以配置完一臺后,可以把整個(gè)hadoop復(fù)制過去就行了,現(xiàn)在開始配置master主機(jī)的hadoop文件。
需要配置的文件涉及到的有7個(gè)(mapred-site.xml文件默認(rèn)不存在的,可以復(fù)制相應(yīng)的template文件獲得(如mapred-site.xml文件)。)
如下圖標(biāo)示部分:
?
配置文件1:vim hadoop-env.sh
修改JAVA_HOME值如下圖:
配置文件2:yarn-env.sh
修改JAVA_HOME值如下圖:
?
配置文件3:slaves(保存所有slave節(jié)點(diǎn))寫入以下內(nèi)容,是給自動化啟動腳本使用的哦,切記,是啟動DataNode的:
(這里需要注意一下,開始我的master節(jié)點(diǎn)寫的 vim slaves出現(xiàn)了,出現(xiàn)了hadoop DataNode啟動不了的問題,這里不是多次格式化造成的問題,這里是master主節(jié)點(diǎn)的vim slaves內(nèi)容是master,而slaver1和slaver2的vim slaves內(nèi)容是slaver1,slaver2,即下圖內(nèi)容,所以造成了DataNode啟動不了的問題。)
?
配置文件4:core-site.xml
添加配置內(nèi)容如下圖:
<configuration><!-- 指定HADOOP所使用的文件系統(tǒng)schema(URI),HDFS的老大(NameNode)的地址,master即是namenode所在的節(jié)點(diǎn)機(jī)器,9000是端口號,NameNode是為客戶提供服務(wù)的,NameNode知道每一個(gè)文件存在哪一個(gè)datanode上面 --><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!-- 指定hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲目錄 --><property><name>hadoop.tmp.dir</name><value>/home/hadoop/hadoop-2.4.1/tmp</value></property></configuration>配置文件5:hdfs-site.xml
<configuration><!-- 指定HDFS副本的數(shù)量,副本的數(shù)量,避免一個(gè)機(jī)器宕掉了,數(shù)據(jù)丟失,默認(rèn)是3個(gè)副本 --><property><name>dfs.replication</name><value>2</value></property><!-- 指定SecondNameNode在那臺機(jī)器上面啟動 -->?? ??? ?
<property>
?? ?<name>dfs.secondary.http.address</name>
?? ? <value>master:50090</value>
</property>
??? </configuration>
?
配置文件6:mapred-site.xml
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
<configuration><!-- 指定mr運(yùn)行在yarn上,即mapreduce運(yùn)行在yarn上面 --><property><name>mapreduce.framework.name</name><value>yarn</value></property> </configuration>配置文件7:yarn-site.xml
<configuration><!-- Site specific YARN configuration properties --> <!-- 指定YARN的老大(ResourceManager)的地址,這個(gè)地方主要看自己的機(jī)器分配情況,如果是四臺機(jī)器,這個(gè)value值就是第四臺的主機(jī)名稱哦, --><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><!-- reducer獲取數(shù)據(jù)的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>上面配置完畢后,基本上完成了90%的工作,剩下的就是復(fù)制。我們可以把整個(gè)hadoop復(fù)制過去使用命令如下:
[root@master hadoop]# scp -r /home/hadoop/hadoop-2.4.1 slaver1:/home/hadoop/
[root@master hadoop]# scp -r /home/hadoop/hadoop-2.4.1 slaver2:/home/hadoop/
然后去slaver1和slaver2就可以看到復(fù)制過去的hadoop-2.4.1:
為方便用戶和系統(tǒng)管理使用hadoop、hdfs相關(guān)命令置系統(tǒng)環(huán)境變量,使用命令:vim /etc/profile
配置內(nèi)容為hadoop目錄下的bin、sbin路徑,具體如下:
[root@slaver1 hadoop]# vim /etc/profile
添加完后執(zhí)行生效命令:source /etc/profile
?下面要做的就是啟動驗(yàn)證,建議在驗(yàn)證前,把以上三臺機(jī)器重啟,使其相關(guān)配置生效。
?10:啟動驗(yàn)證
在master節(jié)點(diǎn)上進(jìn)行格式化namenode? (是對namenode進(jìn)行初始化):
命令:hadoop ?namenode ?-format或者hdfs namenode -format
start-all.sh或者啟動(start-dfs.sh和start-yarn.sh)
使用Jps命令master有如下進(jìn)程,說明ok
start-yarn.sh 啟動namenode和datanode.
hadoop-daemon.sh start namenode 啟動namenode.
hadoop-daemon.sh start datanode 啟動datanode.??
?[root@master hadoop]# start-all.sh
?上面這個(gè)圖是錯(cuò)誤的,由于master的vim slaves沒有配置正確,造成的。下圖是修改過后顯示的。
使用jps命令slaver1、slaver2有如下進(jìn)程,說明ok:
查看集群狀態(tài),命令:hadoop dfsadmin -report
查看分布式文件系統(tǒng):http://master:50070
除了瀏覽器查看集群的狀態(tài),可以使用命令查看,此命令比瀏覽器查看更加準(zhǔn)確:
[root@master hadoop]# hdfs dfsadmin -report
?查看MapReduce:http://master:8088
使用以上命令,當(dāng)你看到如下圖所示的效果圖時(shí),恭喜你完成了Hadoop完全分布式的安裝設(shè)置,其實(shí)這些部署還是比較基本的,對于Hadoop高深的體系結(jié)構(gòu)和強(qiáng)大技術(shù)應(yīng)用,這僅僅是一個(gè)小小的開始。
11:集群的關(guān)閉在master節(jié)點(diǎn)上執(zhí)行命令如下:
stop-all.sh或者(stop-dfs.sh和stop-yarn.sh)
12:hadoop基本操作實(shí)踐
基本命令 1. 格式化工作空間 進(jìn)入bin目錄,運(yùn)行 hadoop namenode –format 2. 啟動hdfs 進(jìn)入hadoop目錄,在bin/下面有很多啟動腳本,可以根據(jù)自己的需要來啟動。 * start-all.sh 啟動所有的Hadoop守護(hù)。包括namenode, datanode, jobtracker, tasktrack * stop-all.sh 停止所有的Hadoop * start-dfs.sh 啟動Hadoop DFS守護(hù)Namenode和Datanode * stop-dfs.sh 停止DFS守護(hù) HDFS文件操作 Hadoop使用的是HDFS,能夠?qū)崿F(xiàn)的功能和我們使用的磁盤系統(tǒng)類似。并且支持通配符,如*。 1. 查看文件列表 b. 執(zhí)行hadoop fs -ls / 查看hdfs中/目錄下的所有文件(包括子目錄下的文件)。 a. 執(zhí)行hadoop fs -ls -R / 2. 創(chuàng)建文件目錄 a. 執(zhí)行hadoop fs -mkdir /newDir 3. 刪除文件 刪除hdfs中/目錄下一個(gè)名叫needDelete的文件 a. 執(zhí)行hadoop fs -rm /needDelete 刪除hdfs中/hdfs目錄以及該目錄下的所有文件 a. 執(zhí)行hadoop fs -rm -r /hdfs 4. 上傳文件 上傳一個(gè)本機(jī)/home/admin/newFile的文件到hdfs中/目錄下 執(zhí)行hadoop fs –put /home/admin/newFile / 5. 下載文件 下載hdfs中/ 目錄下的newFile文件到本機(jī)/home/admin/newFile中 a. 執(zhí)行hadoop fs –get /newFile /home/admin/newFile 6. 查看文件內(nèi)容 查看hdfs中/目錄下的newFile文件 a. 執(zhí)行hadoop fs –cat /newFile2017-11-22? 14:06:19
停更......
轉(zhuǎn)載于:https://www.cnblogs.com/biehongli/p/7640469.html
總結(jié)
以上是生活随笔為你收集整理的一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置静态IP
- 下一篇: JS实现图片预览与等比缩放