詳解Ubuntu16.04下Hadoop 2.7.3的安裝與配置
一、Java環(huán)境搭建
(1)下載JDK并解壓(當前操作系統(tǒng)為Ubuntu16.04,jdk版本為jdk-8u111-Linux-x64.tar.gz)
新建/usr/java目錄,切換到j(luò)dk-8u111-linux-x64.tar.gz所在目錄,將這個文件解壓縮到/usr/java目錄下。
tar -zxvf jdk-8u101-linux-x64.tar.gz -C /usr/java/
(2)設(shè)置環(huán)境變量
修改.bashrc,在最后一行寫入下列內(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
運行如下命令使環(huán)境變量生效。
source ~/.bashrc
打開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
打開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
驗證java環(huán)境是否配置成功
java -version
二、安裝ssh-server并實現(xiàn)免密碼登錄
(1)下載ssh-server
sudo apt-get install openssh-server
(2)啟動ssh
sudo /etc/init.d/ssh start
(3)查看ssh服務(wù)是否啟動,如果有顯示相關(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
測試是否免密碼登錄localhost
ssh localhost
關(guān)閉防火墻
ufw disable
三、安裝Hadoop單機模式和偽分布模式。
(1)下載hadoop-2.7.3.tar.gz,解壓到/usr/local(單機模式搭建)。
sudo tar zxvf hadoop-2.7.3.tar.gz -C /usr/local
切換到/usr/local下,將hadoop-2.7.3重命名為hadoop,并給/usr/local/hadoop設(shè)置訪問權(quán)限。
cd /usr/local sudo mv hadoop-2.7.3 hadoop sudo chmod 777 /usr/local/hadoop
(2)配置.bashrc文件
sudo vim ~/.bashrc
(如果沒有安裝vim,請用 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運行時產(chǎn)生文件的存儲目錄 --> <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)機重啟系統(tǒng)。
四、測試Hadoop是否安裝并配置成功。
(1)驗證Hadoop單機模式安裝完成
hadoop version
能夠顯示Hadoop的版本號即可說明單機模式已經(jīng)配置完成。
(2)啟動hdfs使用為分布模式。
格式化namenode
hdfs namenode -format
有 "……h(huán)as been successfully formatted" 等字樣出現(xiàn)即說明格式化成功。注意:每次格式化都會生成一個namenode對應(yīng)的ID,多次格式化之后,如果不改變datanode對應(yīng)的ID號,運行wordcount向input中上傳文件時會失敗。
啟動hdfs
start-all.sh
顯示進程
jps
在瀏覽器中輸入http://localhost:50070/,出現(xiàn)如下頁面
輸入 http://localhost:8088/,出現(xiàn)如下頁面
則說明偽分布安裝配置成功了。
停止hdfs
stop-all.sh
五、運行wordcount
(1)啟動hdfs。
start-all.sh
(2)查看hdfs底下包含的文件目錄
hadoop dfs -ls /
如果是第一次運行hdfs,則什么都不會顯示。
(3)在hdfs中創(chuàng)建一個文件目錄input,將/usr/local/hadoop/README.txt上傳至input中。
hdfs dfs -mkdir /input hadoop fs -put /usr/local/hadoop/README.txt /input
(4)執(zhí)行以下命令運行wordcount,并將結(jié)果輸出到output中。
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output
出現(xiàn)類似上圖的頁面說明wordcount運行成功。注意:請將圖中紅色線框中的內(nèi)容替換為自己的hadoop-mapreduce-examples-2.7.3.jar文件的路徑信息。
(5)執(zhí)行成功后output 目錄底下會生成兩個文件 _SUCCESS 成功標志的文件,里面沒有內(nèi)容。 一個是 part-r-00000 ,通過以下命令查看執(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,每個datanode的情況 hadoop dfsadmin -safemode leave 離開安全模式 hadoop dfsadmin -safemode enter 進入安全模式
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
怎樣給centos系統(tǒng)擴展磁盤分區(qū)的實現(xiàn)方法
這篇文章主要介紹了怎樣給centos系統(tǒng)擴展磁盤分區(qū)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12ubuntu 16.04 LTS 安裝mongodb 3.2.8教程
本篇文章主要介紹了ubuntu 16.04 LTS 安裝mongodb 3.2.8教程,具有一定的參考價值,有需要的可以了解一下。2017-04-04linux下實現(xiàn)web數(shù)據(jù)同步的四種方式(性能比較)
這篇文章主要介紹了linux下常用的四種web數(shù)據(jù)同步方法,并且說明了每個方法的功能與優(yōu)勢,需要的朋友可以參考下2013-09-09Linux下Squid代理服務(wù)器的架設(shè)與維護經(jīng)驗分享
現(xiàn)有Chinanet ip 126個,不可能分給所有的用戶使用。通過架設(shè)代理服務(wù)器來實現(xiàn)讓所有用戶使用網(wǎng)絡(luò)資源是最簡單并且相對安全和可靠的方法。2011-06-06Centos修改DNS重啟或重啟network服務(wù)后丟失問題解決方法
這篇文章主要介紹了Centos修改DNS重啟或重啟network服務(wù)后丟失問題解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12Linux使用watch命令監(jiān)控Docker容器狀態(tài)的操作方法
在現(xiàn)代的開發(fā)和運維環(huán)境中,容器化技術(shù)已經(jīng)成為一種重要的趨勢,而Docker作為最流行的容器化平臺之一,Linux中的watch命令就是一個非常有用的工具,它可以幫助我們定期執(zhí)行指定的命令,并全屏顯示輸出,本文給大家介紹了在Linux中使用watch命令監(jiān)控Docker容器狀態(tài)2024-10-10