<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 2.1 實驗目的 1. 理解HDFS存在的原因; 2. 理解HDFS體系架構; 3. 理解master/slave架構; 4. 理解為何配置文件里只需指定主服務、無需指定從服務; 5. 理解為何需要客戶端節點; 6. 學會逐一啟動HDFS和統一啟動HDFS; 7. 學會在HDFS中上傳文件。 ### 2.2 實驗要求 要求實驗結束時,已構建出以下HDFS集群: 1. master上部署主服務NameNode; 2. Slave1、2、3上部署從服務DataNode; 3. client上部署HDFS客戶端。 待集群搭建好后,還需在client上進行下述操作: 1. 在HDFS里新建目錄; 2. 將client上某文件上傳至HDFS里剛才新建的目錄。 ### 2.3 實驗原理 #### 2.3.1 分布式文件系統 分布式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。該系統架構于網絡之上,勢必會引入網絡編程的復雜性,因此分布式文件系統比普通磁盤文件系統更為復雜。 #### 2.3.2 HDFS HDFS(Hadoop Distributed File System)為大數據平臺其它所有組件提供了基本的存儲功能。它具有高容錯、高可靠、可擴展、高吞吐率等特征,為大數據存儲和處理提供了強大的底層存儲架構。 HDFS是一個主/從(master/slave)體系結構,從最終用戶的角度來看,它就像傳統的文件系統,可通過目錄路徑對文件執行CRUD操作。由于其分布式存儲的性質,HDFS集群擁有一個NameNode和一些DataNodes,NameNode管理文件系統的元數據,DataNode存儲實際的數據。 HDFS開放文件系統的命名空間以便用戶以文件形式存儲數據,秉承“一次寫入、多次讀取”的原則。客戶端通過NameNode和DataNodes的交互訪問文件系統,聯系NameNode以獲取文件的元數據,而真正的文件I/O操作是直接和DataNode進行交互的。 #### 2.3.3 HDFS基本命令 HDFS基本命令格式如下: ~~~ hadoop fs -cmd args ~~~ 其中,cmd為具體的操作,args為參數。 部分HDFS命令示例如下: ~~~ hadoop fs -mkdir /user/trunk #建立目錄/user/trunk hadoop fs -ls /user #查看/user目錄下的目錄和文件 hadoop fs -lsr /user #遞歸查看/user目錄下的目錄和文件 hadoop fs -put test.txt /user/trunk #上傳test.txt文件至/user/trunk hadoop fs -get /user/trunk/test.txt #獲取/user/trunk/test.txt文件 hadoop fs -cat /user/trunk/test.txt #查看/user/trunk/test.txt文件內容 hadoop fs -tail /user/trunk/test.txt #查看/user/trunk/test.txt文件的最后1000行 hadoop fs -rm /user/trunk/test.txt #刪除/user/trunk/test.txt文件 hadoop fs -help ls #查看ls命令的幫助文檔 ~~~ #### 2.3.4 HDFS適用場景 HDFS 提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序,以下是一些常用的應用場景: 數據密集型并行計算:數據量極大,但是計算相對簡單的并行處理,如大規模Web信息搜索; 計算密集型并行計算:數據量相對不是很大,但是計算較為復雜的并行計算,如3D建模與渲染、氣象預報和科學計算; 數據密集與計算密集混合型的并行計算,如3D電影的渲染。 HDFS在使用過程中有以下限制: HDFS不適合大量小文件的存儲,因NameNode將文件系統的元數據存放在內存中,因此存儲的文件數目受限于NameNode的內存大小; HDFS適用于高吞吐量,而不適合低時間延遲的訪問; 流式讀取的方式,不適合多用戶寫入一個文件(一個文件同時只能被一個客戶端寫),以及任意位置寫入(不支持隨機寫); HDFS更加適合寫入一次,讀取多次的應用場景。 ### 2.4 實驗步驟 部署HDFS主要步驟如下: 1. 配置Hadoop的安裝環境; 2. 配置Hadoop的配置文件; 3. 啟動HDFS服務; 4. 驗證HDFS服務可用。 #### 2.4.1 在master服務器上確定存在hadoop安裝目錄 ~~~ [root@master ~]# ls /usr/cstor/hadoop ~~~ 顯示結果如圖2-1所示: ![](https://box.kancloud.cn/27a1461414591469905af37c637cd26f_467x239.png) #### 2.4.2 確認集群服務器之間可SSH免密登錄 使用ssh工具登錄到每一臺服務器,執行命令ssh 主機名,確認每臺集群服務器均可SSH免密登錄。若無法SSH免密登錄,請參照實驗一的1.4.4節進行配置。 #### 2.4.3 修改HDFS配置文件 (1)設置JDK安裝目錄 ~~~ 編輯文件“/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh”,找到如下一行: export JAVA_HOME=${JAVA_HOME} 將這行內容修改為: export JAVA_HOME=/usr/local/jdk1.7.0_79/ ~~~ 這里的“/usr/local/jdk1.7.0_79/”就是JDK安裝位置,如果不同,請根據實際情況更改。 (2)指定HDFS主節點 編輯文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml”,將如下內容嵌入此文件里最后兩行的\<configuration>\\\</configuration>標簽之間: ~~~ <property><name>hadoop.tmp.dir</name><value>/usr/cstor/hadoop/cloud</value></property> <property><name>fs.defaultFS</name><value>hdfs://master:8020</value></property> ~~~ (3)拷貝集群配置至其它服務器 在master機上執行下列命令,將配置好的hadoop拷貝至slaveX、client。 ~~~ [root@master ~]# cat ~/data/2/machines slave1 salve2 slave3 client [root@master ~]# for x in `cat ~/data/2/machines` ; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ; done; ~~~ #### 2.4.4 啟動HDFS 在master服務器上格式化主節點: ~~~ [root@master ~]# hdfs namenode -format ~~~ 配置slaves文件,將localhost修改為slave1~3: ~~~ [root@master ~]# vi /usr/cstor/hadoop/etc/hadoop/slaves slave1 slave2 slave3 統一啟動HDFS: [root@master ~]#cd /usr/cstor/hadoop [root@master hadoop]# sbin/start-dfs.sh ~~~ #### 2.4.5 通過查看進程的方式驗證HDFS啟動成功 分別在master、slave1~3四臺機器上執行如下命令,查看HDFS服務是否已啟動。 ~~~ [root@master sbin]# jps #jps查看java進程 ~~~ 若啟動成功,在master上會看到類似的如下信息: ~~~ 6208 NameNode 6862 Jps 6462 SecondaryNameNode ~~~ 而在slave1、slave2、slave3上會看到類似的如下信息: ~~~ 6208 DataNode 6862 Jps ~~~ #### 2.4.6 使用client上傳文件 從client服務器向HDFS上傳文件。 ~~~ [root@client ~]# hadoop fs -put ~/data/2/machines / ~~~ 執行命令:hadoop fs -ls /,查看文件是否上傳成功。 如圖2-2所示: ![](https://box.kancloud.cn/f2da8d696e1301f9cd74a258c74eda88_275x49.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看