溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

54.HDFS分布式文件系統(tǒng)

發(fā)布時間:2020-09-02 11:34:41 來源:網(wǎng)絡 閱讀:465 作者:乘_風 欄目:建站服務器

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)搭建步驟:

MasterSlave服務器的先決環(huán)境:

關閉防火墻等基本操作

# iptables -F

# setenforce 0

# ifconfig

配置hosts解析

# vim /etc/hosts

修改內容:

192.168.0.133  master

192.168.0.134  slave1

192.168.0.135  slave2

修改主機名

# vim /etc/sysconfig/network

修改內容:

NETWORKING=yes

HOSTNAME=master

# hostname master

Master服務器上:

創(chuàng)建hadoop運行用戶和密碼

# useradd hadoop

# passwd hadoop

部署JAVA環(huán)境

# tar xzvf jdk-7u65-linux-x64.gz

# mv jdk1.7.0_65/   /usr/local/java

安裝hadoop軟件

# tar xzvf hadoop-2.4.0.tar.gz

# mv hadoop-2.4.0  /usr/local/hadoop

# chown -R  hadoop.hadoop  /usr/local/hadoop

設置環(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

修改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>             <!--NamenodeIP:端口-->

</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    NamenodeDatanode配置文件

添加內容:

<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

部署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

通過SSHJAVA,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服務器上操作:

格式化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.

檢查新生成的目錄

$ ll    /usr/local/hadoop/name/

看到:

drwxr-xr-x. 2 root root 4096 1013 10:50 current

啟動hadoop群集

$ /usr/local/hadoop/sbin/start-all.sh

驗證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                       

驗證訪問

訪問https//192.168.0.133:50070 可以看到視圖系統(tǒng)

DHFS群集添加節(jié)點:

關閉防火墻等基本操作

配置host解析

修改主機名

部署JAVA環(huán)境

設置環(huán)境變量

安裝hadoop軟件

Master服務器通過SSH同步配置文件到節(jié)點服務器

新節(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文件  本地文件

合并文件

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI