一、Hadoop簡(jiǎn)介;
二、Hadoop構(gòu)成:HDFS+MapReduce;
三、案例:部署Hadoop分布式存儲(chǔ)集群;
一、Hadoop簡(jiǎn)介:
1.大數(shù)據(jù)略知一二:
1)大數(shù)據(jù)(big data),指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn),需要在合理的時(shí)間內(nèi)達(dá)到提取、管理、處理、并且整理成為幫助企業(yè)運(yùn)營(yíng)決策更積極目的的信息;
2)在維克托·邁爾-舍恩伯格及肯尼斯·庫(kù)克耶編寫(xiě)的《大數(shù)據(jù)時(shí)代》 中大數(shù)據(jù)指不用隨機(jī)分析法(抽樣調(diào)查)這樣捷徑,而采用所有數(shù)據(jù)進(jìn)行分析處理;
3)大數(shù)據(jù)的5V特點(diǎn)(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價(jià)值密度)、Veracity(真實(shí)性)。
2.圖解大數(shù)據(jù):
http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html
3.項(xiàng)目起源:
Hadoop由 Apache Software Foundation 公司于 2005 年秋天作為Lucene的子項(xiàng)目Nutch的一部分正式引入。它受到最先由 Google Lab 開(kāi)發(fā)的 Map/Reduce 和 Google File System(GFS) 的啟發(fā)。2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分別被納入稱為 Hadoop 的項(xiàng)目中。Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。
Hadoop 是最受歡迎的在 Internet 上對(duì)搜索關(guān)鍵字進(jìn)行內(nèi)容分類的工具,但它也可以解決許多要求極大伸縮性的問(wèn)題。例如,如果您要 grep 一個(gè) 10TB 的巨型文件,會(huì)出現(xiàn)什么情況?在傳統(tǒng)的系統(tǒng)上,這將需要很長(zhǎng)的時(shí)間。但是 Hadoop 在設(shè)計(jì)時(shí)就考慮到這些問(wèn)題,采用并行執(zhí)行機(jī)制,因此能大大提高效率。
4.hadoop優(yōu)點(diǎn):
1)高可靠:在多臺(tái)廉價(jià)商用機(jī)器群集上,善于存放超大文件;
2)高擴(kuò)展性:Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。
3)高效性:處理速度較快。
4)高容錯(cuò)性:Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。
5)低成本:hadoop是開(kāi)源的,項(xiàng)目的軟件成本因此會(huì)大大降低。
6)Hadoop帶有用Java語(yǔ)言編寫(xiě)的框架,因此運(yùn)行在 Linux 生產(chǎn)平臺(tái)上是非常理想的。Hadoop 上的應(yīng)用程序也可以使用其他語(yǔ)言編寫(xiě),比如 C++。
補(bǔ)充:云計(jì)算大數(shù)據(jù)必會(huì)單位(換算為1024=2^10;1B=8b,1漢字=2B)
bit比特|位--byte字節(jié)--KB--MB--GB--TB--PB--EB--ZB--YB--BB--NB--DB
5.hadoop缺點(diǎn):
1)低時(shí)間延遲的數(shù)據(jù)訪問(wèn):要求在例如幾十毫秒內(nèi)完成數(shù)據(jù)訪問(wèn)的應(yīng)用,不適合在HDFS上運(yùn)行,HDFS雖然有強(qiáng)大的高數(shù)據(jù)吞吐量,但是以提高時(shí)間延遲為代價(jià),可以使用HBase滿足低延遲的訪問(wèn)需求;
2)無(wú)法高效存儲(chǔ)大量小文件:大量小文件會(huì)造成整個(gè)文件系統(tǒng)的目錄樹(shù)和索引目錄相對(duì)較大,而這些的元數(shù)據(jù)都會(huì)存放在namenode節(jié)點(diǎn);
二、Hadoop構(gòu)成:HDFS+MapReduce:
1.HDFS引擎結(jié)構(gòu):
1)Hadoop Distributed File System(HDFS)引擎:包括namenode(名稱空間節(jié)點(diǎn))和datanode(數(shù)據(jù)節(jié)點(diǎn));
https://www.cnblogs.com/liango/p/7136448.html
基礎(chǔ)概念:
1)文件塊:Block,datanode中存放數(shù)據(jù)最小邏輯單元,默認(rèn)塊大小為64M,便于管理,不受磁盤限制,數(shù)據(jù)可在datanode的總block中進(jìn)行冗余備份,存儲(chǔ)的副本數(shù)量要少于datanode節(jié)點(diǎn)的數(shù)量,當(dāng)一個(gè)或多個(gè)塊出現(xiàn)故障,用戶可以直接去其他地方讀取數(shù)據(jù)副本;
2)NameNode:管理文件系統(tǒng)的命名空間,屬于管理者角色,維護(hù)文件系統(tǒng)樹(shù)內(nèi)所有文件和目錄,記錄每個(gè)文件在各個(gè)DataNode上的位置和副本信息,并協(xié)調(diào)客戶端對(duì)文件的訪問(wèn);
3)DataNode:負(fù)責(zé)處理文件系統(tǒng)客戶端的文件讀寫(xiě)請(qǐng)求,存儲(chǔ)并檢索數(shù)據(jù)塊,并定期向NameNode發(fā)送所存儲(chǔ)的塊的列表,屬于工作者角色。負(fù)責(zé)所在物理節(jié)點(diǎn)的存儲(chǔ)管理,按照一次寫(xiě)入,多次讀取的原則,存儲(chǔ)文件按照Block塊進(jìn)行存儲(chǔ);
4)Secondary NameNode:相當(dāng)于NameNode的快照,也稱之為二級(jí)NameNode,能夠周期性的備份NameNode,記錄NameNode上的元數(shù)據(jù)等。為防止NameNode進(jìn)程出現(xiàn)故障,起到備份作用;
2. MapReduce 引擎構(gòu)成:
1)MapReduce 引擎:是用于并行處理計(jì)算大數(shù)據(jù)集的軟件框架,是HDFS(對(duì)于本文)的上一層,與hadoop結(jié)合工作,將用戶的任務(wù)分發(fā)到上千臺(tái)商用機(jī)器組成的集群上。最簡(jiǎn)單的 MapReduce應(yīng)用程序至少包含 2個(gè)部分:一個(gè) Map (映射)函數(shù)、一個(gè) Reduce (歸納)函數(shù),Map負(fù)責(zé)將任務(wù)分解成多個(gè)子任務(wù),reduce負(fù)責(zé)把分解后的多任務(wù)的處理結(jié)果進(jìn)行匯總;
JobTrackers :是一個(gè)master進(jìn)程,用于作業(yè)的調(diào)度和管理工作,一個(gè)Hadoop集群中只有一臺(tái)JobTracker;
TaskTrackers:運(yùn)行在多個(gè)節(jié)點(diǎn)上的Slave服務(wù),用于執(zhí)行任務(wù)。TaskTracker需要運(yùn)行在HDFS的DataNode節(jié)點(diǎn)上;
MapReduce 引擎的缺點(diǎn):JobTracker單點(diǎn)瓶頸(負(fù)責(zé)集群心跳信息、作業(yè)管理)、JobTracker分配作業(yè)延遲高、缺乏靈活性;
2) YARN架構(gòu):是MapReduce 引擎的V2版本,解決MapReduce 引擎面臨的性能瓶頸問(wèn)題,將集群資源管理和作業(yè)調(diào)度進(jìn)行分離;
ResourceManager進(jìn)程:管理集群資源的資源管理器
MapReduce:管理作業(yè)任務(wù)
3)數(shù)據(jù)倉(cāng)庫(kù)工具Hive和分布式數(shù)據(jù)庫(kù)Hbase:NoSQL數(shù)據(jù)庫(kù)
3.Hadoop核心概念注意事項(xiàng):
1)HDFS把節(jié)點(diǎn)分成兩類:NameNode和DataNode。NameNode是唯一的,程序與之通信,然后從DataNode上存取文件。這些操作是透明的,與普通的文件系統(tǒng)API沒(méi)有區(qū)別。
2)MapReduce則是JobTracker節(jié)點(diǎn)為主,分配工作以及負(fù)責(zé)和用戶程序通信。
3)HDFS和MapReduce實(shí)現(xiàn)是完全分離的,并不是沒(méi)有HDFS就不能MapReduce運(yùn)算。
4)Hadoop也跟其他云計(jì)算項(xiàng)目有共同點(diǎn)和目標(biāo):實(shí)現(xiàn)海量數(shù)據(jù)的計(jì)算。而進(jìn)行海量計(jì)算需要一個(gè)穩(wěn)定的,安全的數(shù)據(jù)容器,才有了Hadoop分布式文件系統(tǒng)(HDFS,Hadoop Distributed File System)。
5)60款大數(shù)據(jù)軟件:http://blog.csdn.net/SunWuKong_Hadoop/article/details/53580425
6)Hadoop生態(tài):http://blog.csdn.net/u010270403/article/details/51493191
三、案例:部署Hadoop分布式存儲(chǔ)集群:
環(huán)境:
系統(tǒng) | IP地址 | 主機(jī)名 | 所需軟件 |
Centos 7.4 64bit 1708 | 192.168.100.101 | master namenode | hadoop-2.7.6.tar.gz jdk-8u171-linux-x64.tar.gz |
Centos 7.4 64bit 1708 | 192.168.100.102 | slave1 datanode | hadoop-2.7.6.tar.gz jdk-8u171-linux-x64.tar.gz |
Centos 7.4 64bit 1708 | 192.168.100.103 | slave2 datanode | hadoop-2.7.6.tar.gz jdk-8u171-linux-x64.tar.gz |
版本要求:
hadoop版本>=2.7:要求Java 7(openjdk/oracle)
hadoop版本<=2.6:要求Java 6(openjdk/oracle)
步驟:
?配置所有節(jié)點(diǎn)間的域名解析及創(chuàng)建用戶(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置);
?配置master節(jié)點(diǎn)遠(yuǎn)程管理slave節(jié)點(diǎn);
?在所有節(jié)點(diǎn)安裝JDK環(huán)境(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置);
?在所有節(jié)點(diǎn)安裝Hadoop并簡(jiǎn)要配置(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置);
?在master節(jié)點(diǎn)進(jìn)行配置hadoop服務(wù),并將配置文件復(fù)制到slave節(jié)點(diǎn)上;
?在master節(jié)點(diǎn)初始化并且啟動(dòng)Hadoop進(jìn)程;
?驗(yàn)證slave節(jié)點(diǎn)的進(jìn)程狀態(tài);
?網(wǎng)頁(yè)查看http://master:50070統(tǒng)計(jì)hadoop集群的信息;
?Hadoop中數(shù)據(jù)的基本管理;
?配置所有節(jié)點(diǎn)間的域名解析及創(chuàng)建用戶(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置):
[root@master ~]# hostnamectl set-hostname master
[root@master ~]# cat <
192.168.100.101 master
192.168.100.102 slave1
192.168.100.103 slave2
END
[root@master ~]# useradd hadoop
[root@master ~]# echo "hadoop" |passwd --stdin hadoop
?配置master節(jié)點(diǎn)遠(yuǎn)程管理slave節(jié)點(diǎn):
[root@master ~]# su - hadoop
上一次登錄:四 5月 31 01:54:26 CST 2018pts/0 上
[hadoop@master ~]$ ssh-keygen -t rsa
[hadoop@master ~]$ ssh-copy-id hadoop@192.168.100.101
[hadoop@master ~]$ ssh-copy-id hadoop@192.168.100.102
[hadoop@master ~]$ ssh-copy-id hadoop@192.168.100.103
[hadoop@master ~]$ ssh hadoop@master ##遠(yuǎn)程連接slave節(jié)點(diǎn),進(jìn)行確認(rèn)key值文件,不然在啟動(dòng)hadoo時(shí),會(huì)出現(xiàn)key的問(wèn)題導(dǎo)致無(wú)法啟動(dòng)
[hadoop@master ~]$ ssh hadoop@slave1
[hadoop@master ~]$ ssh hadoop@slave2
?在所有節(jié)點(diǎn)安裝JDK環(huán)境(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置):
[hadoop@master ~]$ exit
[root@master ~]# tar zxvf jdk-8u171-linux-x64.tar.gz
[root@master ~]# mv /root/jdk1.8.0_171/ /usr/local/java/
[root@master ~]# ls /usr/local/java/
[root@master ~]# cat <
JAVA_HOME=/usr/local/java/
JRE_HOME=\$JAVA_HOME/jre
CLASS_PATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/lib
PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
END
[root@master ~]# source /etc/profile
[root@master ~]# java -version
java version "1.8.0_171"
?在所有節(jié)點(diǎn)安裝Hadoop并簡(jiǎn)要配置(所有節(jié)點(diǎn)配置相同,在此列舉master節(jié)點(diǎn)配置):
[root@master ~]# tar zxvf hadoop-2.7.6.tar.gz
[root@master ~]# mv /root/hadoop-2.7.6/ /usr/local/hadoop/
[root@master ~]# ls /usr/local/hadoop/
bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin share
[root@master ~]# cat <
export HADOOP_HOME=/usr/local/hadoop/
export PATH=\$PATH:\$HADOOP_HOME/bin
END
[root@master ~]# source /etc/profile
[root@master ~]# echo "export JAVA_HOME=/usr/local/java/" >>/usr/local/hadoop/etc/hadoop/hadoop-env.sh
##設(shè)置HDFS存儲(chǔ)加載jdk的環(huán)境變量
[root@master ~]# echo "export JAVA_HOME=/usr/local/java/" >>/usr/local/hadoop/etc/hadoop/yarn-env.sh
##設(shè)置mapreduce的V2版本--YARN加載jdk的環(huán)境變量
[root@master ~]# mkdir /usr/local/hadoop/name/ ##存放namenode中元數(shù)據(jù)的位置
[root@master ~]# mkdir /usr/local/hadoop/data/ ##存放datanode中的數(shù)據(jù)目錄
[root@master ~]# mkdir /usr/local/hadoop/tmp/ ##存放用戶臨時(shí)文件
[root@master ~]# mkdir /usr/local/hadoop/var/ ##存放服務(wù)動(dòng)態(tài)變化文件
[root@master ~]# chown hadoop /usr/local/hadoop/ -R
?在master節(jié)點(diǎn)進(jìn)行配置hadoop服務(wù),并將配置文件復(fù)制到slave節(jié)點(diǎn)上;
[root@master ~]# su - hadoop
[hadoop@master ~]$ vi /usr/local/hadoop/etc/hadoop/core-site.xml ##指定名稱節(jié)點(diǎn)namenode的相關(guān)配置
[hadoop@master ~]$ vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml ##指定hdfs存儲(chǔ)的相關(guān)配置
[hadoop@master ~]$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml ##修改mapreduce配置文件,將其改為YARN模型
[hadoop@master ~]$ vi /usr/local/hadoop/etc/hadoop/mapred-site.xml ##指定MapR的相關(guān)配置
[hadoop@master ~]$ vi /usr/local/hadoop/etc/hadoop/slaves ##指定slave的名稱
slave1
slave2
附:此文件明確指定DataNode節(jié)點(diǎn),可以通過(guò)節(jié)點(diǎn)的添加和減少來(lái)滿足整個(gè)hadoop群集的伸縮性,添加節(jié)點(diǎn)時(shí),首先將新節(jié)點(diǎn)的配置保證與NameNode節(jié)點(diǎn)配置相同,在此文件指定新的DataNode節(jié)點(diǎn)名,重新啟動(dòng)NameNode便完成。但為保證原有DataNode節(jié)點(diǎn)與新添加DataNode節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行均衡存儲(chǔ),需要執(zhí)行此命令進(jìn)行重新平衡數(shù)據(jù)塊的分布:/usr/local/hadoop/sbin/start-balancer.sh
[hadoop@master ~]$ vi /usr/local/hadoop/etc/hadoop/yarn-site.xml ##指定YARN的相關(guān)配置
[hadoop@master ~]$ scp -r /usr/local/hadoop/etc/hadoop/* hadoop@192.168.100.102:/usr/local/hadoop/etc/hadoop/
[hadoop@master ~]$ scp -r /usr/local/hadoop/etc/hadoop/* hadoop@192.168.100.103:/usr/local/hadoop/etc/hadoop/
?在master節(jié)點(diǎn)初始化并且啟動(dòng)Hadoop進(jìn)程:
[hadoop@master ~]$ /usr/local/hadoop/bin/hdfs namenode -format
[hadoop@master ~]$ ls /usr/local/hadoop/name/ ##初始化所生成的名稱節(jié)點(diǎn)文件
current
注:第一次執(zhí)行格式化,提示信息如上圖,如若第二次再次執(zhí)行格式化,需要將namenode節(jié)點(diǎn)的/usr/local/hadoop/name/目錄內(nèi)容清空,并且將datanode節(jié)點(diǎn)的/usr/local/hadoop/data/目錄清空,方可再次執(zhí)行格式化,否則會(huì)造成namenode節(jié)點(diǎn)與datanode節(jié)點(diǎn)的數(shù)據(jù)版本ID不一致,導(dǎo)致啟動(dòng)服務(wù)失?。?/span>
[hadoop@master ~]$ /usr/local/hadoop/sbin/start-all.sh ##啟動(dòng)hadoop的所有進(jìn)程
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-master.out
slave2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-slave2.out
slave1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-slave1.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-resourcemanager-master.out
slave2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-slave2.out
slave1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-slave1.out
注:/usr/local/hadoop/sbin/start-all.sh命令等于/usr/local/hadoop/sbin/start-dfs.sh加/usr/local/hadoop/sbin/start-yarn.sh,前者啟動(dòng)hdfs系統(tǒng),后者啟動(dòng)mapreduce調(diào)度工具,關(guān)閉兩進(jìn)程的命令為/usr/local/hadoop/sbin/stop-all.sh
[hadoop@master ~]$ netstat -utpln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 7266/java ##namenode進(jìn)程的http端口
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 192.168.100.101:8088 0.0.0.0:* LISTEN 7623/java
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 192.168.100.101:8030 0.0.0.0:* LISTEN 7623/java
tcp 0 0 192.168.100.101:8032 0.0.0.0:* LISTEN 7623/java
tcp 0 0 192.168.100.101:8033 0.0.0.0:* LISTEN 7623/java
tcp 0 0 192.168.100.101:8035 0.0.0.0:* LISTEN 7623/java
tcp 0 0 192.168.100.101:9000 0.0.0.0:* LISTEN 7266/java ##客戶端連接hdfs系統(tǒng)時(shí)用到的端口
tcp 0 0 192.168.100.101:50090 0.0.0.0:* LISTEN 7467/java ## secondary namenode進(jìn)程的http端口
[hadoop@master ~]$ /usr/local/hadoop/bin/hdfs dfsadmin -report ##查看hadoop存儲(chǔ)節(jié)點(diǎn)的狀態(tài)信息
Configured Capacity: 39631978496 (36.91 GB)
Present Capacity: 33541480448 (31.24 GB)
DFS Remaining: 33541472256 (31.24 GB)
DFS Used: 8192 (8 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
-------------------------------------------------
Live datanodes (2):
Name: 192.168.100.103:50010 (slave2)
Hostname: slave2
Decommission Status : Normal
Configured Capacity: 19815989248 (18.46 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 3045191680 (2.84 GB)
DFS Remaining: 16770793472 (15.62 GB)
DFS Used%: 0.00%
DFS Remaining%: 84.63%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 31 03:03:09 CST 2018
Name: 192.168.100.102:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 19815989248 (18.46 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 3045306368 (2.84 GB)
DFS Remaining: 16770678784 (15.62 GB)
DFS Used%: 0.00%
DFS Remaining%: 84.63%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu May 31 03:03:09 CST 2018
[hadoop@master ~]$ jps
7266 NameNode ##namenode節(jié)點(diǎn)主進(jìn)程
7623 ResourceManager ##mapreduce管理進(jìn)程
7467 SecondaryNameNode ##namenode的備份進(jìn)程,避免namenode進(jìn)程意外停止,客戶端無(wú)法讀寫(xiě)數(shù)據(jù)
7883 Jps
?驗(yàn)證slave節(jié)點(diǎn)的進(jìn)程狀態(tài);
[root@slave1 ~]$ su - hadoop
[hadoop@slave1 ~]$ netstat -utpln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13562 0.0.0.0:* LISTEN 3391/java
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 3274/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 3274/java
tcp 0 0 0.0.0.0:39938 0.0.0.0:* LISTEN 3391/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 3274/java
tcp 0 0 127.0.0.1:38373 0.0.0.0:* LISTEN 3274/java
tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 3391/java
tcp 0 0 0.0.0.0:8042 0.0.0.0:* LISTEN 3391/java
[hadoop@slave1 ~]$ jps
3526 Jps
3274 DataNode
3391 NodeManager ##與namenode執(zhí)行心跳信息的節(jié)點(diǎn)進(jìn)程
?網(wǎng)頁(yè)查看http://master:50070統(tǒng)計(jì)hadoop集群的信息;
?Hadoop中數(shù)據(jù)的基本管理:
[hadoop@master ~]$ pwd
/home/hadoop
[hadoop@master ~]$ touch 1.file
[hadoop@master ~]$ ls
1.file
[hadoop@master ~]$ hadoop fs -ls file:///home/hadoop/ ##查看本地文件
[hadoop@master ~]$ hadoop fs -ls / ##查看hadoop文件
[hadoop@master ~]$ hadoop fs -mkdir /input1
[hadoop@master ~]$ hadoop fs -put /home/hadoop/1.file /input1 ##上傳本地文件
[hadoop@master ~]$ hadoop fs -ls /input1
Found 1 items
-rw-r--r-- 2 hadoop supergroup 0 2018-05-31 07:38 /input1/1.file
[hadoop@master ~]$ hadoop fs -cat /input1/1.file ##查看hadoop文件內(nèi)容
[hadoop@master ~]$ hadoop fs -cat file:///home/hadoop/1.file ##查看本地文件內(nèi)容
[hadoop@master ~]$ hadoop fs -get /input1/1.file /tmp ##下載hadoop文件
[hadoop@master ~]$ ls /tmp/
1.file
[hadoop@master ~]$ hadoop fs -mkdir /input2
[hadoop@master ~]$ hadoop fs -mv /input1/1.file /input2/1.txt
[hadoop@master ~]$ hadoop fs -ls /input2
Found 1 items
-rw-r--r-- 2 hadoop supergroup 0 2018-05-31 07:38 /input2/1.txt
[hadoop@master ~]$ hadoop fs -cp /input2/1.txt /input2/2.txt
[hadoop@master ~]$ hadoop fs -ls /input2
Found 2 items
-rw-r--r-- 2 hadoop supergroup 0 2018-05-31 07:38 /input2/1.txt
-rw-r--r-- 2 hadoop supergroup 0 2018-05-31 08:01 /input2/2.txt
[hadoop@master ~]$ hadoop fs -rm /input2/2.txt ##刪除單個(gè)文件
18/05/31 08:01:40 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /input2/2.txt
[hadoop@master ~]$ hadoop fs -ls /input2
Found 1 items
-rw-r--r-- 2 hadoop supergroup 0 2018-05-31 07:38 /input2/1.txt
[hadoop@master ~]$ hadoop fs -rmr /input2/ ##遞歸刪除目錄
rmr: DEPRECATED: Please use 'rm -r' instead.
18/05/31 08:06:23 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /input2
[hadoop@master ~]$ hadoop fs -ls /
Found 1 items
drwxr-xr-x - hadoop supergroup 0 2018-05-31 07:58 /input1
[hadoop@master ~]$ hadoop fs -test -e /input1/ ##查看文件或目錄是否存在,存在返回值為0,不存在返回值為1
[hadoop@master ~]$ echo $?
0
[hadoop@master ~]$ hadoop fs -test -e /input1/2.file
[hadoop@master ~]$ echo $?
1
[hadoop@master ~]$ hadoop fs -du /input1 ##查看目錄中文件的所有文件的大小
0 /input1/2.file._COPYING_
[hadoop@master ~]$ hadoop fs -du -s /input1 ##查看目錄本身的大小
0 /input1
[hadoop@master ~]$ hadoop fs -expunge ##清空回收站
[hadoop@master ~]$ hadoop fs -chmod 777 /input1
[hadoop@master ~]$ hadoop fs -chown hadoop:hadoop /input1
[hadoop@master ~]$ hadoop fs -ls /
Found 1 items
drwxrwxrwx - hadoop hadoop 0 2018-05-31 07:58 /input1
聯(lián)系客服