重新編輯本機(jī)的hosts文件
sudo vim /etc/hosts


啟動HDFS
- 來到$HADOOP_HOME/sbin目錄下
- 執(zhí)行start-dfs.s
[hadoop@hadoop000 sbin]$ ./start-dfs.sh
- 可以看到 namenode和 datanode啟動的日志信息
20/10/26 09:49:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [hadoop000]
hadoop000: Warning: Permanently added the RSA host key for IP address '10.25.187.18' to the list of known hosts.
hadoop000: starting namenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-namenode-hadoop000.out
hadoop000: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop000.out
- 通過jps命令查看當(dāng)前運(yùn)行的進(jìn)程
[hadoop@hadoop000 sbin]$ jps
4249 NameNode
4351 DataNode
4613 SecondaryNameNode
4733 Jps
通過可視化界面查看HDFS的運(yùn)行情況
-
通過瀏覽器查看 主機(jī)ip:50070端口
圖片.png Overview界面查看整體情
Datanodes界面查看datanode的情況
HDFS shell操作
ls
使用方法:
hadoop fs -ls <args>
如果是文件,則按照如下格式返回文件信息:
文件名 <副本數(shù)> 文件大小 修改日期 修改時間 權(quán)限 用戶ID 組ID
如果是目錄,則返回它直接子文件的一個列表,就像在Unix中一樣。目錄返回列表的信息如下:
目錄名 <dir> 修改日期 修改時間 權(quán)限 用戶ID 組ID
示例:
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
返回值:
成功返回0,失敗返回-1
mv
使用方法:
hadoop fs -mv URI [URI …] <dest>
將文件從源路徑移動到目標(biāo)路徑。這個命令允許有多個源路徑,此時目標(biāo)路徑必須是一個目錄。不允許在不同的文件系統(tǒng)間移動文件。
示例:
- hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1
返回值:
成功返回0,失敗返回-1。
put
使用方法:
hadoop fs -put <localsrc> ... <dst>
從本地文件系統(tǒng)中復(fù)制單個或多個源路徑到目標(biāo)文件系統(tǒng)。也支持從標(biāo)準(zhǔn)輸入中讀取輸入寫入目標(biāo)文件系統(tǒng)。
- hadoop fs -put localfile /user/hadoop/hadoopfile
- hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
- hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
- hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
從標(biāo)準(zhǔn)輸入中讀取輸入。
返回值:
成功返回0,失敗返回-1。
rm
使用方法:
hadoop fs -rm URI [URI …]
刪除指定的文件。只刪除非空目錄和文件。請參考rmr命令了解遞歸刪除。
示例:
- hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
返回值:
成功返回0,失敗返回-1。
- 在centos 中創(chuàng)建 test.txt
touch test.txt
- 在centos中為test.txt 添加文本內(nèi)容
vi test.txt
- 查看hdfs中 / 下的文件情況
hadoop fs -ls /
- 在HDFS中創(chuàng)建 hadoop001/test 文件夾
hadoop fs -mkdir -p /hadoop001/test
- 把text.txt文件上傳到HDFS中
hadoop fs -put test.txt /hadoop001/test/
- 查看hdfs中 hadoop001/test/test.txt 文件內(nèi)容
hadoop fs -cat /hadoop001/test/test.txt
- 將hdfs中 hadoop001/test/test.txt文件下載到centos
hadoop fs -get /hadoop001/test/test.txt test.txt
- 將 /hadoop001/test/test.txt test.txt 移動到 /tmp
hadoop fs -mv /hadoop001/test/test.txt test.txt /tmp
- 刪除HDFS中 /tmp
hadoop fs -rm -r /tmp
HDFS設(shè)計思路
分布式文件系統(tǒng)的設(shè)計思路:

HDFS架構(gòu)
- 1個NameNode/NN(Master) 帶 DataNode/DN(Slaves) (Master-Slave結(jié)構(gòu))
- 1個文件會被拆分成多個Block
- NameNode(NN) 負(fù)責(zé)客戶端請求的響應(yīng)
負(fù)責(zé)元數(shù)據(jù)(文件的名稱、副本系數(shù)、Block存放的DN)的管理 元數(shù)據(jù) MetaData 描述數(shù)據(jù)的數(shù)據(jù) 監(jiān)控DataNode健康狀況 10分鐘沒有收到DataNode報告認(rèn)為Datanode死掉了 - DataNode(DN) 存儲用戶的文件對應(yīng)的數(shù)據(jù)塊(Block)
要定期向NN發(fā)送心跳信息,匯報本身及其所有的block信息,健康狀況 -
分布式集群NameNode和DataNode部署在不同機(jī)器上
- HDFS優(yōu)缺點
- 優(yōu)點
- 數(shù)據(jù)冗余 硬件容錯
- 適合存儲大文件
- 處理流式數(shù)據(jù)
- 可構(gòu)建在廉價機(jī)器上
- 缺點
- 低延遲的數(shù)據(jù)訪問
- 小文件存儲
- 優(yōu)點
HDFS環(huán)境搭建
- 下載jdk 和 hadoop 放到 /sLL/app目錄下
tar -zxvf 壓縮包名字 -C ~/app/
tar -vxzf jdk-7u79-linux-x64.tar.gz -C ~/app/
tar -vxzf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/app/
- 配置環(huán)境變量
vi ~/.bash_profile
添加環(huán)境變量
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export HADO::OP_HOME=/home/hadoop/app/hadoop......
export PATH=$HADOOP_HOME/bin:$PATH
保存退出后, 讓.bash_profile立即生效
source ~/.bash_profile
進(jìn)入到解壓后的hadoop目錄 修改配置文件
配置文件作用
- core-site.xml 指定hdfs的訪問方式
- hdfs-site.xml 指定namenode 和 datanode 的數(shù)據(jù)存儲位置
- mapred-site.xml 配置mapreduce
- yarn-site.xml 配置yarn
修改hadoop.env.sh
export_JAVA_HOME = /home/app/jdk1.7
- 修改 core-site.xml 在 <configuration>節(jié)點中添加 (默認(rèn)hdfs的地址 8020)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop000:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
- 修改hdfs-site.xml 在 configuration節(jié)點中添加
單節(jié)點偽分布式
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
集群
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/app/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/app/tmp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
來到hadoop的bin目錄
./hadoop namenode -format (這個命令只運(yùn)行一次)

