HDFS安裝模式之僞分佈式集羣

1 僞分佈式模式介紹

1.特點
    - 在一臺機器上安裝,使用的是分佈式思想,即分佈式文件系統,非本地文件系統。
    - Hdfs涉及到的相關守護進程(namenode,datanode,secondarynamenode)都運行在一臺機器上,
      都是獨立的java進程。
2. 用途
    比Standalone mode 多了代碼調試功能,允許檢查內存使用情況,HDFS輸入輸出,以及其他的守
    護進程交互。

2 平臺軟件說明

- 操作系統:         win10/win7
- 虛擬軟件:         VMware14
- 虛擬機:           CentOS_7.7_64_master   192.168.10.200
- 軟件包存儲路徑:    /opt/software/
- 軟件安裝路徑:      /opt/apps/   
- Jdk:             jdk-8u221-linux-x64.tar.gz
- Hadoop:          hadoop-2.7.6.tar.gz
- 用戶:             root

3 僞分佈式環境需求及搭建:

3.1 環境需求:

--1. 確保防火牆是關閉的.
--2. NAT模式和靜態IP的確定 (192.168.10.200)
--3. 確保/etc/hosts文件裏 ip和hostname的映射關係
--4. 確保免密登陸localhost有效
--5. jdk和hadoop的環境變量配置

3.2 防火牆關閉確認

[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
​
#最好也把selinux關閉掉,這是linux系統的一個安全機制,進入文件中將SELINUX設置爲disabled
[root@master ~]# vi /etc/selinux/config
.........
SELINUX=disabled            
.........

3.3 配置/etc/hosts文件

-- 進入hosts文件,配置一下ip和hostname
[root@master ~]# sudo vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
​
192.168.81.200 master     <=添加本機的靜態IP和本機的主機名之間的映射關係      

3.4 確保ssh對localhost的免密登陸認證有效

-1. 使用rsa加密技術,生成公鑰和私鑰。一路回車即可
[root@master ~]# ssh-keygen -t rsa              
-2. 進入~/.ssh目錄下,將id_rsa.pub複製一份文件,文件名爲authorized_keys。保證此文件的權限是600
[root@master ~]# cd ~/.ssh          
[root@master .ssh]# cp id_rsa.pub authorized_keys
    或者使用ssh-copy-id命令
[root@master .ssh]# ssh-copy-id -i id_ras.pub root@master
-3. 進行驗證:   
[hadoop@master .ssh]# ssh localhost
#輸入yes後,不提示輸入密碼就對了

3.5 安裝Jdk和Hadoop,配置相關環境變量

-1. 上傳和解壓兩個軟件包
[root@master ~]# cd /opt/software/
[root@master software]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/apps/
[root@master software]# tar -zxvf hadoop-2.7.6.tar.gz -C /opt/apps/
​
-2. 進入apps裏,給兩個軟件更名
[root@master software]# cd /opt/apps/
[root@master apps]# mv jdk1.8.0_221/  jdk
[root@master apps]# mv hadoop-2.7.6/ hadoop
​
-3. 配置環境變量
[hadoop@master apps]# vi /etc/profile
​
.....省略...........
​
#java environment
export JAVA_HOME=/opt/apps/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
​
#hadoop environment
export HADOOP_HOME=/opt/apps/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

4 僞分佈式相關文件的配置

4.1 core-site.xml的配置

[root@master ~]# cd $HADOOP_HOME/etc/haoop
[root@master hadoop]# vi core-site.xml
​
<configuration>
    <!-- 配置分佈式文件系統的schema和ip以及port,默認8020-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost/</value>
    </property>
</configuration>
    
擴展: hadoop1.x的默認端口是9000,hadoop2.x的默認端口是8020,使用哪一個都可以

4.2 hdfs-site.xml的配置:

[root@master hadoop]# vi hdfs-site.xml
<configuration>
    <!-- 配置副本數,注意,僞分佈模式只能是1。-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

4.3 hadoop-env.sh的配置:指定jdk的環境

[root@master hadoop]# vi hadoop-env.sh
................
# The java implementation to use.
export JAVA_HOME=/opt/apps/jdk
..................

5 格式化NameNode

5.1 格式化命令

[root@master hadoop]# hdfs namenode -format

5.2 格式化的日誌解讀

6 啓動HDFS

6.1 啓動僞分佈式

[root@master hadoop]# start-dfs.sh

6.2 啓動滾動信息說明

6.3 jps命令查看守護進程

從上圖我們可以看到,啓動腳本會開啓分佈式文件系統上的相關進程:

namenode
datanode
secondary namenode

7 WebUI_50070

可以在瀏覽器上輸入:192.168.10.200:50070 來查看一下僞分佈式集羣的信息
--1. 瀏覽一下頁面上提示的ClusterID,BlockPoolID
--2. 查看一下活躍節點(Live Nodes)的個數,應該是1個

8 程序案例演示:wordcount程序

8.1 準備要統計的兩個文件,存儲到~/data/下

--1. 創建data目錄
[root@master hadoop]# mkdir ~/data
--2. 將以下兩個文件上傳到data目錄下
- poetry1.txt
- poetry2.txt 

8.2 在hdfs上創建存儲目錄

[root@master hadoop]# hdfs dfs -mkdir /input

8.3 將本地文件系統上的上傳到hdfs上,並在web上查看一下

[root@master hadoop]$ hdfs dfs -put ~/data/poetry* /input/

4.8.4 運行自帶的單詞統計程序wordcount

[root@master hadoop]# cd $HADOOP_HOME
[root@master hadoop]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar  wordcount /input /out

效果如下:

8.5 查看webui

8.6 查看part-r-00000文件

[root@master hadoop]# hdfs dfs -cat /out/part-r-00000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章