溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么搭建Hadoop運(yùn)行環(huán)境

發(fā)布時(shí)間:2021-12-09 15:34:10 來源:億速云 閱讀:158 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“怎么搭建Hadoop運(yùn)行環(huán)境”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么搭建Hadoop運(yùn)行環(huán)境”吧!

Hadoop 是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),在大數(shù)據(jù)領(lǐng)域被廣泛的使用,它將大數(shù)據(jù)處理引擎盡可能的靠近存儲,Hadoop 最核心的設(shè)計(jì)就是 HDFS 和  MapReduce,HDFS 為海量的數(shù)據(jù)提供了存儲,MapReduce 為海量的數(shù)據(jù)提供了計(jì)算。

我們使用 Linux 操作系統(tǒng)來搭建環(huán)境,下面的信息是用來準(zhǔn)備搭建 Hadoop 環(huán)境的電腦環(huán)境信息。

hadoop@ubuntu:~$ cat /etc/os-release NAME="Ubuntu" VERSION="14.04.5 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.5 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

緊接著來新建一個(gè)用戶,這一步其實(shí)也可以省略的,可以根據(jù)實(shí)際情況來決定,這里是新建了一個(gè)叫 hadoop 的新用戶。

#創(chuàng)建新用戶 sudo useradd -m hadoop -s /bin/bash #設(shè)置密碼 sudo passwd hadoop #為hadoop用戶增加管理員權(quán)限 sudo adduser hadoop sudo #切換到hadoop用戶 su hadoop

我們首先來設(shè)置一下 SSH 無密碼登錄,這一步建議都設(shè)置一下,因?yàn)榉植际较到y(tǒng)環(huán)境都是由多臺服務(wù)器構(gòu)成的,設(shè)置免密碼登錄會方便使用。

#先檢查下是否可以在沒有密碼的情況下ssh到localhost ssh localhost #如果在沒有密碼的情況下無法ssh到localhost,請執(zhí)行以下命令 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys

上面是一些準(zhǔn)備工作,接下來就正式開始部署 Hadoop 環(huán)境了。我們先在 Apache  官網(wǎng)(http://hadoop.apache.org)這里下載最新的穩(wěn)定版本的 Hadoop 發(fā)行版,然后解壓到指定目錄并進(jìn)入這個(gè)目錄,執(zhí)行  ./bin/hadoop 和 ./bin/hadoop version 可以分別顯示 hadoop 腳本的使用文檔和版本信息,然后修改一下  ./etc/hadoop/core-site.xml 和 ./etc/hadoop/hdfs-site.xml這兩個(gè)配置文件,配置修改分別如下所示。

修改 ./etc/hadoop/core-site.xml 配置文件,添加如下配置:

<configuration>     <property>         <name>fs.defaultFS</name>         <value>hdfs://localhost:9090</value>     </property>     <property>         <name>hadoop.tmp.dir</name>         <value>file:/opt/bigdata/hadoop/tmp</value>         <description>A base for other temporary directories.</description>     </property> </configuration>

修改 ./etc/hadoop/hdfs-site.xml 配置文件,添加如下配置:

<configuration>     <property>         <name>dfs.replication</name>         <value>1</value>     </property>     <property>         <name>dfs.namenode.name.dir</name>         <value>file:/opt/bigdata/hadoop/tmp/dfs/name</value>     </property>     <property>         <name>dfs.datanode.data.dir</name>         <value>file:/opt/bigdata/hadoop/tmp/dfs/data</value>     </property> </configuration>

配置修改好之后,執(zhí)行格式化文件系統(tǒng),操作如下。

hadoop@ubuntu:/opt/bigdata/hadoop$ ./bin/hdfs namenode -format #執(zhí)行后輸出會比較多,看到下邊這條信息表示成功  INFO common.Storage: Storage directory /opt/bigdata/hadoop/tmp/dfs/name has been successfully formatted.

在格式化 NameNode 的時(shí)候可能會遇到下面這樣的兩個(gè)問題。

  1. 提示 Error: JAVA_HOME is not set and could not be found. 的錯(cuò)誤,這說明 JAVA_HOME  環(huán)境變量沒有配置好,重新配置一下,或者修改 ./etc/hadoop/hadoop-env.sh 文件把 export  JAVA_HOME=${JAVA_HOME} 直接修改成絕對目錄 export JAVA_HOME=/usr/lib/jvm/java-8 既可解決。

  2. 提示 ERROR namenode.NameNode: java.io.IOException: Cannot create directory  /opt/bigdata/hadoop/tmp/dfs/name/current 的錯(cuò)誤,這是因?yàn)榕渲玫?/opt/bigdata/hadoop/tmp  目錄的寫入權(quán)限有問題,可以直接執(zhí)行 sudo chmod -R a+w /home/hadoop/tmp 即可解決。

接下來執(zhí)行 ./sbin/start-dfs.sh 來開啟 NameNode 和 DataNode 守護(hù)進(jìn)程,然后檢查 NameNode、DataNode  和 SecondaryNameNode 是否都已經(jīng)啟動成功,操作如下:

hadoop@ubuntu:/opt/bigdata/hadoop$ jps 4950 Jps 3622 SecondaryNameNode 3295 DataNode 2910 NameNode

啟動成功之后可以用瀏覽器來打開 http://localhost:50070/ 瀏覽 NameNode 的Web界面。

怎么搭建Hadoop運(yùn)行環(huán)境

到此為止,Hadoop 單節(jié)點(diǎn)集群(偽分布式)環(huán)境搭建就已經(jīng)成功了, 接下來運(yùn)行一個(gè) Hadoop 偽分布式實(shí)例。因?yàn)?Hadoop  單機(jī)模式是運(yùn)行的本地文件系統(tǒng),(偽)分布式模式則是運(yùn)行的 HDFS 上的數(shù)據(jù)。我們現(xiàn)在 HDFS 中創(chuàng)建用戶目錄,執(zhí)行目命令 ./bin/hdfs dfs  -mkdir -p /user/hadoop 即可,執(zhí)行如下命令將輸入文件復(fù)制到分布式文件系統(tǒng)中。

#這個(gè)可以不執(zhí)行,因?yàn)闀詣觿?chuàng)建好目錄的  #./bin/hdfs dfs -mkdir input ./bin/hdfs dfs -put etc/hadoop input #查看復(fù)制到HDFS的文件列表 ./bin/hdfs dfs -ls input

接下來運(yùn)行一個(gè) Hadoop 自帶的 mapreduce 實(shí)例看看效果吧,直接執(zhí)行如下命令。

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples- 2.9.1.jar grep input output 'dfs[a-z.]+'

使用 ./bin/hdfs dfs -cat output/* 命令查看運(yùn)行后在 HDFS 上的輸出文件列表,或者使用下面的命令拷貝到本地查看。

./bin/hdfs dfs -get output output ./cat output/*

關(guān)閉 Hadoop 直接使用 ./sbin/stop-dfs.sh 命令即可。

感謝各位的閱讀,以上就是“怎么搭建Hadoop運(yùn)行環(huán)境”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么搭建Hadoop運(yùn)行環(huán)境這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI