linux下Hadoop安裝與環境配置(附詳細步驟和安裝包下載)

注:本文采用的Linux環境為deepin 15.11系統(是由武漢深之度科技有限公司開發的顏值極高的Linux發行版),以下命令經測試Ubuntu18.04版本同樣適用。linux安裝可採用虛擬機安裝、單系統安裝、雙系統安裝等多種方式,自行百度。

linux下Hadoop安裝與環境配置(附詳細步驟和安裝包下載)

在linux下首先更新apt包:

<code>sudo apt-get update/<code>

安裝SSH server:

<code>sudo apt-get install openssh-server/<code>

配置SSH:

<code>ssh localhost/<code>

輸入密碼登錄本機和退出本機:

<code>exit/<code>

由於需要跨機器登錄,所以還需要配置無密碼。在進行了初次登陸後,進入.ssh文件夾下:

<code>cd ~/.ssh/ /<code>

使用rsa算法生成秘鑰和公鑰對:

<code>ssh-keygen -t rsa/<code>

運行後一路Enter,其中第一個是要輸入秘鑰和公鑰對的保存位置,默認是在:.ssh/id_rsa。然後把公鑰加入到授權中:

<code>cat ./id_rsa.pub >> ./authorized_keys/<code>

再次ssh localhost 就可以無密碼登錄了。

安裝JDK:

首先檢查Java是否已經安裝:

<code>java -version/<code>

如果沒有安裝,點擊鏈接https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 並選擇相應系統以及位數下載(本文選擇jdk-8u241-linux-x64.tar.gz,如具體版本不同則靈活修改).

為其單獨創立一個文件夾,然後將其放到該目錄下(下載後以具體為止為準):

<code>sudo mkdir -p /usr/local/java
sudo mv ~/Downloads/jdk-8u241-linux-x64.tar.gz /usr/local/java//<code>

進入該目錄進行解壓:

<code>cd /usr/local/javasudo 
tar xvzf jdk-8u241-linux-x64.tar.gz/<code>

解壓成功後會在當前目錄下看到jdk1.8.0_241安裝包,然後刪除安裝包:

<code>sudo rm jdk-8u241-linux-x64.tar.gz/<code>

配置JDK:

設置環境變量,打開環境變量的配置文件:

<code>sudo vim /etc/profile/<code>

在末尾添加:

<code>JAVA_HOME=/usr/local/java/jdk1.8.0_241
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH/<code>

告訴linux Java JDK的位置並設置為默認模式:

<code>sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_241/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_241/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_241/bin/javaws" 1
sudo update-alternatives --set java  /usr/local/java/jdk1.8.0_241/bin/java
sudo update-alternatives --set javac  /usr/local/java/jdk1.8.0_241/bin/javac
sudo update-alternatives --set javaws  /usr/local/java/jdk1.8.0_241/bin/javaws/<code>

重新加載環境變量的配置文件:

<code>source /etc/profile/<code>

檢測Java版本:

<code>java -version/<code>

如果出現以下代表成功:

<code>java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)/<code>

安裝Hadoop:

進入鏡像文件https://mirrors.cnnic.cn/apache/hadoop/common/ 並選擇對應Hadoop版本(注意版本不是越新越好,要考慮版本兼容問題,本文選擇hadoop-2.10.0.tar.gz)

然後將其解壓至剛剛創建的文件夾 /usr/local並刪除安裝包:

<code>sudo tar -zxf ~/Downloads/hadoop-2.10.0.tar.gz -C /usr/local
rm ~/Downloads/hadoop-2.10.0.tar.gz/<code>

重命名文件夾並修改權限(其中phenix為用戶名):

<code>cd /usr/local/
sudo mv hadoop-2.10.0 hadoop
sudo chown -R phenix ./hadoop/<code>

檢測hadoop版本:

<code>/usr/local/hadoop/bin/hadoop version/<code>

出現以下信息則代表成功:

<code>Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.10.0.jar/<code>

配置Hadoop(偽分佈式):

切換到路徑/usr/local/hadoop/etc/hadoop下,需要修改2個配置文件core-site.xml和hdfs-site.xml。

首先打開core-site.xml

<code>cd /usr/local/hadoop/etc/hadoop
vim core-site.xml/<code>

在<configuration>中添加如下配置:

<code><configuration>
<property>
<name>hadoop.tmp.dir/<name>
<value>/usr/local/hadoop/tmp/<value>
<description>Abase for other temporary directories./<description>
/<property>
<property>
<name>fs.defaultFS/<name>
<value>hdfs://localhost:9000/<value>
/<property>
/<configuration>/<code>

注:本文使用的是hdfs://localhost:9000即hdfs文件系統

再打開hdfs-site.xml:

