基于Ubuntu系统下的Hadoop 环境搭建(新手可尝)
文章目錄
- Hadoop 環境搭建
- 1、安裝虛擬機
- 2.安裝 Ubuntu 操作系統
- 3、關閉防火墻
- 4、 SSH 安裝
- 5、 安裝 Xshell 及 Xftp
- 6、 安裝 JDK
- 7、安裝 hadoop
- 8. 結語
Hadoop 環境搭建
1、安裝虛擬機
在一切行動的前提,我們需要先安裝好虛擬機,畢竟是供我們學習用的,因此我們需要通過虛擬機利用Linux系統來實現我們的Hadoop環境。
安裝虛擬機步驟:
(1)下載 VMware 安裝包。到 VMware? Workstation Pro 官網,選擇對應的版本 進行下載。本教程選擇的版本是 VMware? Workstation 14 Pro。
(2)安裝 VMware。雙擊安裝文件,按提示操作至安裝完成。
(3)新建虛擬機。打開 VMware 軟件,單擊主頁的【創建新的虛擬機】按鈕開始 創建虛擬機,如圖 2-1 所示。
單擊“自定義(高級)”選項,如圖 2-2 所示,并單擊【下一步】按鈕。 選擇“虛擬機硬件兼容性”,默認即可,直接單擊【下一步】按鈕,如圖 2-3 所示。
選擇“稍后安裝操作系統”,單擊【下一步】按鈕,如圖 2-4 所示。 選擇“客戶機操作系統”,單擊選中“Linux(L)”,如圖 2-5 所示,再單擊【下 一步】按鈕。
設置“虛擬機名稱(例如:Ubuntu)”,并選擇虛擬機的安裝位置,最好選擇一個 有空余空間的磁盤分區來安裝,如圖 2-6 所示,再單擊【下一步】按鈕。 設置“處理器配置”,保持默認即可,并單擊【下一步】按鈕,如圖 2-7 所示。
分配虛擬機內存(內存建議大于或等于 1024MB),然后單擊【下一步】按鈕,如 圖 2-8 所示。
設置“網絡類型”,單擊“使用網絡地址轉換(NAT)”,并單擊【下一步】按鈕, 如圖 2-9 所示。
選擇“I/O 控制器類型”,使用默認選項“LSI Logic”,并單擊【下一步】按鈕, 如圖 2-10 所示。
選擇“磁盤類型”,使用默認選項“SCSI”,并單擊【下一步】按鈕,如圖 2-11 所示。
選擇“磁盤”,選擇“創建新虛擬磁盤”,并單擊【下一步】按鈕,如圖 2-12 所 示。
指定“磁盤容量”,建議為 20GB 或更大,并單擊【下一步】按鈕,如圖 2-13 所示。
指定“磁盤文件”,保留默認的位置或單擊【瀏覽】按鈕選擇其他位置,并單擊【下 一步】按鈕,如圖 2-14 所示。 單擊【完成】按鈕,完成虛擬機的安裝,如圖 2-15 所示。
2.安裝 Ubuntu 操作系統
雖然Windows和Unix以及Linux都支持Hadoop的開發,但是只有Linux系統是支持Hadoop的生產,因此我們需要利用Linux來配置我們的Hadoop,上面我們已經把虛擬機安裝好了,同時在上面也介紹了安裝Ubuntu操作系統的一小步步驟,VMware以及Ubuntu的鏡像文件都已打包在點我!!
提取碼是:rmne
接下來我們就正式進入安裝Ubuntu系統的過程:
(1)下載 Ubuntu ISO 鏡像文件。到 Ubuntu 官網選擇對應的版本進行下載。本教程選擇的版本是 ubuntu-16.04.4-desktop-amd64.iso。
(2)打開 VMware Workstation Pro 軟件,單擊左側欄的虛擬機(如 Ubuntu),再 單擊右側的“編輯虛擬機設置”,如圖 2-16 所示。
選擇“CD/DVD(SATA)”,連接選擇“使用 ISO 映像文件”,單擊【瀏覽】按鈕, 選擇下載的 ISO 鏡像文件,單擊【確定】按鈕,如圖 2-17 所示。
單擊“開啟此虛擬機”,然后根據提示安裝至完成,如圖 2-18 所示。
3、關閉防火墻
如果不關閉 Ubuntu 操作系統的防火墻,會出現以下幾種情況。
(1)無法正常訪問 Hadoop HDFS 的 Web 管理頁面。
(2)會導致后臺某些運行腳本(例如后面要學習的 HIVE 程序)出現假死狀態。
(3)在刪除和增加節點的時候,會讓數據遷移處理時間更長,甚至不能正常完成 相關操作。 所以我們要關閉防火墻。關閉防火墻的命令如下。
查看防火墻狀態,狀態為“不活動”,說明防火墻已經關閉。
$ sudo ufw status Status: inactive注意:本教程使用的命令以“$”開頭時,代表當前用戶為普通用戶;“#”開頭代表 當前用戶為 root 用戶。命令行中的“$”或者“#”是不需要輸入的,例如,“$ sudo ufw status”只需要在終端命令行輸入“sudo ufw status”即可。
4、 SSH 安裝
SSH 是 Secure Shell 的縮寫,它是一種建立在應用層基礎上的安全協議。SSH 是目 前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以 有效防止遠程管理過程中的信息泄露。
SSH 由客戶端(openssh-client)軟件和服務端(openssh-server)軟件組成。在安 裝 SSH 服務時,需要 Ubuntu 操作系統連接互聯網。
(1)安裝 SSH 客戶端軟件
Ubuntu 操作系統默認安裝有 SSH 客戶端軟件,通過以下命令查看是否已安裝,如 果返回包含“openssh-client”的字樣,說明已經安裝 SSH 客戶端軟件。
$ sudo dpkg -l | grep ssh否則,用以下命令安裝。
$ sudo apt-get install openssh-client(2)安裝 SSH 服務端軟件
Ubuntu 操作系統默認沒有安裝 SSH 服務端軟件,安裝命令如下。
$ sudo apt-get install openssh-server重啟 SSH 服務,命令如下。
$ sudo /etc/init.d/ssh restart5、 安裝 Xshell 及 Xftp
采用 Xshell 可以通過 SSH 協議遠程連接 Linux 主機,采用 Xftp 可實現安全地在 UNIX/Linux 和 Windows 之間傳輸文件。可打開 NetSarang 官網下載最新的 Xshell 及 Xftp 免費版本。本書采用的是 Xshell 6.0 及 Xftp 6.0 免費版本。安裝 Xshell 和 Xftp 較簡 單,只需要雙擊安裝文件默認安裝即可。
利用xftp6可以進行windows與linux文件傳輸,比如在windows系統安裝了jdk1.8要上傳到linux系統,則需要用到xftp6,(前提也是xftp6要連接到Linux)
安裝 Xshell 及 Xftp可以在上面提供的鏈接下載,此處再給出鏈接提取碼為:rmne
如果覺得云盤下載實在是太麻煩了,也可以選擇在這里下載
安裝完 Xshell 及 Xftp 后,打開 Xshell,選中左側所有會話,單擊右鍵,選擇【新建】 -【會話】,如圖 2-19 所示。
在連接中,配置名稱及主機。其中,主機是上面安裝的 Ubuntu 操作系統的 IP 地址, 如圖 2-20 所示。
tips:如果要查看 Ubuntu 操作系統的 IP 地址,可采用如下命令。
例如,顯示如下結果,表示 Ubuntu 操作系統的 IP 地址是“192.168.30.128”。目 前的 IP 地址是自動獲取的,建議讀者參考相關資料將 IP 地址設置為固定的。
ens160 Link encap:Ethernet HWaddr 00:0c:29:bf:e1:df inet addr:192.168.30.128 Bcast:192.168.30.255 Mask:255.255.255.0再在 Xshell 會話配置中,配置 Ubuntu 操作系統的登錄用戶名和密碼,單擊【連接】 按鈕即可開始連接上前面安裝好 Ubuntu 操作系統,如圖 2-21 所示。
6、 安裝 JDK
Hadoop 是基于 Java 語言開發的,運行 Hadoop 需要安裝 JDK(Java Development Kit)。
(1)下載安裝包并上傳到 Linux 系統 JDK 安裝包需要在 Oracle 官網下載。本書采用的 JDK 安裝包為 jdk-8u171-linux-x64.tar.gz。將安裝包下載至 Windows 本地目錄下,例如 D:\soft。在 Xshell 軟件中,單擊上方的綠色小圖標,打開 Xftp,如圖 2-22 所示。
在彈出的 Xftp 窗口中,把 JDK 的安裝包上傳到 Ubuntu 系統~目錄下,如圖 2-23 所示。
上傳成功后,在 Ubuntu 操作系統下通過 ls 命令查看,結果如下。
(2)解壓安裝包到~目錄下
$ cd ~ $ tar -zxvf jdk-8u171-linux-x64.tar.gz(3)建立 JDK 軟鏈接,以方便后續使用
$ ln -s jdk1.8.0_171 jdk(4)配置 JDK 環境變量
$ vi ~/.bashrc /*vi 為打開文件命令在文件內容的末尾添加如下代碼(注意:等號兩側不要有空格)。
export JAVA_HOME=~/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:. export PATH=${JAVA_HOME}/bin:$PATH熟悉Linux操作命令的童鞋已經開始操作起來了,當然如果對于這些操作命令不熟悉的同學也不要怕,可以點擊這個鏈接,學習一下Linux的相關操作命令,再接著進入配置環境的操作。
(5)使配置生效
(6)檢驗是否安裝成功
$ java –version出現如下版本信息表示 JDK 安裝成功。
java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)7、安裝 hadoop
Hadoop的三種啟動模式分別為:
1.單機模式(獨立模式)(Local或Standalone Mode)
2.偽分布式模式(Pseudo-Distrubuted Mode)
3.全分布式集群模式(Full-Distributed Mode)
對于我們學習使用的話,其實我們只需要配置偽分布式來模擬一個小規模的集群就可以的了。偽分布式其實是完全分布式的一種特例,但它只有一個節點。下面開始安裝Hadoop的偽分布式吧!
(1)修改主機名
查看 Ubuntu 操作系統的主機名,參考下面的命令。
$ hostname hadoop-virtual-machine為了安裝方便和易于記憶,將這臺主機的主機名修改為 node1。
用 vi 命令編輯/etc/hostname 文件。
將原有內容刪除,添加如下內容。
node1重啟 Ubuntu 操作系統,使修改生效。
$ sudo reboot(2)映射 IP 地址及主機名
先查看 Ubuntu 操作系統的 IP 地址,可參考 上文配置jdk的教程。比如,這里查到的 IP 地址 是“192.168.30.128”。
修改/etc/hosts 文件。
$ sudo vi /etc/hosts在文件末尾添加一下內容,下面的 IP 地址根據實際的 IP 地址修改。
192.168.30.128 node1(3)免密登錄設置
如果只需要本機登錄別的主機,把本機當作客戶端,則在本機安裝 SSH 客戶端 (openssh-client)軟件即可。如果要讓別的主機(包括本機自己)登錄本機,也就是 說把本機當作服務端,就需要安裝 SSH 服務端(openssh-server)軟件。Ubuntu 操作 系統默認沒有安裝 SSH 服務端軟件,請參考 2.1.4 進行安裝。
登錄其他主機時,通常需要輸入密碼。如果要讓普通用戶(如 hadoop)無需輸入 密碼就可以登錄集群內的主機,即實現免密登錄,通常的做法是在本機創建一個密鑰對 (包括公鑰和私鑰),并將公鑰發送給集群內所有的主機進行認證,即可實現免密登錄。
偽分布式只有一個節點,本機同時扮演著客戶端和服務端的角色。在 SSH 客戶端軟 件和 SSH 服務端軟件都安裝好的前提下,進行以下免密登錄設置。
(1)生成密鑰對
$ ssh-keygen -t rsa其中,rsa 表示加密算法,鍵入上面一條命令后連續敲擊三次回車鍵,系統會自動在~/.ssh 目錄下生成公鑰(id_rsa.pub)和私鑰(id_rsa),可通過命令$ ls ~/.ssh 查看。
$ ls ~/.ssh id_rsa id_rsa.pub(2)追加公鑰
我們以本機登錄本機自己為例(連接本機),將公鑰追加到~/.ssh/authorized_keys 文件中。
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys通過命令$ ls ~/.ssh 查看,認證文件 authorized_keys 已經生成。讀者如果感興趣, 可以通過 cat 命令查看 authorized_keys 內容是否包含有 id_rsa.pub 的內容。
$ ls ~/.ssh authorized_keys id_rsa id_rsa.pub(3)免密登錄驗證
執行命令 ssh node1,首次登陸需要輸入“yes”,第二次登錄就不需要輸入任何信 息了。注意命令行路徑的變化。以下例子免密登錄之前的路徑是“~/.ssh”,登錄后的 路徑是“~”。
hadoop@node1:~/.ssh$ ssh node1 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-36-generic x86_64) * Documentation: https://help.ubuntu.com * * Management: https://landscape.canonical.com 250 packages can be updated. 134 updates are security updates. Last login: Sat Jul 14 21:19:26 2018 from 192.168.30.128hadoop@node1:~$用命令$ exit 退出 node1 登錄,路徑由 “~” 變為了登錄前的“~/.ssh”。
hadoop@node1:~$ exit logout Connection to node1 closed. hadoop@node1:~/.ssh$(4)設置 Hadoop 配置文件
安裝 Hadoop 偽分布式模式,總共有 5 個文件需配置,它們分別是 hadoop-env.sh、 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。這些配置文件的路徑均 在${HADOOP_HOME}/ etc/hadoop 目錄下。
(4_1)配置 hadoop-env.sh
進入 Hadoop 配置文件所在目錄,修改 hadoop-env.sh 文件。
$ cd ~/hadoop/etc/hadoop $ vi hadoop-env.sh找到 export JAVA_HOME 一行,把行首的#去掉,并按實際修改 JAVA_HOME 的值。
# The java implementation to use. export JAVA_HOME=/home/hadoop/jdk注意:JAVA_HOME=/home/hadoop/jdk,其中的 hadoop 為用戶名,注意要按實際 修改。
(4_2)配置 core-site.xml
用 vi 命令打開 core-site.xml。
$ vi core-site.xml參考以下內容進行修改,修改完保存退出。
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property> <name>fs.defaultFS</name> <value>hdfs://node1:8020</value> <!-- 以上ip 地址或主機名要按實際情況修改 --> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp</value> </property> </configuration>配置說明: fs.defaultFS 屬性指定默認文件系統的 URI 地址,一般格式為“hdfs://host:port”。 其中,host 可以設置為 Ubuntu 操作系統的 IP 地址以及主機名稱中的任意一個,這里 設置為主機名;port 如果不配置,則使用默認端口號 8020。
hadoop.tmp.dir 指定 Hadoop 的臨時工作目錄,設置為/home/<用戶 名>/hadoop/tmp,<用戶名>請根據實際情況修改。注意:一定要配置 hadoop.tmp.dir, 否則默認的 tmp 目錄在/tmp 下,重啟 Ubuntu 操作系統時 tmp 目錄下的 dfs/name 文件 夾會被刪除,造成沒有 NameNode。
(4_3)配置 hdfs-site.xml
用 vi 命令打開 hdfs-site.xml。
$ vi hdfs-site.xml修改成以下內容,保存退出。
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>dfs.replication 的默認值是 3,因為偽分布式只有一個節點,所以值設置為 1。
(4_4)配置 mapred-site.xml
復制 mapred-site.xml.template,生成 mapred-site.xml。
cp mapred-site.xml.template mapred-site.xml用 vi 命令打開 mapred-site.xml。
$ vi mapred-site.xml修改成以下內容,保存退出。
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>mapreduce.framework.name 默認值為 local,設置為 yarn,讓 MapReduce 程序運 行在 YARN 框架上。
(4_5)配置 yarn-site.xml
用 vi 命令打開 yarn-site.xml。
$ vi yarn-site.xml修改成以下內容,保存退出。
<?xml version="1.0"?> <configuration><property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> <!-- 以上主機名或IP 地址按實際情況修改 --> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>yarn.resourcemanager.hostname 屬性為資源管理器的主機,設置為 Ubuntu 操作 系統的主機名或 IP 地址。
yarn.nodemanager.aux-services 屬性為節點管理器的輔助服務器,默認值為空,設 置為 mapreduce_shuffle。
通過以上設置,我們完成了 Hadoop 偽分布式模式的配置。其實 Hadoop 可以配置 的屬性還有很多,沒有配置的屬性就用默認值,默認屬性配置存放在 core-default.xml、 hdfs-default.xml、mapred-default.xml 和 yarn-default.xml 文件中??梢缘焦倬W查詢對 應文檔或通過命令 locate <查找的文件名> 來查找文件所在路徑,再通過 cat 命令查看 其內容,例如:
$ locate core-default.xml /home/hadoop/soft/hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common /core-default.xml $ cat /home/hadoop/soft/hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common/cor e-default.xml(5)格式化 HDFS
格式化的過程是創建初始目錄和文件系統結構的過程。執行以下命令格式化 HDFS。
$ hdfs namenode –format $ sudo chmod 777 hadoop-2.7.1注意:格式化只需進行一次,下次啟動不要再次格式化,否則會少 DataNode 進程。
(6)啟動 Hadoop
采用下面命令啟動 HDFS。
$ start-dfs.sh用 jps 命令驗證,正確啟動會出現以下 3 個進程
$ jps NameNode DataNode SecondaryNameNode采用下面命令啟動 YARN。
$start-yarn.sh(7)驗證 Hadoop 進程
用 jps 命令驗證,正確啟動將多出以下兩個進程。
$ jps ResourceManager NodeManagertips:start-dfs.sh、start-yarn.sh 也可以合并成下面一個命令。
$start-all.shtips:若使用$start-all.sh命令,在開啟Hadoop進程的時候系統會提示我們輸入四次虛擬機的密碼!
如果某個主機少了某個進程,應該到相應主機去找對應的 log 查看原因,log 存放在 ${HADOOP_HOME}/logs 目錄下。例如,若少了 DataNode 進程,那么就切換到 ${HADOOP_ HOME}/logs 目錄下,查看 DataNode 相關的 log,找到含有“WARN”“Error” “Exception”等的關鍵字句,通過上網搜索關鍵字句找到解決問題的辦法
$ cd ${HADOOP_HOME}/logs $ cat hadoop-hadoop-datanode-node1.log也可以通過 vi 命令查看。
$ vi hadoop-hadoop-datanode-node1.log最新出現的錯誤,其信息都在文章末尾。
(8)通過 Web 訪問 Hadoop
(8_1)HDFS Web 界面
在 Windows 瀏覽器中,輸入網址 http://ip地址:50070(例:http://192.168.30.128:50070),可以查看 NameNode 和 DataNode 的信息,如圖所示。
在 Windows 瀏覽器中,輸入網址 http://ip地址:50090(例:http://192.168.30.128:50090),可以查看 SecondaryNameNode 的信息,如圖所示。
(8_2)YARN Web 界面
在 Ubuntu 操作系統的瀏覽器中,輸入網址 http://ip地址:8088(例:http://192.168.30.128:8088),可以查看 集群所有應用程序的信息,如圖所示。
步驟到了這里,基本已經可以確定你的Hadoop已經配置完成了!!!
8. 結語
以上就是配置Hadoop的初始步驟,對于作為初學者的同學,Hadoop的配置是最低要求,利用Linux下的Ubuntu操作系統來實現Hadoop偽分布式的運行,學習Hadoop生態的各大功能,大家好好學習,共勉!!!
總結
以上是生活随笔為你收集整理的基于Ubuntu系统下的Hadoop 环境搭建(新手可尝)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我和Git的第一次
- 下一篇: RK平台ubuntu安装vbox