日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

大数据学习(2-1)-Hadoop安装教程-单机模式和伪分布模式(Ubuntu14.04LTS)

發布時間:2023/12/13 Ubuntu 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据学习(2-1)-Hadoop安装教程-单机模式和伪分布模式(Ubuntu14.04LTS) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 目錄
    • 1.linxu的安裝
      • 1.1安裝Linux虛擬機
      • 1.2安裝Linux和Windows雙系統
    • 2.Hadoop的安裝
      • 2.1 Hadoop安裝前配置
        • 2.1.1 配置Hadoop用戶
        • 2.1.2 安裝 ssh , 配置ssh免密登錄
        • 2.1.3 安裝java環境
      • 2.2 Hadoop的安裝
    • 3.Hadoop單機版配置
    • 4.Hadoop偽分布版配置

目錄

1.linxu的安裝

1.1安裝Linux虛擬機

可以通過在Windows上安裝Linux虛擬機,具體安裝教程百度,此教程步纖細介紹

1.2安裝Linux和Windows雙系統

可以通過安裝windows和Linux雙系統,具體教程百度,此教程不詳細介紹

2.Hadoop的安裝

在安裝好Linux操作系統后,就可以安裝Hadoop了

2.1 Hadoop安裝前配置

2.1.1 配置Hadoop用戶

  • 1.創建Hadoop用戶:sudo useradd -m hadoop -s /bin/bash
  • 2.為創建的Hadoop用戶創建登錄密碼:sudo passwd hadoop
  • 3.將創建的Hadoop用戶加入到管理員組:sudo adduser hadoop sudo

2.1.2 安裝 ssh , 配置ssh免密登錄

  • 1.安裝ssh-server : sudo apt-get install openssh-server
  • 2.測試是否安裝成功:ssh localhost

    出現上面的即表示ssh安裝成功
  • 3.設置ssh免密登錄:
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按回車就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授權
  • 4.此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了,如下圖所示

2.1.3 安裝java環境

ava環境可選擇 Oracle 的 JDK,或是 OpenJDK,按中說的,新版本在 OpenJDK 1.7 下是沒問題的。為圖方便,這邊直接通過命令安裝 OpenJDK 7。
下面有兩種安裝JDK的方式,可以任選一種,如果第1種失敗,就選擇第2種。推薦直接使用第2種安裝方式。
(1)第1種安裝JDK方式:

sudo apt-get install openjdk-7-jre openjdk-7-jdk

安裝好 OpenJDK 后,需要找到相應的安裝路徑,這個路徑是用于配置 JAVA_HOME 環境變量的。執行如下命令:

dpkg -L openjdk-7-jdk | grep '/bin/javac'

該命令會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是正確的路徑了。如輸出路徑為 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac,則我們需要的路徑為 /usr/lib/jvm/java-7-openjdk-amd64。

接著需要配置一下 JAVA_HOME 環境變量,為方便,我們在 ~/.bashrc 中進行設置(擴展閱讀: 設置Linux環境變量的方法和區別):

vim ~/.bashrc

在文件最前面添加如下單獨一行(注意 = 號前后不能有空格),將“JDK安裝路徑”改為上述命令得到的路徑,并保存:

export JAVA_HOME=JDK安裝路徑

如下圖所示(該文件原本可能不存在,內容為空,這不影響):

接著還需要讓該環境變量生效,執行如下代碼:

source ~/.bashrc # 使變量設置生效

設置好后我們來檢驗一下是否設置正確:

echo $JAVA_HOME # 檢驗變量值 java -version $JAVA_HOME/bin/java -version # 與直接執行 java -version 一樣

如果設置正確的話,$JAVA_HOME/bin/java -version 會輸出 java 的版本信息,且和 java -version 的輸出結果一樣,如下圖所示:

這樣,Hadoop 所需的 Java 運行環境就安裝好了。

(2)第2種安裝JDK方式
根據大量電腦安裝Java環境的情況我們發現,部分電腦按照上述的第一種安裝方式會出現安裝失敗的情況,這時,可以采用這里介紹的另外一種安裝方式,命令如下:

sudo apt-get install default-jre default-jdk

上述安裝過程需要訪問網絡下載相關文件,請保持聯網狀態。安裝結束以后,需要配置JAVA_HOME環境變量,請在Linux終端中輸入下面命令打開當前登錄用戶的環境變量配置文件.bashrc:

vim ~/.bashrc

在文件最前面添加如下單獨一行(注意,等號“=”前后不能有空格),然后保存退出:

export JAVA_HOME=/usr/lib/jvm/default-java
接下來,要讓環境變量立即生效,請執行如下代碼:

source ~/.bashrc # 使變量設置生效

執行上述命令后,可以檢驗一下是否設置正確:

echo $JAVA_HOME # 檢驗變量值 java -version $JAVA_HOME/bin/java -version # 與直接執行java -version一樣

至此,就成功安裝了Java環境。下面就可以進入Hadoop的安裝。

2.2 Hadoop的安裝

1.去網站下載最新的Hadoop未定版本
2.我們選擇將 Hadoop 安裝至 /usr/local/ 中:

sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中 cd /usr/local/ sudo mv ./hadoop-2.6.0/ ./hadoop # 將文件夾名改為hadoop sudo chown -R hadoop ./hadoop # 修改文件權限

3.Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:

cd /usr/local/hadoop ./bin/hadoop version

相對路徑與絕對路徑
請務必注意命令中的相對路徑與絕對路徑,本文后續出現的 ./bin/…,./etc/… 等包含 ./ 的路徑,均為相對路徑,以 /usr/local/hadoop 為當前目錄。例如在 /usr/local/hadoop 目錄中執行 ./bin/hadoop version 等同于執行 /usr/local/hadoop/bin/hadoop version。可以將相對路徑改成絕對路徑來執行,但如果你是在主文件夾 ~ 中執行 ./bin/hadoop version,執行的會是 /home/hadoop/bin/hadoop version,就不是我們所想要的了。

3.Hadoop單機版配置

Hadoop 默認模式為非分布式模式(本地模式),無需進行其他配置即可運行。非分布式即單 Java 進程,方便進行調試。

現在我們可以執行例子來感受下 Hadoop 的運行。Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我們選擇運行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfs[a-z.]+ 的單詞并統計出現的次數,最后輸出結果到 output 文件夾中。

cd /usr/local/hadoop mkdir ./input cp ./etc/hadoop/*.xml ./input # 將配置文件作為輸入文件 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+' cat ./output/* # 查看運行結果

執行成功后如下所示,輸出了作業的相關信息,輸出的結果是符合正則的單詞 dfsadmin 出現了1次

注意,Hadoop 默認不會覆蓋結果文件,因此再次運行上面實例會提示出錯,需要先將 ./output 刪除。

rm -r ./output

4.Hadoop偽分布版配置

Hadoop 可以在單節點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。

修改配置文件 core-site.xml (通過 gedit 編輯會比較方便: gedit ./etc/hadoop/core-site.xml),將當中的

<configuration> </configuration>

修改為下面配置:

<configuration><property><name>hadoop.tmp.dir</name><value>file:/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>

同樣的,修改配置文件 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/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property><property> <name>dfs.http.address</name><value>0.0.0.0:50070</value></property> </configuration>

Hadoop配置文件說明
Hadoop 的運行方式是由配置文件決定的(運行 Hadoop 時會讀取配置文件),因此如果需要從偽分布式模式切換回非分布式模式,需要刪除 core-site.xml 中的配置項。

此外,偽分布式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運行(官方教程如此),不過若沒有配置 hadoop.tmp.dir 參數,則默認使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行 format 才行。所以我們進行了設置,同時也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來的步驟中可能會出錯。

配置完成后,執行 NameNode 的格式化:

./bin/hdfs namenode -format

成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。

如果在這一步時提示 Error: JAVA_HOME is not set and could not be found. 的錯誤,則說明之前設置 JAVA_HOME 環境變量那邊就沒設置好,請按教程先設置好 JAVA_HOME 變量,否則后面的過程都是進行不下去的。如果已經按照前面教程在.bashrc文件中設置了JAVA_HOME,還是出現 Error: JAVA_HOME is not set and could not be found. 的錯誤,那么,請到hadoop的安裝目錄修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”這行,然后,把它修改成JAVA安裝路徑的具體地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次啟動Hadoop。

在進行Hadoop節點格式化時候出現“Starting resourcemanager ERROR: Unable to write in /home/zhang/opt/hadoop-3.1.0/logs. Aborting.”和“Cannot create directory”錯誤,則是文件權限的問題。運行命令:

加入-R 參數,將讀寫權限傳遞給子文件夾 chmod -R 777 /logs 加入-R 參數,將讀寫權限傳遞給子文件夾 chmod -R 777 /tmp

接著開啟 NameNode 和 DataNode 守護進程。

./sbin/start-dfs.sh #start-dfs.sh是個完整的可執行文件,中間沒有空格

若出現如下SSH提示,輸入yes即可。

啟動時可能會出現如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN 提示可以忽略,并不會影響正常使用。

啟動 Hadoop 時提示 Could not resolve hostname
如果啟動 Hadoop 時遇到輸出非常多“ssh: Could not resolve hostname xxx”的異常情況,如下圖所示:

這個并不是 ssh 的問題,可通過設置 Hadoop 環境變量來解決。首先按鍵盤的 ctrl + c 中斷啟動,然后在 ~/.bashrc 中,增加如下兩行內容(設置過程與 JAVA_HOME 變量一樣,其中 HADOOP_HOME 為 Hadoop 的安裝目錄):

export HADOOP_HOME=/usr/local/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

保存后,務必執行 source ~/.bashrc 使變量設置生效,然后再次執行 ./sbin/start-dfs.sh 啟動 Hadoop。

啟動完成后,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 沒有啟動,請運行 sbin/stop-dfs.sh 關閉進程,然后再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode ,那就是配置不成功,請仔細檢查之前步驟,或通過查看啟動日志排查原因。

Hadoop無法正常啟動的解決方法
一般可以查看啟動日志來排查原因,注意幾點:

啟動時會提示形如 “DBLab-XMU: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.out”,其中 DBLab-XMU 對應你的機器名,但其實啟動日志信息是記錄在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.log 中,所以應該查看這個后綴為 .log 的文件;
每一次的啟動日志都是追加在日志文件之后,所以得拉到最后面看,對比下記錄的時間就知道了。
一般出錯的提示在最后面,通常是寫著 Fatal、Error、Warning 或者 Java Exception 的地方。
可以在網上搜索一下出錯信息,看能否找到一些相關的解決方法。
此外,若是 DataNode 沒有啟動,可嘗試如下的方法(注意這會刪除 HDFS 中原有的所有數據,如果原有的數據很重要請不要這樣做):

針對 DataNode 沒法啟動的解決方法

./sbin/stop-dfs.sh # 關閉 rm -r ./tmp # 刪除 tmp 文件,注意這會刪除 HDFS 中原有的所有數據 ./bin/hdfs namenode -format # 重新格式化 NameNode ./sbin/start-dfs.sh # 重啟

成功啟動后,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。

Hadoop的Web界面

總結

以上是生活随笔為你收集整理的大数据学习(2-1)-Hadoop安装教程-单机模式和伪分布模式(Ubuntu14.04LTS)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。