<code>vim hdfs-site.xml/<code> 

同樣在<configuration>中添加如下配置:

<code><configuration>
<property>
<name>dfs.replication/<name>
<value>1/<value>
/<property>
<property>
<name>dfs.namenode.name.dir/<name>
<value>/usr/local/hadoop/tmp/dfs/name/<value>
/<property>
<property>
<name>dfs.datanode.data.dir/<name>
<value>/usr/local/hadoop/tmp/dfs/data/<value>
/<property>
/<configuration>/<code>

注:dfs.replication就是指備份的份數;dfs.namenode.name.dir和dfs.datanode.data.dir分別指名稱節點和數據節點存儲路徑

切換回hadoop主目錄並執行NameNode的格式化(格式化成功後輕易不要再次格式化):

<code>cd /usr/local/hadoop
./bin/hdfs namenode -format/<code>

出現以下信息代表成功:

<code>00000000 using no compression
18/08/20 11:07:16 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 320 bytes saved in 0 seconds .
18/08/20 11:07:16 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
18/08/20 11:07:16 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at phenix/127.0.1.1
************************************************************//<code>

手動添加JAVA_HOME,在hadoop-env.sh文件中添:

<code>cd etc/hadoop/
vim hadoop-env.sh/<code>

在hadoop-env.sh文件中添加如下內容即可:

<code>export JAVA_HOME=/usr/local/java/jdk1.8.0_241/<code>

開啟NameNode和DataNode守護進程:

<code>./sbin/start-dfs.sh/<code>

開啟yarn資源管理器:

<code>./sbin/start-yarn.sh/<code>

驗證:

<code>jps/<code>

出現以下六個則代表啟動成功:

<code>18192 DataNode
18922 NodeManager
20044 Jps
18812 ResourceManager
18381 SecondaryNameNode
18047 NameNode/<code>

簡單示例:

首先切換至hadoop主目錄並在HDFS中創建用戶目錄:

<code>./bin/hdfs dfs -mkdir -p /user/hadoop/<code>

創建輸入文件夾:

<code>./bin/hdfs dfs -mkdir /user/hadoop/input/<code>

將etc/hadoop下所有的xml文件複製到輸入:

<code>./bin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input/<code>

然後通過命令查看:

<code>./bin/hdfs dfs -ls /user/hadoop/input/<code>

結果如下:

<code>Found 8 items
-rw-r--r-- 1 phenix supergroup 8814 2020-01-31 13:21 /user/hadoop/input/capacity-scheduler.xml
-rw-r--r-- 1 phenix supergroup 1119 2020-01-31 13:21 /user/hadoop/input/core-site.xml
-rw-r--r-- 1 phenix supergroup 10206 2020-01-31 13:21 /user/hadoop/input/hadoop-policy.xml
-rw-r--r-- 1 phenix supergroup 1173 2020-01-31 13:21 /user/hadoop/input/hdfs-site.xml
-rw-r--r-- 1 phenix supergroup 620 2020-01-31 13:21 /user/hadoop/input/httpfs-site.xml
-rw-r--r-- 1 phenix supergroup 3518 2020-01-31 13:21 /user/hadoop/input/kms-acls.xml
-rw-r--r-- 1 phenix supergroup 5939 2020-01-31 13:21 /user/hadoop/input/kms-site.xml
-rw-r--r--   1 phenix supergroup        690 2020-01-31 13:21 /user/hadoop/input/yarn-site.xml/<code>

運行grep:

<code>./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar grep /user/hadoop/input output 'dfs[a-z]+'/<code>

查看運行結果:

<code>./bin/hdfs dfs -cat output/*/<code>

出現以下輸出則說明Hadoop集群搭建完成:

<code>1  1   dfsadmin/<code>

我們還可以利用HDFS Web界面,不過只能查看文件系統數據,點擊鏈接http://localhost:50070即可進行查看:

linux下Hadoop安裝與環境配置(附詳細步驟和安裝包下載)

同時也可通過http://localhost:8088/cluster查看hadoop集群當前應用狀況:

linux下Hadoop安裝與環境配置(附詳細步驟和安裝包下載)

關閉Hadoop:

<code>./sbin/stop-dfs.sh
./sbin/stop-yarn.sh/<code>

最後!細心的同學會發現每次開啟關閉都得切換至指定目錄不太方便,因此我們將其加入環境變量中,開啟更加方便:

<code>vim /etc/bash.bashrc/<code> 

在末尾添加:

<code>export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH/<code>

然後執行source更新命令:

<code>source /etc/bash.bashrc/<code>

之後會發現在任意位置嘗試hadoop命令都會輸出對應結果:

<code>hadoop version/<code>

至此Hadoop安裝及環境配置完成。


分享到:


相關文章: