1. 程式人生 > >windows子系統(wsl) Ubuntu16.04 下安裝hadoop

windows子系統(wsl) Ubuntu16.04 下安裝hadoop

使用命令檢視系統版本

sudo lsb_release -a

 

1.準備工作

1.1 建立hadoop使用者

01:先開啟終端(Ctrl+Alt+T)

鍵入指令:

sudo useradd -m hadoop -s /bin/bash

 

02:設定使用者hadoop的登入密碼

sudo passwd hadoop

 

提示會要求輸入兩次密碼(鍵入密碼不會顯示),這裡我就用的hadoop。

03:為使用者hadoop增加管理員許可權

sudo adduser hadoop sudo

 

(雖然增加了管理員許可權,但後面有些地方還是需要進入root使用者進行操作)

1.2 更新apt

接下來登出,登入到hadoop使用者下。

為了安裝一些軟體,我們需要更新apt

sudo apt-get update 

 

 

1.3 安裝SSH並配置SSH無密碼登入

之前配置過hadoop的同學們,肯定是知道這個的。

網上是說Ubuntu已經自帶了SSH client,還需要安裝SSH server

sudo apt-get install openssh-server

這裡安裝完後如果重啟了wsl下並不會啟動sshd,必須手動啟動

sudo service ssh restart

這裡可用新增到 vi /etc/profile  裡啟動時可以自動執行

使用命令登入本機

這樣做了,我們每次登入還是會需要輸入密碼。

接下來配置SSH無密碼登入

SSH設定和金鑰生成

SSH設定需要在叢集上執行不同的操作,如啟動,停止和分散式守護shell操作。進行身份驗證不同的Hadoop使用者,需要一種用於Hadoop的使用者提供的公鑰/私鑰對,並用不同的使用者共享。

以下的命令被用於生成使用SSH金鑰值對。複製公鑰從id_rsa.pub為authorized_keys,並提供所有者,讀寫許可權到authorized_keys檔案。

 

# su hadoop

$ ssh-keygen -t rsa

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

$ chmod 0600 ~/.ssh/authorized_keys

驗證ssh

ssh localhost

接下來可以再次嘗試ssh localhost,如若無需再次輸入密碼,既成功。

 

 

 

 

 

1.4 安裝Java環境

01:下載和安裝jdk

這裡選擇的版本是1.8.0_161

JDK1.8.0_161 64bit下載

下載好後,找到檔案所在位置(以我的為例,在下載目錄下)

  1. cd ~/下載

  2. mv ~/下載/jdk-8u161-linux-x64.tar.gz /usr/java //若提示許可權不夠,則進入root下操作

  3. tar -xvf /usr/java/jdk-8u161-linux-x64.tar.gz


可以在對應的路徑下找到解壓好的jdk檔案

02:配置環境變數

 vi /etc/profile 


將如下環境變數寫入檔案的最後(i鍵,對文件開始編輯)

 

export JAVA_HOME=/usr/java/jdk1.8.0_161/
export CLASSPATH=/usr/java/jdk1.8.0_161/lib/*

儲存,退出。(Esc--:wq)

接下來需要讓環境變數生效:

source /etc/profile

 

檢查是否配置正確:

java -version

 

還有一種安裝方法可以參考:

https://www.cnblogs.com/smiler/p/6939913.html

這裡安裝完 java 在 /usr/lib/jvm/java-8-oracle 裡

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
export CLASSPATH=/usr/lib/jvm/java-8-oracle/lib/*

 

2.安裝Hadoop

到這裡可以找最新的hadoop

http://mirrors.advancedhosters.com/apache/hadoop/common/

http://hadoop.apache.org/releases.html

 

cd /usr/local/

wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-3.1.0/hadoop-3.1.0.tar.gz

tar -vzxf hadoop-3.1.0.tar.gz

mv hadoop-3.1.0  hadoop

cd hadoop

./bin/hadoop version

 

 

可以通過附加下面的命令在 vi /etc/profile檔案中以設定 Hadoop 環境變數。

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

現在,應用所有更改到當前正在執行的系統。

source /etc/profile

 

3.Hadoop偽分散式配置

01. 配置core-site.xml

core-site.xml檔案中包含,如:用於Hadoop例項的埠號,分配給檔案系統,儲存器限制用於儲存資料儲存器和讀/寫緩衝器的大小的資訊。

vim /usr/local/hadoop/etc/hadoop/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>

02. 配置hadoop-env.sh

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

 

找到被註釋掉的JAVA_HOME

 

03. 配置hdfs-site.xml

hdfs-site.xml檔案中包含,如:複製資料的值,NameNode的路徑,本地檔案系統,要儲存Hadoop基礎架構的Datanode路徑的資訊。

vi /usr/local/hadoop/etc/hadoop/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>

注:上面的檔案,所有的屬性值是使用者定義的,可以根據自己的Hadoop的基礎架構進行更改。

配置完成後,執行NameNode的格式化

/usr/local/hadoop/bin/hdfs namenode -format

驗證Hadoop安裝

下面的步驟是用來驗證Hadoop的安裝。

第1步 - 名稱節點設定

設定名稱節點使用“hdfs namenode -format”命令如下

$ /usr/local/hadoop/bin/hdfs namenode -format

 

預期的結果如下。

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/ 

第2步 - 驗證Hadoop DFS

下面的命令用來啟動DFS。執行這個命令將啟動Hadoop檔案系統。

這裡不能再root下執行,切換到 hadoop使用者下執行

 

#su hadoop
sudo /usr/local/hadoop/sbin/start-dfs.sh

這裡如果出現許可權問題

執行命令

sudo chown -R hadoop:root /usr/local/hadoop

把hadoop目錄所有使用者改到hadoop上

再次執行命令

 /usr/local/hadoop/sbin/start-dfs.sh

就是成功了

至此,完成配置,可通過jps檢視是否啟動成功。

 

訪問Hadoop上的瀏覽器

訪問Hadoop的預設埠號為50070。使用以下網址,以獲取Hadoop服務在瀏覽器中。

http://localhost:50070

 

若發現404問題

1. 手動修改hdfs-site.xml 新增如下:

<property>
  <name>dfs.http.address</name>
  <value>127.0.0.1:50070</value>
</property>

127.0.0.1是對應的localhost地址

 

yarn-site.xml

此檔案用於配置成yarn在Hadoop中。開啟yarn-site.xml檔案,並在<configuration><configuration>標籤之前新增以下屬性到這個檔案中。

vi /usr/local/hadoop/etc/hadoop/yarn-site.xml

<configuration>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
</configuration>

mapred-site.xml

此檔案用於指定MapReduce框架以使用。預設情況下Hadoop包含yarn-site.xml模板。首先,它需要從mapred-site.xml複製模板到mapred-site.xml檔案,使用下面的命令來。

vi /usr/local/hadoop/etc/hadoop/mapred-site.xml

如果存在不存在 mapred-site.xml 檔案 
$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

開啟 mapred-site.xml 檔案,並在<configuration> 和 </configuration>標籤之間新增以下屬性。

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

 驗證Yarn指令碼

下面的命令用來啟動yarn指令碼。執行此命令將啟動yarn守護程序。

$ sudo /usr/local/hadoop/sbin/start-yarn.sh

 

驗證叢集中的所有應用程式

訪問群集的所有應用程式的預設埠號為8088。使用以下URL訪問該服務。

http://localhost:8088/

 

 

部分轉載 : https://blog.csdn.net/guomei_eros/article/details/79513597 

 

之後如果要啟動hadoop可以用以下命令批量啟動

/usr/local/hadoop/sbin/start-all.sh