一、大數(shù)據(jù)
- 大數(shù)據(jù)(big data),指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。
- 一種規(guī)模大到在獲取、存儲(chǔ)、管理、分析方面大大超出了傳統(tǒng)數(shù)據(jù)庫(kù)軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價(jià)值密度低四大特征。
1、大數(shù)據(jù)的結(jié)構(gòu)
- 大數(shù)據(jù)包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)越來(lái)越成為數(shù)據(jù)的主要部分。
結(jié)構(gòu)化數(shù)據(jù):
- 結(jié)構(gòu)化數(shù)據(jù)也稱作行數(shù)據(jù),是由二維表結(jié)構(gòu)來(lái)邏輯表達(dá)和實(shí)現(xiàn)的數(shù)據(jù),嚴(yán)格地遵循數(shù)據(jù)格式與長(zhǎng)度規(guī)范,主要通過(guò)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)和管理。
- 結(jié)構(gòu)化數(shù)據(jù),簡(jiǎn)單來(lái)說(shuō)就是數(shù)據(jù)庫(kù),如MySQL、Oracle、SQL Server等。結(jié)合到典型場(chǎng)景中更容易理解,比如企業(yè)ERP、財(cái)務(wù)系統(tǒng);醫(yī)療HIS數(shù)據(jù)庫(kù);教育一卡通;政府行政審批;其他核心數(shù)據(jù)庫(kù)等。
半結(jié)構(gòu)化數(shù)據(jù):
- 半結(jié)構(gòu)化數(shù)據(jù)可以通過(guò)靈活的鍵值調(diào)整獲取相應(yīng)信息,且數(shù)據(jù)的格式不固定,如json,同一鍵值下存儲(chǔ)的信息可能是數(shù)值型的,可能是文本型的,也可能是字典或者列表。
- 半結(jié)構(gòu)化數(shù)據(jù),屬于同一類實(shí)體可以有不同的屬性,即使他們被組合在一起,這些屬性的順序并不重要。常見的半結(jié)構(gòu)數(shù)據(jù)有XML和JSON。
- 它是一種適于數(shù)據(jù)庫(kù)集成的數(shù)據(jù)模型,也就是說(shuō),適于描述包含在兩個(gè)或多個(gè)數(shù)據(jù)庫(kù)(這些數(shù)據(jù)庫(kù)含有不同模式的相似數(shù)據(jù))中的數(shù)據(jù)。
非結(jié)構(gòu)化數(shù)據(jù):
- 它沒(méi)有元數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)是數(shù)據(jù)結(jié)構(gòu)不規(guī)則或不完整,沒(méi)有預(yù)定義的數(shù)據(jù)模型,不方便用數(shù)據(jù)庫(kù)二維邏輯表來(lái)表現(xiàn)的數(shù)據(jù)。包括所有格式的辦公文檔、文本、圖片、XML, HTML、各類報(bào)表、圖像和音頻/視頻信息等等。
- 非結(jié)構(gòu)化數(shù)據(jù)其格式非常多樣,標(biāo)準(zhǔn)也是多樣性的,而且在技術(shù)上非結(jié)構(gòu)化信息比結(jié)構(gòu)化信息更難標(biāo)準(zhǔn)化和理解。所以存儲(chǔ)、檢索、發(fā)布以及利用需要更加智能化的IT技術(shù),比如海量存儲(chǔ)、智能檢索、知識(shí)挖掘、內(nèi)容保護(hù)、信息的增值開發(fā)利用等。
2、大數(shù)據(jù)的獲取
第一步:爬行
- 搜索引擎是通過(guò)一種特定規(guī)律的軟件跟蹤網(wǎng)頁(yè)的鏈接,從一個(gè)鏈接爬到另外一個(gè)鏈接,像蜘蛛在蜘蛛網(wǎng)上爬行一樣,所以被稱為“蜘蛛”也被稱為“機(jī)器人”。搜索引擎蜘蛛的爬行是被輸入了一定的規(guī)則的,它需要遵從一些命令或文件的內(nèi)容。
第二步:抓取存儲(chǔ)
- 搜索引擎是通過(guò)蜘蛛跟蹤鏈接爬行到網(wǎng)頁(yè),并將爬行的數(shù)據(jù)存入原始頁(yè)面數(shù)據(jù)庫(kù)。其中的頁(yè)面數(shù)據(jù)與用戶瀏覽器得到的HTML是完全一樣的。
第三步:分析處理
- 搜索引擎將蜘蛛抓取回來(lái)的頁(yè)面,爬取了海量的非結(jié)構(gòu)化信息,由于非結(jié)構(gòu)化數(shù)據(jù)的多樣性帶來(lái)了數(shù)據(jù)分析的新的挑戰(zhàn),我們需要一系列的工具去解析,提取,分析數(shù)據(jù)。語(yǔ)義引擎需要被設(shè)計(jì)成能夠從“文檔”中智能提取信息。
3、發(fā)展歷史
- 2003年:谷歌公司發(fā)布一篇論文名叫The Google File System,論述了如何使用商用服務(wù)器分布式存儲(chǔ)海量數(shù)據(jù),用來(lái)大規(guī)模分布式程序密集式運(yùn)行,可以擴(kuò)展到上萬(wàn)個(gè)節(jié)點(diǎn),適用流式數(shù)據(jù)處理。
- 2004年:谷歌公司發(fā)布了另一篇論文名叫MapReduce: Simplified Data Processing On Large Cluster,系統(tǒng)的闡述了MapReduce編程模型和處理機(jī)制,是一個(gè)PB級(jí)的并行處理框架。
- 2006年:谷歌公司發(fā)布了另一篇論文名叫BigTable:A Distributed Storage System for Structure Data,僅僅支持鍵值對(duì)的格式存儲(chǔ)
二、Hadoop
1、Hadoop定義
- Hadoop原本來(lái)自于谷歌一款名為MapReduce的編程模型包。谷歌的MapReduce框架可以把一個(gè)應(yīng)用程序分解為許多并行計(jì)算指令,跨大量的計(jì)算節(jié)點(diǎn)運(yùn)行非常巨大的數(shù)據(jù)集。使用該框架的一個(gè)典型例子就是在網(wǎng)絡(luò)數(shù)據(jù)上運(yùn)行的搜索算法。Hadoop最初只與網(wǎng)頁(yè)索引有關(guān),迅速發(fā)展成為分析大數(shù)據(jù)的領(lǐng)先平臺(tái)。
- 我們可以理解為HDFS + MapReduce = Hadoop,Hadoop使用的存儲(chǔ)數(shù)據(jù)庫(kù)是HBase。
- MapReduce是批處理系統(tǒng),缺陷是由于處理機(jī)制導(dǎo)致大量數(shù)據(jù)處理會(huì)變慢
2、函數(shù)式編程:
- 類似于Lisp, ML函數(shù)式編程語(yǔ)言;它的特性就是高階函數(shù);把函數(shù)作為參數(shù)傳入,這樣的函數(shù)稱為高階函數(shù),函數(shù)式編程就是指這種高度抽象的編程范式。
map:
- map(f())的作用是把一個(gè)任務(wù)映射成多個(gè)
map:接受一個(gè)函數(shù)為參數(shù),并將其應(yīng)用于列表中的所有元素;從而生成一個(gè)結(jié)果列表;
例如:"1", "2", "3", "4"
fold:
fold(g(), init)接受兩個(gè)參數(shù):第一個(gè)是函數(shù),第二個(gè)是初始值,作用是把多個(gè)任務(wù)折疊

3、mapreduce:
- mapper是一個(gè)運(yùn)行實(shí)例。舉例來(lái)說(shuō),統(tǒng)計(jì)一本書每個(gè)單詞出現(xiàn)的次數(shù):mapper: 每100頁(yè)一個(gè)單位,5 mappers同時(shí)運(yùn)行用于拆分成為單詞;10000000,生成一個(gè)結(jié)果列表;reducer:負(fù)責(zé)把同一個(gè)單詞發(fā)送到同一個(gè)reducer,這個(gè)過(guò)程叫做shuffle and sort。
- mapper:處理的結(jié)果是鍵值對(duì),鍵:值,例如:”this 1, is 1, this 1, how 1”同一個(gè)鍵只能發(fā)往同一個(gè)reducer
-
reducer: 就是把這些鍵值合成一個(gè)離目標(biāo)最近的結(jié)果;例如“this 500 is 20”
mapreduce的作業(yè)提交



4、Hadoop:存儲(chǔ)和處理平臺(tái)
hdfs:集群,NN名稱節(jié)點(diǎn),SNN輔助名稱節(jié)點(diǎn),DN數(shù)據(jù)節(jié)點(diǎn)
mapreduce:集群是一個(gè)有中心節(jié)點(diǎn)工作方式的集群,JobTracker集群資源和作業(yè)管理,TaskTracker運(yùn)行作業(yè)任務(wù)
任務(wù)分別為:map和reduce
5、編程模型與數(shù)據(jù)處理引擎MRv1和MRv2
MRv1主要由編程模型(由新舊API組成)、數(shù)據(jù)處理引擎(由MapTask和ReduceTask組成)和運(yùn)行時(shí)環(huán)境(由一個(gè)JobTracker和若干個(gè)TaskTracker組成)三部分組成,為了保證編程模型的向后兼容性,MRv2重用了MRv1中的編程模型和數(shù)據(jù)處理引擎,但運(yùn)行時(shí)環(huán)境被完全重寫,
-
引入YARN作為通用資源調(diào)度平臺(tái)后,Hadoop得以支持多種計(jì)算框架,如MapReduce、Spark、Storm等。MRv1是Hadoop1中的MapReduce,MRv2是Hadoop2中的MapReduce。下面是MRv1和MRv2之間的一些基本變化:
- MRv2中,重用了MRv1中的編程模型和數(shù)據(jù)處理引擎。但是運(yùn)行時(shí)環(huán)境被重構(gòu)了。jobtracker被拆分成了通用的資源調(diào)度平臺(tái)YARN和負(fù)責(zé)各個(gè)計(jì)算框架的任務(wù)調(diào)度模型AM。
- MRv1中任務(wù)是運(yùn)行在Map slot和Reduce slot中的,計(jì)算節(jié)點(diǎn)上的Map slot資源和Reduce slot資源不能重用。而MRv2中任務(wù)是運(yùn)行在container中的,map任務(wù)結(jié)束后,相應(yīng)container結(jié)束,空閑出來(lái)的資源可以讓reduce使用。

