Hadoop 的安裝和使用(基於Linux~Ubuntu的虛擬機)
❀准備工作(先下載好Hadoop安裝包和Linux版的jdk1.8):
https://hadoop.apache.org/release/3.1.3.html (3.1.3 版本的,其他版本的可以參照官網:https://hadoop.apache.org/ )
下載linux版的jdk:https://www.oracle.com/java/technologies/downloads/#java8 (這里以下載jdk-8u301為例子)

一、簡單了解下 Hapdoop 安裝六部曲:
1,創建hadoop用戶
2,更新apt(和 安裝Vim 編譯器)
3,安裝SSH、配置SSH無密碼登陸
4,安裝Java環境
5,安裝 Hadoop 軟件,進行 Hadoop單機安裝和配置(非分布式)
6,Hadoop偽分布式安裝和配置
~~~~~~~~~~~~(這里介紹一些極大概率會使用的常識和命令)~~~~~~~~~~~~
■ sudo命令
是ubuntu中一種權限管理機制,授權給普通用戶執行一些需要root權限執行的操作。使用sudo命令時,需要輸入當前用戶的密碼.
■ 密碼
在Linux的終端中輸入密碼,終端是不會顯示任何你當前輸入的密碼,也不會提示你已經輸入了多少字符密碼。
■ Ubuntu終端復制粘貼快捷鍵
在Ubuntu終端窗口中,復制粘貼的快捷鍵需要加上 shift,即 粘貼是 ctrl+shift+v。
■ ~的含義
在 Linux 系統中,~ 代表的是用戶的主文件夾,即 “/home/用戶名” 這個目錄,如你的用戶名為 hadoop,
則 ~ 就代表 “/home/hadoop/”
□ ctr + c:退出當前命令行
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~打開虛擬機的烏邦圖,開始操作啦~~~~~~~~~~~~~~~~~~~~~~~
過程中可能遇到無法從主機復制粘貼命令到虛擬機的解決請看文章最后,一些麻煩的解決的第0點
先進入 烏邦圖的終端 : 首先按 ctrl+alt+t 打開終端窗口
1,創建hadoop用戶:
①(命令如下~ 如果該過程遇到麻煩的話,可以看文章后邊第一點,有刪除hadoop用戶的操作哈)~這里咱創建了一個叫hadoop的用戶哈
sudo useradd -m hadoop -s /bin/bash
②(注意:因為是sudo命令,需要先輸入當前用戶的密碼哈)
③ 設置咱創建的用戶密碼~ 為了防止忘記密碼,建議密碼就設置為: hadoop
sudo passwd hadoop
④ 為 創建的hadoop 用戶增加管理員權限,方便部署,避免一些對新手來說比較棘手的權限問題:
sudo adduser hadoop sudo
或者:⑤ 共享文件夾,用戶訪問共享文件夾需要 vboxsf 權限, 終端添加hadoop用戶到 vboxsf 組里,輸入命令:
sudo adduser hadoop vboxsf
添加后重啟
或者:⑤若不打算共享文件夾(就跳過共享文件夾操作那一步),最后一步是: 注銷當前用戶(點擊右上角,找到當前的用戶,選擇注銷),返回登陸界面~選擇咱創建的 名為“hadoop”的用戶 進入
2,更新apt(和 安裝Vim 編譯器)
~~~~~~~~~~~~先進入 烏邦圖的終端 : 首先按 ctrl+alt+t 打開終端窗口~~~~~~~~~~~~~~
(1)更新apt:
sudo apt-get update
注意:若出現如下 “Hash校驗和不符” 的提示,可通過更改軟件源來解決。若沒有該問題,則不需要更改。
從軟件源下載某些軟件的過程中,可能由於網絡方面的原因出現沒法下載的情況,那么建議更改軟件源。
在學習Hadoop過程中,即使出現“Hash校驗和不符”的提示,也不會影響Hadoop的安裝。
(可以看文章的最后第二點有解決“Hash校驗和不符”的操作)
(2) 安裝Vim 編譯器:(安裝的過程當按它提示繼續執行時,輸入一下 y)
sudo apt-get install vim
~~~~~~~~~~~~~~~~~~~~~~~~(Vim編譯的常用操作)~~~~~~~~~~~~~~~~~~~~~
vim的常用模式有分為命令模式,插入模式,正常模式,可視模式。
正常模式:主要用來瀏覽文本內容。一開始打開vim都是正常模式。按 Esc鍵 任何情況,都可以返回正常模式
插入編輯模式:用來向文本中添加內容的。在正常模式下,輸入 i 鍵,即可進入插入編輯模式。
注意退出vim時,如果使用vim修改任何文本,需要 在正常模式下(Esc鍵),輸入 shift+zz (或者按 :wq )進行保存,然后再退出 vim
3,安裝SSH、配置SSH無密碼登陸(Ubuntu 默認已安裝了 SSH client,此外還需要安裝 SSH server)
集群、單節點模式都需要用到 SSH 登陸(類似於遠程登陸,你可以登錄某台 Linux 主機,並且在上面運行命令)
① 命令:
sudo apt-get install openssh-server
② 安裝后,可以使用如下命令登陸本機:(該過程按照提示,輸入 yes)
ssh localhost
③ 配置成SSH無密碼登陸:
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按回車就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授權

