Hadoop〖一〗Hadoop3.2.1版本本地安裝僞集羣實現詞頻統計案例

一. 安裝Hadoop在虛擬機上

1.1 準備一臺虛擬機

我這邊準備的是Centos7版本的虛擬機
在這裏插入圖片描述
爲了以防萬一,可以在不確定虛擬機是否崩盤的情況下,克隆一下虛擬機,右鍵虛擬機打開管理點克隆~

1.2 安裝JDK

我在桌面準備了這次安裝的所有壓縮文件,因爲Hadoop依靠於JDK環境,所以我們首先安裝JDK1.8

首先用我們的xftp工具把JDK拷貝到 /usr/java/ 路徑下,然後使用

tar -zxvf jdk-8u231-linux-i586.tar.gz

將壓縮包解壓到當前目錄,注意虛擬機自帶OpenJDK的需要提前卸載以免安裝錯誤

解壓完成後進入JDK目錄(藍色的)
在這裏插入圖片描述
這裏我們打印出來當前目錄: /usr/java/jdk1.8.0_231

cd jdk1.8.0_231/
[root@kaikai jdk1.8.0_231]# pwd
/usr/java/jdk1.8.0_231

提前進入root權限 su 命令輸入密碼,編輯環境變量,

vim /etc/profile

先按i進入insert模式,我們在如下 unset -f pathmunge 添加如下三條 第一行爲JDK的地址

unset i
unset -f pathmunge
#jdk
export JAVA_HOME=/usr/java/jdk1.8.0_231 
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

修改完後,按ESC退出編輯模式再按shift+: 輸入wq保存並退出

緊接着我們在命令行輸入來使我們的配置文件生效,每配置一次環境變量就得刷新一次使生效

source /etc/profile

接着我們來驗證一下jdk安裝成功沒,輸入

[root@kaikai jdk1.8.0_231]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) Server VM (build 25.231-b11, mixed mode)

出現以上即可證明JDK安裝成功~

1.3 安裝Hadoop

首先把Hadoop安裝包copy到虛擬機目錄下

[root@kaikai jdk1.8.0_231] cd /opt/hadoop/

解壓Hadoop安裝包

[root@kaikai hadoop] tar -zxvf hadoop-3.2.1.tar.gz 

進入Hadoop查看當目錄

[root@kaikai hadoop-3.2.1] pwd
/opt/hadoop/hadoop-3.2.1

配置環境變量

[root@kaikai hadoop-3.2.1]# vim /etc/profile

在 HADOOP_HOME 後面填上你自己安裝的hadoop目錄,剛用pwd查看過的

#hadoop
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.1
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使配置生效

[root@kaikai hadoop-3.2.1] source /etc/profile

判斷是否安裝成功

[root@kaikai hadoop-3.2.1] hadoop version
Hadoop 3.2.1
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r b3cbbb467e22ea829b3808f4b7b01d07e0bf3842
Compiled by rohithsharmaks on 2019-09-10T15:56Z
Compiled with protoc 2.5.0
From source with checksum 776eaf9eee9c0ffc370bcbc1888737
This command was run using /opt/hadoop/hadoop-3.2.1/share/hadoop/common/hadoop-common-3.2.1.jar

出現版本信息,說明成功

二. 接下來進行配置僞分佈式(上面的Hadoop只是單機模式)

2.1 創建文件夾

創建以下幾個文件夾

/opt/hadoop/tmp
/opt/hadoop/hdfs/name
/opt/hadoop/hdfs/data

2.2 修改hadoop配置文件

找到如下目錄,進入

[root@kaikai hadoop] pwd
/opt/hadoop/hadoop-3.2.1/etc/hadoop

輸入 vim core-site.xml 修改配置

<configuration>
    <!--指定fs的缺省名稱-->
    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
    </property>
    <!--指定HDFS的(NameNode)的缺省路徑地址,localhost:是計算機名,也可以是ip地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <!-- 指定hadoop運行時產生文件的存儲目錄(以個人爲準) -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/hadoop/tmp</value>
    </property>
</configuration>

輸入 vim hdfs-site.xml 修改配置

