一、Java環境搭建
(1)下載JDK并解壓(當前操作系統為Ubuntu16.04,jdk版本為jdk-8u111-Linux-x64.tar.gz)
新建/usr/java目錄,切換到jdk-8u111-linux-x64.tar.gz所在目錄,將這個文件解壓縮到/usr/java目錄下。
tar -zxvf jdk-8u101-linux-x64.tar.gz -C /usr/java/
(2)設置環境變量
修改.bashrc,在最后一行寫入下列內容。
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
運行如下命令使環境變量生效。
source ~/.bashrc
打開profile文件,插入java環境配置節。
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
使配置生效
source /etc/environment
驗證java環境是否配置成功
java -version
二、安裝ssh-server并實現免密碼登錄
(1)下載ssh-server
sudo apt-get install openssh-server
(2)啟動ssh
sudo /etc/init.d/ssh start
(3)查看ssh服務是否啟動,如果有顯示相關ssh字樣則表示成功。
ps -ef|grep ssh
(4)設置免密碼登錄
使用如下命令,一直回車,直到生成了rsa。
ssh-keygen -t rsa
導入authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
測試是否免密碼登錄localhost
ssh localhost
關閉防火墻
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設置訪問權限。
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 安裝。)
在文件末尾追加下面內容,然后保存。
#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
執行下面命令,使添加的環境變量生效:
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目錄下創建 /home/lyh/hadoop_tmp目錄,然后在core-site.xml中添加下列內容。
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運行時產生文件的存儲目錄 --> <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副本的數量 --> <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)關機重啟系統。
四、測試Hadoop是否安裝并配置成功。
(1)驗證Hadoop單機模式安裝完成
hadoop version
能夠顯示Hadoop的版本號即可說明單機模式已經配置完成。
(2)啟動hdfs使用為分布模式。
格式化namenode
hdfs namenode -format
有 "……has been successfully formatted" 等字樣出現即說明格式化成功。注意:每次格式化都會生成一個namenode對應的ID,多次格式化之后,如果不改變datanode對應的ID號,運行wordcount向input中上傳文件時會失敗。
啟動hdfs
start-all.sh
顯示進程
jps
在瀏覽器中輸入http://localhost:50070/,出現如下頁面
輸入 http://localhost:8088/,出現如下頁面
則說明偽分布安裝配置成功了。
停止hdfs
stop-all.sh
五、運行wordcount
(1)啟動hdfs。
start-all.sh
(2)查看hdfs底下包含的文件目錄
hadoop dfs -ls /
如果是第一次運行hdfs,則什么都不會顯示。
(3)在hdfs中創建一個文件目錄input,將/usr/local/hadoop/README.txt上傳至input中。
hdfs dfs -mkdir /input hadoop fs -put /usr/local/hadoop/README.txt /input
(4)執行以下命令運行wordcount,并將結果輸出到output中。
出現類似上圖的頁面說明wordcount運行成功。注意:請將圖中紅色線框中的內容替換為自己的hadoop-mapreduce-examples-2.7.3.jar文件的路徑信息。
(5)執行成功后output 目錄底下會生成兩個文件 _SUCCESS 成功標志的文件,里面沒有內容。 一個是 part-r-00000 ,通過以下命令查看執行的結果,如下圖。
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狀態,比如有哪些datanode,每個datanode的情況 hadoop dfsadmin -safemode leave 離開安全模式 hadoop dfsadmin -safemode enter 進入安全模式
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選