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
下載好後,找到檔案所在位置(以我的為例,在下載目錄下)
-
cd ~/下載
-
mv ~/下載/jdk-8u161-linux-x64.tar.gz /usr/java //若提示許可權不夠,則進入root下操作
-
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