<configuration>
	<!-- 指定HDFS副本的數量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
      <name>dfs.name.dir</name>
      <value>/opt/hadoop/hdfs/name</value>
    </property>
    <property>
      <name>dfs.data.dir</name>
      <value>/opt/hadoop/hdfs/data</value>
    </property>
</configuration>

etc/hadoop目錄下查看是否有配置文件mapred-site.xml。目錄下默認情況下沒有該文件,可通過執行如下命令:cp mapred-site.xml.template mapred-site.xml修改一個文件的命名,然後執行編輯文件命令:gedit mapred-site.xml並修改該文件內容:

HADOOP_MAPRED_HOME= 後面配置的是Hadoop目錄,就是一開始Hadoop的環境變量

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                 <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-3.2.1</value>
        </property>
        <property>
                 <name>mapreduce.map.env</name>
                 <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-3.2.1</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                 <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-3.2.1</value>
        </property>
</configuration>

在etc/hadoop目錄下執行vim yarn-site.xml修改配置

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

2.3 啓動Hadoop

第一次啓動時需要格式化namenode

[root@kaikai hadoop] hdfs namenode -format

進入如下目錄,修改啓動配置

[root@kaikai sbin] pwd
/opt/hadoop/hadoop-3.2.1/sbin

將start-dfs.sh,stop-dfs.sh兩個文件頂部添加以下參數

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

start-yarn.sh,stop-yarn.sh頂部也需添加以下

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

一鍵啓動命令

[root@kaikai sbin] ./start-all.sh 

如下圖正自啓動

[root@kaikai sbin] ./start-all.sh 
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [localhost]
Last login: Sat Feb 29 14:42:15 CST 2020 on pts/1
Starting datanodes
Last login: Sat Feb 29 19:48:02 CST 2020 on pts/1
Starting secondary namenodes [kaikai.com]
Last login: Sat Feb 29 19:48:05 CST 2020 on pts/1
2020-02-29 19:48:25,974 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
Last login: Sat Feb 29 19:48:16 CST 2020 on pts/1
Starting nodemanagers
Last login: Sat Feb 29 19:48:26 CST 2020 on pts/1

驗證啓動成功
命令行輸入jps出現下面就是啓動成功了!

[root@kaikai sbin] jps
8898 NodeManager
8724 ResourceManager
9285 Jps
8122 DataNode
7947 NameNode
8364 SecondaryNameNode

2.4 訪問UI界面

命令行輸入如下,找到虛擬機的IP地址,若是服務器要用公網IP

[root@kaikai sbin] ifconfig

在這裏插入圖片描述

瀏覽器中輸入訪問

http://192.168.125.119:9870

UI界面出現!
在這裏插入圖片描述
這樣我們大功告成,僞分佈式已經安裝完成!

三. 實現WordCount案例(詞頻統計)

3.1 詞頻統計實現

  • Hadoop 的計算需要通過MapReduced來實現,可以通過編寫Java程序,將功能打成jar包來執行。所以如果有良好的Java基礎,編寫MR程序自然會容易很多。

  • 我們這裏用自帶的示例程序來運行wordcount,從而來演示Hadoop的功能。

打開我們MapReduced目錄

cd /opt/hadoop/hadoop-3.2.1/share/hadoop/mapreduce/

下面就是我們wordcount的jar包我們需要運行起來
在這裏插入圖片描述

3.2 將測試文本拖進hdfs

找到下面目錄的LICENSE.txt
在這裏插入圖片描述
執行下面語句

 hdfs dfs -put LICENSE.txt /data/wordcount/LICENSE.txt

檢查一下測試文件在裏面沒

hdfs dfs -ls -R /

在這裏插入圖片描述

3.3 執行案例jar包

命令行輸入(在mapreduce目錄下)

[root@kaikai mapreduce] hadoop jar hadoop-mapreduce-examples-3.2.1.jar wordcount /data/wordcount/LICENSE.txt output

最終我們在out目錄下看到執行過的輸出文件
在這裏插入圖片描述
打開輸出文件

[root@kaikai mapreduce] hdfs dfs -cat /user/root/output/part-r-00000

在這裏插入圖片描述
案例實現完成~

製作不易,轉載請標註~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章