1. 程式人生 > >Hadoop叢集搭建一:Single node cluster

Hadoop叢集搭建一:Single node cluster

Hadoop叢集搭建一:Single node cluster

本文主要介紹在單個ubantu機器上搭建hadoop叢集。

1.ubuntu虛擬機器安裝

採用Vmware workstation10工具來安裝ubuntu系統,ubuntu使用的是64位的18.04-desktop版本,具體安裝過程可自行Google,此處不再詳細說明。

給出資源下載連結:

ubuntu-18.04-desktop-amd64.iso(密碼:qpkx)

2.使用XShell連線ubuntu虛擬機器

(1) 在連線之前需要檢視虛擬機器的ip地址,使用命令:ifconfig -a,但系統剛安裝好會提示系統沒有該命令,需要通過sudo apt install net-tools來安裝,於是執行命令:sudo apt install net-tools,但之後系統會提示“無法定位到net-tools軟體包”,這是因為沒有更新軟體源,此時更新軟體源:sudo apt-get update,更新完成之後,再次執行:sudo apt install net-tools,即可正常執行,此時檢視ip:ifconfig -a。(紅框所示即為本機ip地址)

(2) 此時我們需要繼續設定sshd服務,因為XShell軟體是基於這個sshd服務的22埠進行連線的。

首先需要安裝該服務:sudo apt-get install openssh-server,安裝完成之後,檢視該服務是否安裝:ps -e|grep ssh,,若顯示的資訊中有ssh而沒有sshd,則需要開啟該服務:sudo service ssh start。

設定完之後,既可以通過XShell連線ubuntu虛擬機器了,Happy!(以下執行的操作即可在windows環境執行,不用在切換系統)

3.在ubuntu機器中安裝Java

因為整個hadoop環境是基於Java開發的,所以必須安裝Java基礎環境。

執行命令:sudo apt-get install default-jdk,網速給力的話幾分鐘就可以執行完畢!

安裝完檢視Java版本:java -version

檢視Java存放的資料夾:update-alternatives --display java

4.建立ssh無密碼登入本機

使用“stephen”賬戶登入系統,安裝SSH:sudo apt-get install ssh

安裝rsync:sudo apt-get install rsync

生成SSH金鑰,執行命令:ssh-keygen -t dsa -P ' ' -f ~/.ssh/id_dsa

檢視金鑰:ll ~/.ssh

將生成的金鑰檔案追加到驗證檔案:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

此時登入本機:ssh localhost

5.hadoop環境檔案配置

(1) 下載hadoop-2.6.0包

hadoop-2.6.0-tar.gz

通過xftp工具將這個hadoop包傳送到ubuntu虛擬機器中。,使用:sudo tar -zxvf hadoop-2.6.0.tar.gz解壓,然後移動:sudo mv hadoop-2.6.0 /usr/local/hadoop

然後進入配置檔案的路徑:cd /usr/local/hadoop/etc/hadoop(再次強調,使用自己的路徑)

(2)配置環境配置檔案(紅框所示):

各檔案配置內容:

1.修改~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
儲存,
執行 source ~/.bashrc

2.hadoop-env.sh檔案
將JAVA_HOME檔案配置為本機JAVA_HOME路徑


3.修改core-site.xml:
<configuration>
<property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
</property>
</configuration>

4.修改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>

</configuration>

5.修改mapred-site.xml
<configuration>

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

</configuration>

6.修改hdfs-site.xml
<configuration>

<property>
   <name>dfs.replication</name>
   <value>3</value>
</property>
<property>
   <name>dfs.namenode.name.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

</configuration>

6.初始化環境

(1) 在配置完檔案後,建立namenode和datanode兩個資料夾:

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

修改所有權:sudo chown -R  stephen:stephen /usr/local/hadoop

(2) hadoop格式化

hdfs namenode -format

7.啟動hdfs

有兩種啟動方式:

方式1: 執行:start-dfs.sh ; 然後執行:start-yarn.sh

方式2:start-all.sh

中間過程中會要求輸入yes/no,以及使用者密碼

啟動成功後,可以通過jps命令各個工作的節點。

8.檢視ResourceManager和datanode相關資訊

開啟ubuntu系統中的火狐瀏覽器,在位址列輸入:http://localhost:8088,即可進入ResourceManager介面,檢視namenode節點資訊。

在位址列輸入:http://localhost:50070,即可檢視當前HDFS與datanode節點資訊。

PS:問題記錄

      1.Linux資料夾許可權

         

          第一列共有十位
          第一位,d:表示是一個目錄,-:表示一個普通的檔案
          第2-4位:rwx:分別表示讀,寫,執行,這裡顯示為rwx表示檔案所有者對該檔案擁有讀寫執行的權利(補充一點,rwx用數字表示為4,2,1)
          第5-7位:r-x:表示與該檔案所有者的同組使用者擁有該檔案的讀和執行的許可權
          第8-10位:r-x:表示其他組的使用者對該檔案擁有讀和執行的權利

    2:linux基本命令
         檢視使用者所屬使用者組   id hostname / groups hostname

         vim命令: 查詢:/xxxx

                          清空: gg  dG