1. 程式人生 > >ubuntu 18.04下配置Hadoop 3.0.3

ubuntu 18.04下配置Hadoop 3.0.3

                        ubuntu 18.04下配置Hadoop 3.0.3

文章開始把我喜歡的這句話送個大家:這個世界上還有什麼比自己寫的程式碼執行在一億人的電腦上更酷的事情嗎,如果有那就是讓這個數字再擴大十倍


1.安裝虛擬機器設定Ubuntu作業系統(網上教程很多不再講述)

2.安裝SSH,設定SSH無密碼登陸

$ sudo apt-get install openssh-server   #安裝SSH server
$ ssh
localhost #登陸SSH,第一次登陸輸入yes $ exit #退出登入的ssh localhost $ cd ~/.ssh/ #如果沒法進入該目錄,執行一次ssh localhost $ ssh-keygen -t rsa  

輸入完  $ ssh-keygen -t rsa 語句以後,需要連續敲擊三次回車,如下圖:

其中,第一次回車是讓KEY存於預設位置,以方便後續的命令輸入。第二次和第三次是確定passphrase,相關性不大。兩次回車輸入完畢以後,如果出現類似於下圖所示的輸出,即成功:

之後再輸入:

$ cat ./id_rsa.pub >> ./authorized_keys #加入授權
$ ssh localhost                         #此時已不需密碼即可登入localhost,並可見下圖。如果失敗則可以搜尋SSH免密碼登入來尋求答案


 

3安裝jdk

*******此處有坑!!!!!!!!注意一定要下載jdk8或以下版本,最開始我下載的全新版本jdk 11,由於不兼容於是半天的配置時間。。。。。。。。。。。

首先在oracle官網下載 http://www.oracle.com/technetwork/java/javase/downloads/index.html 接下來進行安裝與環境變數配置


 

 

$ mkdir /usr/lib/jvm                           #建立jvm資料夾
$ sudo tar zxvf jdk-7u80-linux-x64.tar.gz  -C /usr/lib #/ 解壓到/usr/lib/jvm目錄下
$ cd /usr/lib/jvm                                 #進入該目錄
$ mv  jdk1.7.0_80 java                         #重新命名為java
$ vi ~/.bashrc                                 #給JDK配置環境變數

另外推薦使用vim來編輯環境變數

$ vim ~/.bashrc 

如果沒有vim,可以使用:

$sudo apt-get install vim

來進行下載。

在.bashrc檔案新增如下指令:

export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

 

在檔案修改完畢以後,輸入程式碼:

$ source ~/.bashrc                       #使新配置的環境變數生效
$ java -version                          #檢測是否安裝成功,檢視java版本
終端顯示Java版本即成功。

4.安裝hadoop-3.0.0

先下載hadoop-2.6.0.tar.gz,連結如下: 
http://mirrors.hust.edu.cn/apache/hadoop/common/

下面進行安裝:

$ sudo tar -zxvf  hadoop-3.0.3.tar.gz -C /usr/local    #解壓到/usr/local目錄下
$ cd /usr/local
$ sudo mv  hadoop-3.0.3    hadoop                      #重新命名為hadoop
$ sudo chown -R hadoop ./hadoop                        #修改檔案許可權

給hadoop配置環境變數,將下面程式碼新增到.bashrc檔案:

export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 同樣,執行source ~./bashrc使設定生效,並檢視hadoop是否安裝成功

5.分散式配置

Hadoop 可以在單節點上以偽分散式的方式執行,Hadoop 程序以分離的 Java 程序來執行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的檔案。Hadoop 的配置檔案位於 /usr/local/hadoop/etc/hadoop/ 中,偽分散式需要修改配置檔案 core-site.xml   hdfs-site.xml   hadoop-env.sh  yarn-site.xml mapred-site.xml  等5個檔案。

1.修改hadoop-env.sh檔案
首先將jdk的路徑添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh檔案。

2.修改core-site.xml檔案:

複製程式碼
<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
</configuration>
複製程式碼

 

3.修改配置檔案 hdfs-site.xml

複製程式碼
<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
複製程式碼

4.修改mapred-site.xml檔案

<configuration>
        <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.ShuffHandler</value>
        </property>
</configuration>

5.修改yarn-site.xml檔案

<configuration>
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
</configuration>

 

配置完成。

6.格式化

執行 NameNode 的格式化


 
  
$ ./bin/hdfs namenode -format

啟動namenode和datanode程序,並檢視啟動結果


 
  
$ ./sbin/start-dfs.sh
$ jps

啟動完成後,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下程序: “NameNode”、”DataNode” 和 “SecondaryNameNode” 

啟動Yarn程序,並檢視啟動結果

$ ./sbin/start-yarn.sh
$ jps
啟動完成後,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下程序: “ResourceManager”和”NodeManager” 

 也可start-all.sh 一次性啟動。

最後http:// localhost:8088/為hadoop web頁面

http:// localhost:50070/為HDFS頁面

 

加油吧,程式設計師!