- 在Hadoop2.0以后mapreduce被切割開,底層的通用框架獨(dú)立了出來(lái)叫做YARN,只實(shí)現(xiàn)集群資源管理,而對(duì)應(yīng)的任務(wù)則使用,RM集群資源管理器, NM節(jié)點(diǎn)資源管理器, AM應(yīng)用程序主節(jié)點(diǎn),運(yùn)行在container中。
一個(gè)任務(wù)就會(huì)分成兩個(gè)框架
* 框架一
- RM: Resource Manager負(fù)責(zé)全局資源管理,資源的狀態(tài)由NM報(bào)告,如果RM要啟動(dòng)一個(gè)container,會(huì)向NM發(fā)指令
- NM: Node Manager 節(jié)點(diǎn)管理
* 框架二
- AM: Application Master應(yīng)用管理,當(dāng)container啟動(dòng)后 由AM管理
- container:運(yùn)行mr任務(wù);
6、hadoop的三個(gè)著名的插件:hive,pig,Hbase
7、Hadoop Distribution分發(fā)版:有兩個(gè)著名的商業(yè)分發(fā)版
1、Cloudera: CDH
2、Hortonworks: HDP
另外還有Intel:IDH、MapR
三、基于偽分布式模型運(yùn)行的hadoop部署
- 單機(jī)模型:一般測(cè)試使用,不建議使用;
- 偽分布式模型:運(yùn)行于單機(jī);
- 分布式模型:集群模型,真集群
Hadoop,基于Java語(yǔ)言研發(fā);
jdk:1.6, 1.7, 1.8
hadoop-2.6.2版本需要jdk 1.6+
hadoop-2.7版本需要 jdk 1.7+
注意:因?yàn)閷?shí)驗(yàn)主機(jī)使用java要求內(nèi)存至少2G
1、安裝jdk
[root@node-61 ~]# yum install epel-release -y
#安裝jdk
[root@node-61 ~]# yum install java-1.8.0-openjdk-devel -y
#設(shè)置環(huán)境變量
[root@node-61 ~]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
[root@node-61 ~]# . /etc/profile.d/java.sh
#驗(yàn)證版本
[root@node-61 ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
2、下載Hadoop-2.7.7
下載地址:https://hadoop.apache.org/releases.html
[root@node-61 ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
[root@node-61 ~]# mkdir /bdapps
[root@node-61 ~]# tar xf hadoop-2.7.7.tar.gz -C /bdapps/
[root@node-61 ~]# ln -sv /bdapps/hadoop-2.7.7/ /bdapps/hadoop
[root@node-61 ~]# vim /etc/profile.d/hadoop.sh
export HADOOP_PREFIX=/bdapps/hadoop
export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin
export HADOOP_YARN_HOME=${HADOOP_PRFIX}
export HADOOP_MAPPERD_HOME=${HADOOP_PRFIX}
export HADOOP_COMMON_HOME=${HADOOP_PRFIX}
export HADOOP_HDFS_HOME=${HADOOP_PRFIX}
3、創(chuàng)建一個(gè)組和用戶,工作目錄
[root@node-61 ~]# groupadd hadoop
[root@node-61 ~]# useradd -g hadoop yarn
[root@node-61 ~]# useradd -g hadoop hdfs
[root@node-61 ~]# useradd -g hadoop mapred
4、創(chuàng)建數(shù)據(jù)目錄和日志目錄
[root@node-61 ~]# mkdir -pv /data/hadoop/hdfs/{nn,snn,dn}
[root@node-61 ~]# chown -R hdfs:hadoop /data/hadoop/hdfs #修改屬主屬組
[root@node-61 ~]# ll /data/hadoop/hdfs/
total 0
drwxr-xr-x 2 hdfs hadoop 6 Mar 11 23:33 dn
drwxr-xr-x 2 hdfs hadoop 6 Mar 11 23:33 nn
drwxr-xr-x 2 hdfs hadoop 6 Mar 11 23:33 snn
[root@node-61 ~]# mkdir /bdapps/hadoop/logs
[root@node-61 ~]# chmod g+w /bdapps/hadoop/logs
[root@node-61 ~]# chown -R yarn:hadoop /bdapps/hadoop/*
5、配置Hadoop
- Hadoop配置文件是xml格式,配置信息保存在<configuration>中,在<configuration>中每一個(gè)配置都以 <property>開頭 和以</property>結(jié)尾,每個(gè)<property>內(nèi)部至少有兩個(gè)屬性,一個(gè)是參數(shù)名稱<name>,另一個(gè)是對(duì)應(yīng)參數(shù)的值<value>,還有 <final>。
core-site.xml 配置文件
- core-site.xml文件包含了NameNode主機(jī)地址及監(jiān)聽RPC端口信息,對(duì)于偽分布式模型來(lái)說(shuō),其主機(jī)地址為localhost。NameNode默認(rèn)使用的RPC端口為8020。
#core-site.xml
[root@node-61 ~]# vim /bdapps/hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
.............
<configuration>
<property>
<name>fs.defaultFS</name> #函數(shù)名稱
<value>hdfs://localhost:8020</value> #函數(shù)對(duì)應(yīng)的值,定義端口
<final>true</final>
</property>
</configuration>
hdfs-site.xml配置文件
- hdfs-site.xml主要用于配置HDFS相關(guān)屬性,例如復(fù)制因子(即數(shù)據(jù)塊的副本數(shù))、NN和DN用于存儲(chǔ)數(shù)據(jù)的目錄等。數(shù)據(jù)塊的副本對(duì)于偽分布式的Hadoop應(yīng)該為1,而NN和DN用于存儲(chǔ)的數(shù)據(jù)的目錄為前面步驟中專門為其創(chuàng)建的目錄。另外前面的步驟中也為SNN創(chuàng)建了相關(guān)的目錄,這里也一并配置其為啟用狀態(tài)。
#hdfs-site.xml
[root@node-61 ~]# vim /bdapps/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name> #數(shù)據(jù)塊的副本數(shù)
<value>1</value> #定義數(shù)值為1
</property>
<property>
<name>dfs.namenode.name.dir</name> #名稱節(jié)點(diǎn)路徑
<value>file:///data/hadoop/hdfs/nn</value> #定義名稱節(jié)點(diǎn)存放路徑
</property>
<property>
<name>dfs.datanode.data.dir</name> #數(shù)據(jù)節(jié)點(diǎn)數(shù)據(jù)目錄
<value>file:///data/hadoop/hdfs/dn</value> #定義數(shù)據(jù)節(jié)點(diǎn)數(shù)據(jù)目錄
</property>
<property>
<name>fs.checkpoint.dir</name> #檢查點(diǎn)目錄
<value>file:///data/hadoop/hdfs/snn</value> #定義檢查點(diǎn)目錄
</property>
<property>
<name>fs.checkpoint.edits.dir</name>#檢查點(diǎn)編輯目錄
<value>file:///data/hadoop/hdfs/snn</value>#定義檢查點(diǎn)編輯目錄
</property>
</configuration>
mapred-site.xml配置文件
- mapred-site.xml文件用于配置集群的MapReduce framework,此處應(yīng)該指定使用yarn,另外的可用值還有l(wèi)ocal和classic(經(jīng)典的)。mapred-site-xml默認(rèn)不存在,但有模塊文件mapred-site.xml.template,只需要將其復(fù)制mapred-site.xml即可。
[root@node-61 ~]# mv /bdapps/hadoop/etc/hadoop/mapred-site.xml.template /bdapps/hadoop/etc/hadoop/mapred-site.xml
[root@node-61 ~]# vim /bdapps/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> #集定義群
<value>yarn</value> #集群值為yarn
</property>
</configuration>
yarn-site.xml配置文件
- yarn-site.xml用于配置YARN進(jìn)程及YARN的相關(guān)屬性。首先要指定ResourceManager守護(hù)進(jìn)程的主機(jī)和艦艇的端口,對(duì)于偽分布式模型來(lái)講,其主機(jī)為localhost,默認(rèn)端口為8032,其次需要指定ResourceManager使用scheduler(調(diào)度器),以及NodeManager的輔助服務(wù)。
[root@node-61 ~]# vim /bdapps/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8032</value> #值為地址端口
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>#調(diào)度器地址
<value>localhost:8030</value> #值地址端口
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>#資源追蹤器
<value>localhost:8031</value>#值為地址端口
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>#管理地址
<value>localhost:8033</value>#值為地址端口
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name> #web管理地址
<value>localhost:8088</value> #值為地址端口
</property>
<property>
<name>yarn.nodemanager.aux-services</name> #節(jié)點(diǎn)管理的輔助服務(wù)
<value>mapreduce_shuffle</value> #值為shuffle類
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>#使用哪一種shuffle類
<value>org.apache.hadoop.mapred.ShuffleHandler</value>#值為使用apache中的ShuffleHandler類
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name> #定義使用哪個(gè)調(diào)度器類
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> #值為使用apache中的CapacityScheduler類
</property>
</configuration>
6、格式化HDFS
- 在HDFS的NN啟動(dòng)之前需要先初始化其用于存儲(chǔ)數(shù)據(jù)的目錄。如果hdfs-site.xml中dfs.namenode.name.dir屬性指定的目錄不存在,格式化命令會(huì)自動(dòng)創(chuàng)建;如果事先存在,請(qǐng)確保其權(quán)限設(shè)置正確,此時(shí)格式操作會(huì)清除其內(nèi)部的所有數(shù)據(jù)并重新建立一個(gè)新的文件系統(tǒng)。使用hdfs用戶格式化操作。
[root@node-61 ~]# su - hdfs
[hdfs@node-61 ~]$ hdfs namenode -format
#驗(yàn)證格式化是否成功
[hdfs@node-61 ~]$ ls /data/hadoop/hdfs/nn/current/
fsimage_0000000000000000000 fsimage_0000000000000000000.md5 seen_txid VERSION
7、啟動(dòng)Hadoop的hdfs集群
#啟動(dòng)名稱節(jié)點(diǎn)namenode
[hdfs@node-61 ~]$ hadoop-daemon.sh start namenode
starting namenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-namenode-node-61.out
[hdfs@node-61 ~]$ jps
7619 Jps
7550 NameNode
#啟動(dòng)輔助名稱節(jié)點(diǎn)secondarynamenode
[hdfs@node-61 ~]$ hadoop-daemon.sh start secondarynamenode
starting secondarynamenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-secondarynamenode-node-61.out
[hdfs@node-61 ~]$ jps
7685 Jps
7644 SecondaryNameNode
7550 NameNode
#啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)datanode
[hdfs@node-61 ~]$ hadoop-daemon.sh start datanode
starting datanode, logging to /bdapps/hadoop/logs/hadoop-hdfs-datanode-node-61.out
[hdfs@node-61 ~]$ jps
7713 DataNode
7644 SecondaryNameNode
7789 Jps
7550 NameNode
8、啟動(dòng)Hadoop的yarn集群
#使用yarn用戶啟動(dòng)
[root@node-61 ~]# su - yarn
[yarn@node-61 ~]$ yarn-daemon.sh start resourcemanager #啟動(dòng)rm
starting resourcemanager, logging to /bdapps/hadoop/logs/yarn-yarn-resourcemanager-node-61.out
[yarn@node-61 ~]$ yarn-daemon.sh start nodemanager #啟動(dòng)nm
starting nodemanager, logging to /bdapps/hadoop/logs/yarn-yarn-nodemanager-node-61.out
[yarn@node-61 ~]$ jps
18848 Jps
18508 ResourceManager
18748 NodeManager
四、hadoop測(cè)試使用
1、hdfs的User Commands用戶命令
- hdfs數(shù)據(jù)塊分片存儲(chǔ)在節(jié)點(diǎn)指定目錄下,這里是/data/hadoop/hdfs/dn/current/BP-*****,并有它的固定名稱格式和目錄結(jié)構(gòu),如果數(shù)據(jù)是文本格式,可以使用cat命令查看內(nèi)容。
dfs 客戶端工具
fetchdt
fsck
version
mkdir命令創(chuàng)建目錄
[hdfs@node-61 ~]$ hdfs dfs -mkdir /test
[hdfs@node-61 ~]$ hdfs dfs -ls /
Found 1 items
drwxr-xr-x - hdfs supergroup 0 2019-03-13 21:52 /test
put命令上傳到hdfs指定目錄
[hdfs@node-61 ~]$ hdfs dfs -put /etc/fstab /test/fstab
[hdfs@node-61 ~]$ hdfs dfs -ls /test
Found 1 items
-rw-r--r-- 1 hdfs supergroup 465 2019-03-13 21:56 /test/fstab
ls -R命令遞歸查詢指定目錄
[hdfs@node-61 ~]$ hdfs dfs -ls -R /
drwxr-xr-x - hdfs supergroup 0 2019-03-13 21:56 /test
-rw-r--r-- 1 hdfs supergroup 465 2019-03-13 21:56 /test/fstab
cat命令顯示文件內(nèi)容
[hdfs@node-61 ~]$ hdfs dfs -cat /test/fstab
#
# /etc/fstab
# Created by anaconda on Tue Sep 25 19:41:12 2018
...........
2、Administration Commands管理命令
balancer
datanode
dfsadmin
mover
namenode
secondarynamenode
3、在hadoop運(yùn)行測(cè)試程序
- Hadoop-YARN自帶了許多示例程序,他們位于hadoop安裝路徑下share/hadoop/mapreduce/中,運(yùn)行要使用hdfs用戶。
[root@node-61 ~]# su - hdfs
Last login: Wed Mar 13 21:52:24 CST 2019 on pts/0
[hdfs@node-61 ~]$ yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test/fstab /test/fstab.out
#使用示例程序中的wordcount單詞統(tǒng)計(jì)方法,統(tǒng)計(jì)fastab文件夾并把結(jié)果保存到fatab.out下
#查詢輸出文檔統(tǒng)計(jì)結(jié)果
[hdfs@node-61 ~]$ hdfs dfs -cat /test/fstab.out/part-r-00000
# 7
'/dev/disk' 1
/ 1
/boot 1
/dev/mapper/centos-root 1
/dev/mapper/centos-swap 1
/etc/fstab 1
0 6
19:41:12 1
2018 1
25 1
Accessible 1
Created 1
See 1
Sep 1
Tue 1
UUID=2644b409-66f3-48dd-922f-acb280404e1d 1
anaconda 1
and/or 1
are 1
blkid(8) 1
by 2
defaults 3
filesystems, 1
findfs(8), 1
for 1
fstab(5), 1
info 1
maintained 1
man 1
more 1
mount(8) 1
on 1
pages 1
reference, 1
swap 2
under 1
xfs 2
4、web界面
-
HDFS和YARN ResourceManager各自提供個(gè)一個(gè)web接口,通過(guò)這些接口可以檢查HDFS集群和YARN集群的相關(guān)信息。他們的訪問(wèn)接口分別為HDFS-NameNode:http://<NameNodeHost>:50070
YARN_ResourceManager:http://<ResourceManager>:8088
HDFS的web信息界面1
HDFS的web信息界面2
參考鏈接:https://blog.csdn.net/wzz87/article/details/79372162
https://blog.csdn.net/jiewuyou/article/details/37742669


