Hadoop常用發行版: Apache Hadoop CDH Cloudera Distributed Hadoop HDP Hortonworks Data Platfrom 分散式文件系統(HDFS) HDFS架構 1個master(NameNode/NN)帶n個slaves(DataNode/ ...
Hadoop常用發行版:
Apache Hadoop
CDH Cloudera Distributed Hadoop
HDP Hortonworks Data Platfrom
分散式文件系統(HDFS)
HDFS架構
1個master(NameNode/NN)帶n個slaves(DataNode/DN)
HDFS/YARN/HBase都是類似結構
一個文件會被拆分成多個Block
blocksize:128M
130M ==> 2個Block:128M和2M
NN:
1)負責客戶端請求的響應
2)負責元數據(文件的名稱、副本繫數、Block存放的DN)的管理
DN:
1)存儲用戶的文件對應的數據塊(Block)
2)要定期向NN發送心跳信息,彙報本身及其所有的block信息,健康狀況
A typical deployment has a dedicated machine that runs only the NameNode software. Each of the other machines in the cluster runs one instance of the DataNode software.
NameNode + N個DataNode
建議:NN和DN部署在不同的節點上
replication factor:副本繫數、副本因數
HDFS環境搭建
使用版本:hadoop-2.6.0-cdh5.7.0
Hadoop偽分散式安裝步驟
1) jdk安裝
解壓:tar –zxvf jdk-7u79-linux-x64.tar.gz –C ~/app
添加到系統環境變數:~/.bash_profile
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
eport PATH=$JAVA_HOME/bin:$PATH
使得環境變數生效:source ~/.bash_profile
驗證java是否配置成功:java –version
2) 安裝ssh
sudo yum install ssh
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorizes_keys
3) 下載並解壓hadoop
下載:直接在cdh網站下載
解壓:tar –zxvf Hadoop-2.6.0-cdh5.7.0.tar.gz –C ~/app
4) hadoop配置文件的修改(hadoop_home/etc/hadoop)
hadoop-evn.sh
export JAVA_HOME=/home/Hadoop/app/jdk1.7.0_79
core-site.xml
<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
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
slaves(配置DN的個數)添加主機名稱
5) 啟動hfds
格式化文件系統(僅第一次執行即可,不要重覆執行,在bin目錄下執行,即在客戶端執行):
hdfs namenode –format
啟動hdfs:sbin/start-dfs.sh
驗證是否啟動成功:
jps
DataNode
SecondaryNameNode
NameNode
瀏覽器訪問方式:http://hadoop000:50070
6) 停止hdfs
sbin/stop-dfs.sh
將hadoop的bin目錄配置到環境變數當中
vi ~/.bash_profile
export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
環境變數生效:
source ~/.bash_profile
查看環境變數:
echo $HADOOP_HOME
hdfs常用操作命令:
hdfs dfs(hadoop fs) +
-ls + / 查看根目錄下的文件和文件夾
-mkdir + /test 在根目錄下創建test文件夾
-put 文件名 + / 將文件上傳到根目錄當中(拷貝文件)
-copyFromLocal hello.txt + /test/a/b/h.txt 將文件拷貝到指定路徑中
-text(-cat) + /文件名 查看文件的內容
-mkdir –p + /test/a/b 遞歸創建文件夾
-lsr + / 遞歸展示文件夾(-ls –R + /)
-get + /test/a/b/h.txt 將文件拷貝到本地
-rm + /hello.txt 刪除文件
-rm + -R /test 刪除文件夾