您好,登錄后才能下訂單哦!
HDFS分布式文件系統(tǒng)
HDFS系統(tǒng)借助于一款hadoop工具進行部署,文件系統(tǒng)的主要優(yōu)勢是主要是提高客戶端的讀取效率,假如一塊1TB的磁盤數(shù)據(jù)需要讀取,讀取速度為100MB/S,如果將1塊磁盤中的數(shù)據(jù)分別存儲到100塊磁盤上,那么當用戶讀取時,它們并行運行,那么用戶讀取操作就可以瞬間完成。
一個HDFS群集由一個運行于master上的Namenode和多個運行于slave上的Datanode組成。
Namenode負責管理文件系統(tǒng)的命名空間和客戶端對文件系統(tǒng)的訪問操作。
Datanode負責管理存儲的數(shù)據(jù)。
文件以塊形式進行在datanode中存儲,假設一個塊20MB,塊的副本數(shù)為3,設置塊的副本數(shù)來達到冗余效果,防止單個datanode磁盤故障后數(shù)據(jù)丟失。將相同的副本塊存儲到不同的datanode中實現(xiàn)冗余,大文件將被切成小塊存儲。
DHFS文件系統(tǒng)搭建步驟:
Master和Slave服務器的先決環(huán)境:
v 關閉防火墻等基本操作
# iptables -F
# setenforce 0
# ifconfig
v 配置hosts解析
# vim /etc/hosts
修改內容:
192.168.0.133 master
192.168.0.134 slave1
192.168.0.135 slave2
v 修改主機名
# vim /etc/sysconfig/network
修改內容:
NETWORKING=yes
HOSTNAME=master
# hostname master
Master服務器上:
v 創(chuàng)建hadoop運行用戶和密碼
# useradd hadoop
# passwd hadoop
v 部署JAVA環(huán)境
# tar xzvf jdk-7u65-linux-x64.gz
# mv jdk1.7.0_65/ /usr/local/java
v 安裝hadoop軟件
# tar xzvf hadoop-2.4.0.tar.gz
# mv hadoop-2.4.0 /usr/local/hadoop
# chown -R hadoop.hadoop /usr/local/hadoop
v 設置環(huán)境變量
# vim /etc/profile
添加內容:
JAVA_HOME=/usr/local/java
HADOOP_HOME=/usr/local/hadoop
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# source /etc/profile
v 修改hadoop配置文件
# vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh Hadoop的環(huán)境文件
添加內容:
JAVA_HOME=/usr/local/java
# vim /usr/local/hadoop/etc/hadoop/core-site.xml 核心配置文件
添加內容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> <!--Namenode的IP:端口-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value> <!--Hadoop臨時緩存目錄-->
<description>hadoop</description>
</property>
</configuration>
# cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
# vim /usr/local/hadoop/etc/hadoop/mapred-site.xml Hadoop的進程配置文件
添加內容:
<configuration>
<property>
<name>mapred.job.tracker</name> <!--服務器進程的配置項-->
<value>master:9001</value> <!--指定為Master端口號為9001-->
</property>
<property>
<name>mapred.local.dir</name> <!--可以配置多塊磁盤,逗號分隔-->
<value>/usr/local/hadoop/var</value> <!--本地計算臨時數(shù)據(jù)存放位置-->
</property>
</configuration>
# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml Namenode和Datanode配置文件
添加內容:
<configuration>
<property>
<name>dfs.namenode.name.dir</name> <!--配置Namenode工作目錄-->
<value>file:/usr/local/hadoop/name</value>
</property>
<property>
<name>dfs.datanade.data.dir</name> <!--配置Datanode工作目錄-->
<value>file:/usr/local/hadoop/data</value> <!--存放塊數(shù)據(jù)文件目錄-->
</property>
<property>
<name>dfs.replication</name> <!--配置文件塊副本數(shù)根據(jù)slave的數(shù)量為單位-->
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enable</name> <!--啟用Web訪問的HDFS-->
<value>true</value>
</property>
</configuration>
注:
Namenode負責管理文件系統(tǒng)的命名空間和客戶端對文件系統(tǒng)的訪問操作。
Datanode負責管理存儲的數(shù)據(jù)。
# vim /usr/local/hadoop/etc/hadoop/masters
添加內容:
master
# vim /usr/local/hadoop/etc/hadoop/slaves
添加內容:
Slave1
Slave2
v 部署SSH,配置免驗證開啟Hadoop
# su hadoop
$ ssh-keygen
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
v 通過SSH將JAVA,HADOOP配置文件同步到Slave服務器
# scp -r /usr/local/hadoop slave1:/usr/local/
# scp -r /usr/local/java slave1:/usr/local/
# scp -r /etc/profile slave1:/etc/
# scp -r /usr/local/hadoop slave2:/usr/local/
# scp -r /usr/local/java slave2:/usr/local/
# scp -r /etc/profile slave2:/etc/
Slave服務器上:
#source /etc/profile
#chown -R hadoop.hadoop /usr/local/hadoop
部署完后HDFS群集的操作:
Master服務器上操作:
v 格式化HDFS文件系統(tǒng)
#su hadoop
$hdfs namenode -format
看到下面的日志信息則成功格式化:
16/10/13 10:50:22 INFO common.Storage: Storage directory /usr/local/hadoop/name has been successfully formatted.
v 檢查新生成的目錄
$ ll /usr/local/hadoop/name/
看到:
drwxr-xr-x. 2 root root 4096 10月 13 10:50 current
v 啟動hadoop群集
$ /usr/local/hadoop/sbin/start-all.sh
v 驗證HDFS節(jié)點各進程是否正常
Master上顯示:
[hadoop@master Desktop]$ jps
6114 NameNode
6438 ResourceManager
6579 Jps
6304 SecondaryNameNode
Slaves上顯示:[root@localhost 桌面]# jps
5387 Jps
5303 NodeManager
5191 DataNode
v 驗證訪問
訪問https://192.168.0.133:50070 可以看到視圖系統(tǒng)
為DHFS群集添加節(jié)點:
2 關閉防火墻等基本操作
2 配置host解析
2 修改主機名
2 部署JAVA環(huán)境
2 設置環(huán)境變量
2 安裝hadoop軟件
2 從Master服務器通過SSH同步配置文件到節(jié)點服務器
2 新節(jié)點啟動并平衡節(jié)點已經(jīng)存儲的數(shù)據(jù)
$hadoop-daemon.sh start datanode
$hadoop-daemon.sh start tasktracker
$jps
$hadoop dfsadmin -report 查看群集信息
為DHFS群集刪除節(jié)點:
$ vim /usr/local/hadoop/etc/hadoop/core-site.xml
添加內容:
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/localhadoop/etc/hadoop/exclude</value> <!--建立排除的節(jié)點-->
</property>
$vim /usr/local/hadoop/etc/hadoop/excludes
添加內容:
slave4 要刪除的節(jié)點名
$hdfs dfsadmin -refreshnodes 刷新配置
$jps
$hadoop dfsadmin -report 查看群集信息
Hadoop基本命令的使用
命令 | 作用 |
Hadoop fs -help | 幫助 |
Hadoop fs -usage | 幫助 |
Hadoop fs -ls | 顯示 |
Hadoop fs -mkdir | 創(chuàng)建 |
Hadoop fs -put | 上傳 |
Hadoop fs -report | 查看節(jié)點狀態(tài)信息 |
Hadoop dfsadmin -safemode enter | 開啟安全模式 |
Hadoop dfsadmin -safemode leave | 開啟安全模式 |
Hadoop fs -copyfromlocal 本地源文件 HDFS目標目錄 | 將本地文件復制到HDFS上 |
Hadoop fs -copylocal HDFS文件 本地 | 將HDFS中的文件復制到本地 |
Hadoop fs -chgrp 組名 DHFS文件或目錄 | 修改屬組 |
Hadoop fs -chmode 755 DHFS文件或目錄 | 修改權限 |
Hadoop fs -chown 屬主.屬組 DHFS文件或目錄 | 修改所有者 |
Hadoop fs -du DHFS文件或目錄 | 統(tǒng)計顯示目錄中文件大小 |
Hadoop fs -getmerge -nl DHFS文件 本地文件 | 合并文件 |
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。