詳解Ubuntu16.04下Hadoop 2.7.3的安裝與配置
一、Java環(huán)境搭建
(1)下載JDK并解壓(當(dāng)前操作系統(tǒng)為Ubuntu16.04,jdk版本為jdk-8u111-Linux-x64.tar.gz)
新建/usr/java目錄,切換到j(luò)dk-8u111-linux-x64.tar.gz所在目錄,將這個(gè)文件解壓縮到/usr/java目錄下。
tar -zxvf jdk-8u101-linux-x64.tar.gz -C /usr/java/
(2)設(shè)置環(huán)境變量
修改.bashrc,在最后一行寫(xiě)入下列內(nèi)容。
sudo vim ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_111 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
運(yùn)行如下命令使環(huán)境變量生效。
source ~/.bashrc
打開(kāi)profile文件,插入java環(huán)境配置節(jié)。
sudo vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_111 export JAVA_BIN=$JAVA_HOME/bin export JAVA_LIB=$JAVA_HOME/lib export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar export PATH=$JAVA_HOME/bin:$PATH
打開(kāi)environment 文件,追加jdk目錄和jdk下的lib的目錄,如下所示。
sudo vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/jdk1.8.0_111/lib:/usr/java/jdk1.8.0_111"
使配置生效
source /etc/environment
驗(yàn)證java環(huán)境是否配置成功
java -version
二、安裝ssh-server并實(shí)現(xiàn)免密碼登錄
(1)下載ssh-server
sudo apt-get install openssh-server
(2)啟動(dòng)ssh
sudo /etc/init.d/ssh start
(3)查看ssh服務(wù)是否啟動(dòng),如果有顯示相關(guān)ssh字樣則表示成功。
ps -ef|grep ssh
(4)設(shè)置免密碼登錄
使用如下命令,一直回車,直到生成了rsa。
ssh-keygen -t rsa
導(dǎo)入authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
測(cè)試是否免密碼登錄localhost
ssh localhost
關(guān)閉防火墻
ufw disable
三、安裝Hadoop單機(jī)模式和偽分布模式。
(1)下載hadoop-2.7.3.tar.gz,解壓到/usr/local(單機(jī)模式搭建)。
sudo tar zxvf hadoop-2.7.3.tar.gz -C /usr/local
切換到/usr/local下,將hadoop-2.7.3重命名為hadoop,并給/usr/local/hadoop設(shè)置訪問(wèn)權(quán)限。
cd /usr/local sudo mv hadoop-2.7.3 hadoop sudo chmod 777 /usr/local/hadoop
(2)配置.bashrc文件
sudo vim ~/.bashrc
(如果沒(méi)有安裝vim,請(qǐng)用 sudo apt install vim 安裝。)
在文件末尾追加下面內(nèi)容,然后保存。
#HADOOP VARIABLES START export JAVA_HOME=/usr/java/jdk1.8.0_111 export HADOOP_INSTALL=/usr/local/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_MAPRED_HOME=$HADOOP_INSTALL export HADOOP_COMMON_HOME=$HADOOP_INSTALL export HADOOP_HDFS_HOME=$HADOOP_INSTALL export YARN_HOME=$HADOOP_INSTALL export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib" #HADOOP VARIABLES END
執(zhí)行下面命令,使添加的環(huán)境變量生效:
source ~/.bashrc
(3)hadoop配置 (偽分布模式搭建)
配置hadoop-env.sh
sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# The java implementation to use. export JAVA_HOME=/usr/java/jdk1.8.0_111 export HADOOP=/usr/local/hadoop export PATH=$PATH:/usr/local/hadoop/bin
配置yarn-env.sh
sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ JAVA_HOME=/usr/java/jdk1.8.0_111
配置core-site.xml,在home目錄下創(chuàng)建 /home/lyh/hadoop_tmp目錄,然后在core-site.xml中添加下列內(nèi)容。
sudo mkdir /home/lyh/hadoop_tmp
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration> <!-- 指定HDFS老大(namenode)的通信地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!-- 指定hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/home/lyh/hadoop_tmp</value> </property> </configuration>
配置hdfs-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration> <!-- 指定HDFS副本的數(shù)量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
配置yarn-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>127.0.0.1:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>127.0.0.1:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>127.0.0.1:8031</value> </property> </configuration>
(4)關(guān)機(jī)重啟系統(tǒng)。
四、測(cè)試Hadoop是否安裝并配置成功。
(1)驗(yàn)證Hadoop單機(jī)模式安裝完成
hadoop version
能夠顯示Hadoop的版本號(hào)即可說(shuō)明單機(jī)模式已經(jīng)配置完成。
(2)啟動(dòng)hdfs使用為分布模式。
格式化namenode
hdfs namenode -format
有 "……h(huán)as been successfully formatted" 等字樣出現(xiàn)即說(shuō)明格式化成功。注意:每次格式化都會(huì)生成一個(gè)namenode對(duì)應(yīng)的ID,多次格式化之后,如果不改變datanode對(duì)應(yīng)的ID號(hào),運(yùn)行wordcount向input中上傳文件時(shí)會(huì)失敗。
啟動(dòng)hdfs
start-all.sh
顯示進(jìn)程
jps
在瀏覽器中輸入http://localhost:50070/,出現(xiàn)如下頁(yè)面
輸入 http://localhost:8088/,出現(xiàn)如下頁(yè)面
則說(shuō)明偽分布安裝配置成功了。
停止hdfs
stop-all.sh
五、運(yùn)行wordcount
(1)啟動(dòng)hdfs。
start-all.sh
(2)查看hdfs底下包含的文件目錄
hadoop dfs -ls /
如果是第一次運(yùn)行hdfs,則什么都不會(huì)顯示。
(3)在hdfs中創(chuàng)建一個(gè)文件目錄input,將/usr/local/hadoop/README.txt上傳至input中。
hdfs dfs -mkdir /input hadoop fs -put /usr/local/hadoop/README.txt /input
(4)執(zhí)行以下命令運(yùn)行wordcount,并將結(jié)果輸出到output中。
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output
出現(xiàn)類似上圖的頁(yè)面說(shuō)明wordcount運(yùn)行成功。注意:請(qǐng)將圖中紅色線框中的內(nèi)容替換為自己的hadoop-mapreduce-examples-2.7.3.jar文件的路徑信息。
(5)執(zhí)行成功后output 目錄底下會(huì)生成兩個(gè)文件 _SUCCESS 成功標(biāo)志的文件,里面沒(méi)有內(nèi)容。 一個(gè)是 part-r-00000 ,通過(guò)以下命令查看執(zhí)行的結(jié)果,如下圖。
hadoop fs -cat /output/part-r-00000
附:hdfs常用命令
hadoop fs -mkdir /tmp/input 在HDFS上新建文件夾 hadoop fs -put input1.txt /tmp/input 把本地文件input1.txt傳到HDFS的/tmp/input目錄下 hadoop fs -get input1.txt /tmp/input/input1.txt 把HDFS文件拉到本地 hadoop fs -ls /tmp/output 列出HDFS的某目錄 hadoop fs -cat /tmp/ouput/output1.txt 查看HDFS上的文件 hadoop fs -rmr /home/less/hadoop/tmp/output 刪除HDFS上的目錄 hadoop dfsadmin -report 查看HDFS狀態(tài),比如有哪些datanode,每個(gè)datanode的情況 hadoop dfsadmin -safemode leave 離開(kāi)安全模式 hadoop dfsadmin -safemode enter 進(jìn)入安全模式
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Apache?Common將java對(duì)象池化的問(wèn)題
對(duì)象被創(chuàng)建后,使用完畢不是立即銷毀回收對(duì)象,而是將對(duì)象放到一個(gè)容器保存起來(lái),下次使用的時(shí)候不用創(chuàng)建對(duì)象,而是從容器中直接獲取,這篇文章主要介紹了利用Apache?Common將java對(duì)象“池化”,需要的朋友可以參考下2022-06-06怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法
這篇文章主要介紹了怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12ubuntu 16.04 LTS 安裝mongodb 3.2.8教程
本篇文章主要介紹了ubuntu 16.04 LTS 安裝mongodb 3.2.8教程,具有一定的參考價(jià)值,有需要的可以了解一下。2017-04-04linux下實(shí)現(xiàn)web數(shù)據(jù)同步的四種方式(性能比較)
這篇文章主要介紹了linux下常用的四種web數(shù)據(jù)同步方法,并且說(shuō)明了每個(gè)方法的功能與優(yōu)勢(shì),需要的朋友可以參考下2013-09-09Linux下Squid代理服務(wù)器的架設(shè)與維護(hù)經(jīng)驗(yàn)分享
現(xiàn)有Chinanet ip 126個(gè),不可能分給所有的用戶使用。通過(guò)架設(shè)代理服務(wù)器來(lái)實(shí)現(xiàn)讓所有用戶使用網(wǎng)絡(luò)資源是最簡(jiǎn)單并且相對(duì)安全和可靠的方法。2011-06-06Centos修改DNS重啟或重啟network服務(wù)后丟失問(wèn)題解決方法
這篇文章主要介紹了Centos修改DNS重啟或重啟network服務(wù)后丟失問(wèn)題解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Linux使用watch命令監(jiān)控Docker容器狀態(tài)的操作方法
在現(xiàn)代的開(kāi)發(fā)和運(yùn)維環(huán)境中,容器化技術(shù)已經(jīng)成為一種重要的趨勢(shì),而Docker作為最流行的容器化平臺(tái)之一,Linux中的watch命令就是一個(gè)非常有用的工具,它可以幫助我們定期執(zhí)行指定的命令,并全屏顯示輸出,本文給大家介紹了在Linux中使用watch命令監(jiān)控Docker容器狀態(tài)2024-10-10