1. 程式人生 > >在 kali linux 下搭建 hadoop 偽分散式系統

在 kali linux 下搭建 hadoop 偽分散式系統

記錄在 kali linux 下搭建 hadoop 偽分散式的過程:

1. 安裝和設定 JDK:

    1) kali 中預設已經安裝 Java,可以使用 java -version 檢查 Java的安裝情況;發現 java 的安裝檔名可能是 openjdk 

    2) 可以設定 java 的 JAVA_HOME, PATH, CLASSPATH:

          2.1 )  使用  find / -iname "*openjdk*", 查詢 JDK 的安裝位置; 發現   /usr/lib/jvm下有幾個 符合 openjdk 的檔案;

          2.2) 通過使用  ls -l 檢視詳情,發現 3個檔案中,2個是連結檔案,只有1個檔案是真實的 Jdk 安裝目錄;

          2.3 )  進入openjdk目錄,果然發現熟悉的 bin,dt.jar 等檔案,正是 jdk 的安裝目錄;

          2.4 )  可以在以下位置設定 環境變數: /etc/profile, or , ~/.bashrc 檔案中;設定語句如下:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2. 安裝 SSH:

    1) 先檢查 SSH 的安裝情況: ps -e | grep ssh, 預設情況下 kali 只安裝了 ssh - client, 沒有 ssh - server

    2 )  使用 apt-get install openssh-server 安裝 ssh 伺服器

           安裝過程中,發現 163 的源部分元件沒有,安裝失敗,於是切換 搜狐的源:搜狐源地址網上能找到,編輯下列檔案:

           /etc/apt/sours.list 檔案,刪除 163 源,改成 搜狐源,然後 ssh 安裝成功

    3) 安裝完成後,使用 ps -e | grep ssh, 發現沒有 sshd 服務,ssh伺服器沒有成功啟動

    4) 轉到目錄: /etc/init.d, 其中 發現 ssh 已經安裝

    5) 使用命令: service ssh start 啟動服務

    6) 再次使用  ps -e | grep ssh, 發現 sshd 服務已經正常啟動

    7) 根據 hadoop 要求, ssh的通訊需要取消ssh密碼,通過下列語句實現:

           ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

           cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    8) 使用  ssh localhost 命令,發現 已經成功連線, 同時沒有提示需要密碼,ssh 成功安裝

3.  安裝 hadoop:

    1) 下載,然後選擇目錄安裝: tar -xzvf hadoop-x.y.z.tar.gz

    2)  在 hadoop 的安裝目錄下, 設定 etc/hadoop/hadoop-env.sh 檔案中的 JAVA_HOME 路徑:

            export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

    3)  在  /etc/profile 中設定 hadoop 環境變數

            export HADOOP_HOME=/root/Codingtool/hadoop/hadoop-3.0.0
            export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    4)  測試 hadoop 安裝情況: hadoop version, 正常輸出,初步安裝成功

    5)  設定 hadoop, 按照 偽分散式的方式設定:

            設定配置檔案:core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, 在安裝目錄下的  etc/hadoop 中;

            

    6)  格式化 HDFS 檔案系統:

            hdfs namenode -format

4. 啟動 Hadoop:

    1)  在 Hadoop 的安裝目錄下,sbin/ 下,執行 ./start-all.sh 

    2)  執行結果提示 hadoop 系統中 root 使用者未註冊,每個啟動的服務都是類似的問題,於是按照 百度的資料更改設定檔案:

            》在 hadoop 安裝目錄,修改: sbin/start-dfs.sh, sbin/stop-dfs.sh: 

                在 start-dfs.sh 檔案中, # Start hadoop dfs daemons. 註釋前加上:

                HDFS_DATANODE_USER=root 
        HADOOP_SECURE_DN_USER=hdfs 
        HDFS_NAMENODE_USER=root 
        HDFS_SECONDARYNAMENODE_USER=root 

                在 stop-dfs.sh 檔案中做類似修改;

            》在 hadoop 安裝目錄,修改: sbin/start-yarn.sh, sbin/stop-yarn.sh: 

            在 yarn-dfs.sh 檔案中, # ## @description  usage info. 註釋前加上:

            YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

       在 stop-yarn.sh 檔案中做類似修改;

3)  再次執行  ./start-all.sh :

namenodes, datanodes, secondary namenodes, resourcemanager, nodemanagers 都成功啟動