1. 程式人生 > >搭建基於 HDFS 碎片文件存儲服務

搭建基於 HDFS 碎片文件存儲服務

環境 one nis i+1 tar.gz step 命名 explore 環境配置

安裝 JDK

HDFS 依賴 Java 環境,這裏我們使用 yum 安裝 JDK 8,在終端中鍵入如下命令:
yum -y install java-1.8.0-openjdk*

使用如下命令查看下 Java 版本,我們可以驗證 JDK 是否已成功安裝:
java -version

配置 Java 環境變量
在編輯器中打開文件 /etc/profile,在文件末尾追加如下內容,配置 Java 環境變量:
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然後執行如下命令,讓環境變量生效:
source /etc/profile

通過如下命令,驗證 Java 環境變量是否已成功配置並且生效:
echo $JAVA_HOME


準備 HDFS 環境

  • 配置 SSH 先後執行如下兩行命令,配置 SSH 以無密碼模式登陸:
ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

接著可以驗證下,在不輸入密碼的情況下,應該能使用 ssh 命令成功連接本機:

ssh 119.29.174.175
緊接著在終端中鍵入如下命令關閉 ssh 連接:
exit
SSH 配置完畢後,我們接著下載並安裝 Hadoop。


安裝 Hadoop
首先創建 /data/hadoop 目錄,然後進入該目錄:
mkdir -p /data/hadoop && cd $_

接著下載 Hadoop 安裝包到該目錄下:
wget http://archive.apache.org/dist/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz

解壓下載好的 Hadoop 安裝包到當前目錄:
tar -zxvf hadoop-2.7.1.tar.gz
然後將解壓後的目錄重命名為 hadoop,並且將其移至 /usr/local/ 目錄下:
mv hadoop-2.7.1 hadoop && mv $_ /usr/local/

在編輯器中打開 Hadoop 環境配置文件,使用 Ctrl + F
搜索如下行
export JAVA_HOME=${JAVA_HOME} 將其替換為:
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk

查看下 Hadoop 的版本:
/usr/local/hadoop/bin/hadoop version
可以看到 Hadoop 的版本信息:
Hadoop 2.7.1
安裝 Hadoop 就是這麽簡單。至此 Hadoop 已經安裝完成,緊接著我們需要做的就是修改 Hadoop 的配置信息。


修改 Hadoop 配置
由於我們的實踐環境是在單機下進行的,所以此處把 Hadoop 配置為偽分布式模式。 首先新建若幹臨時文件夾,我們在後續的配置中以及 HDFS 和 Hadoop 的啟動過程中會使用到這些文件夾: cd /usr/local/hadoop && mkdir -p tmp dfs/name dfs/data
修改 HDFS 配置文件 core-site.xml,將 configuration 配置修改為如下內容:
core-site.xml
<configuration>  
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>/usr/local/hadoop/tmp</value>
    </property>  
    <property>  
        <name>fs.defaultFS</name>  
        <value>hdfs://localhost:9000</value>
    </property>  
</configuration>

 修改 HDFS 配置文件 hdfs-site.xml,將 configuration 配置修改為如下內容:

 hdfs-site.xml

<configuration>    
    <property>    
        <name>dfs.replication</name>    
        <value>1</value>    
    </property>    
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:/usr/local/hadoop/dfs/name</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:/usr/local/hadoop/dfs/data</value>    
    </property>    
    <property>
        <name>dfs.permissions</name>    
        <value>false</value>    
    </property>    
</configuration>

  修改 HDFS 配置文件 yarn-site.xml,將 configuration 配置修改為如下內容:

yam-site.xml

<configuration>  
    <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>  

    <property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
    </property>  
</configuration>

  以上配置修改完畢後,我們可以嘗試啟動 Hadoop。

啟動 Hadoop
首先進入如下目錄: cd /usr/local/hadoop/bin/
對 HDFS 文件系統進行格式化:
./hdfs namenode -format
接著進入如下目錄:
cd /usr/local/hadoop/sbin/
先後執行如下兩個腳本啟動 Hadoop:
./start-dfs.sh
./start-yarn.sh
接著執行如下命令,驗證 Hadoop 是否啟動成功:
jps
如果輸出了類似如下的指令,則說明 Hadoop 啟動成功啦

21713 Jps
21089 SecondaryNameNode
21364 NodeManager
20795 NameNode
20923 DataNode
21245 ResourceManager

至此,我們的 HDFS 環境就已經搭建好了。在瀏覽器中訪問如下鏈接,應該能正常訪問(註:若出現安全攔截請選擇通過):

http://119.29.174.175:50070/explorer.html#/

接下來,我們實踐下如何將碎片文件存儲到 HDFS 中。

存儲碎片文件

  • 準備碎片文件 首先創建目錄用於存放碎片文件,進入該目錄: mkdir -p /data/file && cd /data/file 然後執行如下 shell 命令,新建一批碎片文件到該目錄下 i=1; while [ $i -le 99 ]; do name=`printf "test%02d.txt" $i`; touch "$name"; i=$(($i+1)); done

在終端中執行 ls 命令,可以看到我們已成功創建了一批碎片文件。

將碎片文件存儲在 HDFS 中

首先在 HDFS 上新建目錄:

/usr/local/hadoop/bin/hadoop fs -mkdir /dest

此時,在瀏覽器是訪問如下鏈接,可以看到 /dest 目錄已創建,但是暫時還沒有內容:

http://119.29.174.175:50070/explorer.html#/dest

接著我們可以上傳碎片文件啦! 首先在終端中依次執行以下命令 groupadd supergroup usermod -a -G supergroup root 然後將之前創建的碎片文件上傳到 HDFS 中:

cd /data/file && /usr/local/hadoop/bin/hadoop fs -put *.txt /dest

這時,再使用如下命令,我們應該能看到碎片文件已成功上傳到 HDFS 中:

/usr/local/hadoop/bin/hadoop fs -ls /dest

部署完成

  • 訪問服務 在瀏覽器是訪問如下鏈接,可以看到 /dest 目錄的文件內容:

http://119.29.174.175:50070/explorer.html#/dest

搭建基於 HDFS 碎片文件存儲服務