此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了~~~
4,安裝Java環境 (安裝JDK方式(手動安裝,推薦本方式))~該過程遇到的bug解決情況在文章最后,一些麻煩的解決的第三點
(例如:■ 0x00007FFC10CA2ACC指令 引用了0x0000000000000000 內存,該內存不能written,要終止程序?)
(例如:■ 如何從windows傳輸文件到virtualBox中ubuntu系統~即共享文件)
(例如:■ bug:虛擬機下Ubuntu共享文件夾不能顯示(您沒有查看共享文件的權限))
(例如:■ bug:VirtualBox 主機於虛擬機不能復制粘貼的bug)
(例如:■ bug:熱鍵等鼠標獨占的問題)
① 將jdk文件jdk-8u301-linux-x64.tar.gz下載到本地電腦,假設保存在“/home/yushan/下載/”目錄下。
(該過程,先通過共享文件功能,在主機windows下將jdk壓縮包拷貝的共享文件下,然后重啟虛擬機)
■ 可能遇到的bug1:虛擬機下Ubuntu共享文件夾不能顯示 解決:在主機windows下將jdk壓縮包(要共享的文件)共享,重新拷貝到共享文件夾下,然后Ubuntu重啟(點擊菜單欄:控制-> 重啟) ■ 可能遇到的bug2:您沒有查看共享文件的權限~
解決:終端添加hadoop用戶到 vboxsf 組里,輸入命令: sudo adduser hadoop vboxsf 然后重啟

② ctr+alt+t 進入終端(當前用戶是hadoop哈),執行以下命令:
cd /usr/lib sudo mkdir jvm #創建/usr/lib/jvm目錄用來存放JDK文件 cd ~ #進入hadoop用戶的主目錄 cd 下載 #注意區分大小寫字母,剛才已經通過FTP軟件把JDK安裝包jdk-8u301-linux-x64.tar.gz上傳到該目錄下 sudo tar -zxvf ./jdk-8u301-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解壓到/usr/lib/jvm目錄下
③ JDK文件解壓縮以后,可以執行如下命令到/usr/lib/jvm目錄查看一下:(可以看到,在/usr/lib/jvm目錄下有個jdk1.8.0_301目錄)
cd /usr/lib/jvm ls
④ 設置環境變量:
cd ~ vim ~/.bashrc
⑤ 使用vim編輯器, 進入 插入模式,按 i 鍵,(在文件的開頭位置,添加如下幾行內容):
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
⑥ 按Esc 鍵,進入vim的正常模式,然后 輸入shift+zz(保存並退出)
⑦ 讓.bashrc文件的配置立即生效:
source ~/.bashrc
⑧ 查看是否安裝成功:
java -version
看到java的版本,則配置java環境成功啦
5,安裝 Hadoop(默認安裝的Hadoop 就是單機版的啦,即單 Java 進程)
① 通過windows 在官網下載好hadoop的安裝包,放到共享文件夾里,然后啟動虛擬機~
然后把 hadoop的安裝包復制粘貼到 文件夾的下載里~

② 將 Hadoop 安裝至 /usr/local/ 中:
sudo tar -zxf ~/下載/hadoop-3.1.3.tar.gz -C /usr/local # 解壓到/usr/local中 cd /usr/local/ sudo mv ./hadoop-3.1.3/ ./hadoop # 將文件夾名改為hadoop sudo chown -R hadoop ./hadoop # 修改文件權限
③ Hadoop 的解壓和版本查看:
cd /usr/local/hadoop ./bin/hadoop version

~~~~~~~看到了hadoop版本,則安裝成功啦
❀ 可選操作,測試一下單機版的hadoop運行情況哈
在此我們選擇運行 grep 例子(hadoop的jar包有的一個例子~運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 可以看到所有例子), 我們將 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/* # 查看運行結果
② 執行結果如下:

③ 需要先將 ./output 刪除。 注意,Hadoop 默認不會覆蓋結果文件,導致再次運行上面實例會提示出錯。
rm -r ./output
~~~~~~~~~~~~~未完待續,《Hadoop安裝最后一步~Hadoop偽分布式配置》~~~~~~~~~~~~
參考文章:https://www.cnblogs.com/shan333/p/15333455.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~(最后,一些麻煩的解決)~~~~~~~~~~~~~~~~~~~~~~~
第0點:無法從主機復制粘貼命令到虛擬機:
步驟:設置 -》存儲 -》控制器:SATA -》...

第一點:刪除hadoop用戶的操作
① 執行userdel命令:
sudo userdel XXX //XXX為需要刪除的用戶名
② 刪除用戶:
sudo rm -rf /home/XXX //XXX為需要刪除的用戶名
③ 刪除用戶權限相關配置,
先刪除/home目錄下的文件:
cd /home rm -rf XXX //XXX為需要刪除的用戶名
再刪除/etc/passwd下的用戶:
cat /etc/passwd
④ 刪除/etc/group下的用戶組文件:
cat /etc/group
⑤刪除/var/spool/mail下的郵箱文件:
cd /var/spool/mail rm -rf XXX //XXX為需要刪除的用戶信息
參考文章:https://blog.csdn.net/CAU_Ayao/article/details/83502880
第二點:解決: “Hash校驗和不符” 【該過程提示要輸入密碼,你就輸入一下哈】





參考文章:http://dblab.xmu.edu.cn/blog/install-hadoop/
第三點:解決:安裝Java環境 ~該過程遇到的bug
(例如:■ 0x00007FFC10CA2ACC指令 引用了0x0000000000000000 內存,該內存不能written,要終止程序?)
終極解決法(關閉hyper -V):參考文章 https://www.cnblogs.com/shan333/p/15362864.html
解決方法一: 重啟ubuntu 解決方法二:重啟windows(成功解決)~臨時解決一下 解決方法三:(如果是win7系統的話)修改主機文件~參考文章 https://blog.csdn.net/weixin_43802738/article/details/104714241
(例如:■ 如何從windows傳輸文件到virtualBox中ubuntu系統~即共享文件)
解決:參考我寫的上一篇文章里的 " 可選操作~對於需要安裝hadoop 建議操作搞一波" 部分內容
(例如:■ bug:虛擬機下Ubuntu共享文件夾不能顯示(您沒有查看共享文件的權限))
解決:終端添加hadoop用戶到 vboxsf 組里,輸入命令: sudo adduser hadoop vboxsf
然后,在主機windows下將jdk壓縮包(要共享的文件)共享,重新拷貝到共享文件夾下,然后Ubuntu重啟(點擊:控制-> 重啟)
重啟,重啟是王道。
(例如:■ bug:VirtualBox 主機於虛擬機不能復制粘貼的bug)~ VBox -》 設置 -》 存儲 -》......

(例如:■ bug:熱鍵等鼠標獨占的問題)

解決:按右手邊的ctr 鍵
