大資料之Hadoop偽分散式的搭建

行走的颱風發表於2019-04-23

大資料------Hadoop偽分散式的搭建

對於初學大資料的萌新來說,初次接觸Hadoop偽分散式搭建的同學可能是一臉萌筆的,那麼這一次小編就手把手的教大家在centos7下搭建Hadoop偽分散式。

底層環境: VMware Workstation 15.0,centos7

SSH工具: xshell

軟體包: hadoop-2.7.6.tar.gz jdk-8u201-linux-x64.tar.gz

由於對於大資料的學習初期的同學,對於centos的安裝應該非常熟練,故在這裡不詳述,這裡我們開始說具體的步驟:

這裡給出大家一個思維導圖,方便大家對於偽分散式搭建的理解:
思維導圖

第一步:網路配置

(1)查詢主機名

    查詢命令: hostname     
    修改命令: hostnamectl set-hostname   新的名字
         
    示例圖片 :

hostname

(2) 查詢IP 地址

	 查詢命令:ip add

	 註釋:   
	
	         ip add 適用於centos7及以後的版本;
	
	         ifconfig 適用於centos6及其以前的版本;
	
	 那麼問題來了,我們怎麼知道那個是我們的IP地址呢? 

當然,如此好的小編,在這裡給大家準備了具體的例項圖片:
網路卡資訊

  圖例解釋:

       ip add  就是我們上文提到的查詢IP地址的命令;

       172.17.54.7  就是我們需要的IP地址。

(3)設定/etc/hosts 檔案

      使用vim ,編輯/etc/hosts 檔案;

相信大家對於編輯檔案都是信手拈來,那麼我們看看具體哪個是/etc/hosts 檔案呢?
hosts
沒錯,這就是傳說中的/etc/hosts 檔案.

在這裡我們需要把我們查到的具體ip 地址輸入到我們的第三行,也就是紅線的地方;

背後我們需要加上空格輸入自己的主機名;

舉個栗子就是:192.168.255.230 你的主機名

(二)環境變數的配置

我們使用xshell將我的hadoop和jdk上傳到目錄下後,解壓。就可以開始配置環境變數了,我們在環境變數配置這一塊有很多個地

方,比如說/etc/profile和~/.bashrc。這兩個地方都是可以配置環境變數的。

		為了方便我們的後期的使用,我們這裡將hadoop和jdk進行了改名,因為他們的名字非常的長,不容易記憶。
所以我們需要對它進行簡單化操作,我們將其改名為hadoop和jdk1.8,方便我們的後期的配置,
為後文埋下伏筆。

這裡我們先看看具體的圖片,環境變數的檔案到底是何方神聖:
/etc/profile
沒錯,這就是傳說中的環境變數。

在這裡我們需要設定我們的jdk和hadoop的環境變數。

在小編紅線圈起來的地方,我來給大傢俱體詳解一下我們需要輸入的內容。

export  JAVA_HOME=你的jdk所在的路徑精確到jdk1.8      

// 此處我們設定Java的home

export HADOOP_HOME=你的hadoop所在的路徑精確到我們改名後的hadoop    

// 此處我們設定hadoop的home

export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH           

// 此處我們將我們設定好的兩個jdk和hadoop的home匯入環境變數
// ------/bin 這個目錄下存放的是常用的環境變數。

export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native        

// 此處我們具體設定我們hadoop常用的命令,也將他匯入進來。

exportPATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
$HADOOP_COMMON_LIB_NATIVE_DIR:$PATH 

// 此處我們將所有的配置都匯入環境變數之中。

配到這裡我們距離成功已經很近了,這是後我們需要重啟環境變數才能開始使用

source  /etc/profile 

// 重啟環境變數

如果重啟環境變數,沒有報錯。我們就可以開始檢視我們是否配置成功了

檢視jdk的版本號

 java -version

那麼我們怎麼知道是不是對的·呢?

小編在這裡給大家準備了具體的示例圖片:
檢視結果
如果查詢到的版本號和你下載的版本好相符,那麼我們的環境變數就大功告成了!!

這樣的話我們的配置差不多就走了二分之一了,接下來我們具體看Hadoop的配置如何走呢?

環境變數測試成功

(三)Hadoop的配置

對於Hadoop的檔案配置,我們需要配置大約有五個檔案,分別是:

(1) core-site.xml   (2)hdfs-site.xml  (3)hadoop-env.sh  (4)yarn-env.sh   (5)slaves

(1)core-site.xml

首先,給大家看看具體core-site.xml檔案的具體內容:
core-site.xml
然後我們開始上手編輯內容,切記我們多有的內容都必須寫在

<configuration>

		這裡寫我們編輯的內容
		
</configuration>

那麼我們需要寫什麼配置資訊呢?

這裡我們需要寫上我們的配置資訊先給大家看看模板:

模板資訊
那麼下來我們具體說一下這些程式碼都是啥意思

<property>

             <name>hadoop.tmp.dir</name>     // 設定儲存name,data檔案的存放檔案
             
             <value>file:/usr/local/hadoop/tmp</value>     // 設定此檔案的絕對路徑
             
             <description>zhushi</description>	//新增註釋,可有可無
             
        </property>
        
        <property>
        
             <name>fs.defaultFS</name>	 // 設定訪問此叢集的埠
             
             <value>hdfs://hadoop:9000</value>    //設定具體的IP,具體的埠,此處可以寫自己的主機名
             
 </property>

(2) hdfs-site.xml

接下來我們具體設定hdfs-site.xml檔案:
同樣的道理我們需要在

<configuration>

		這裡寫我們編輯的內容
		
</configuration>

這裡我也給出大家一個模板:
hdfs-site.xml
作為第一次發文章的我考慮到大家對這個不是很瞭解,繼續給大家講講具體的內容

<property>
             <name>dfs.replication</name>   //需要設定的資料塊
             
             <value>1</value>  	 // 這裡偽分散式為1
             
        </property>
        <property>
        
             <name>dfs.namenode.name.dir</name>			// 設定namenode的存放檔案
             
            <value>file:/usr/local/hadoop/tmp/dfs/name</value>  	//namenode檔案存放的絕對路徑
            
        </property>
        
        <property>
        
             <name>dfs.datanode.data.dir</name>		//	設定datanode的存放檔案

             <value>file:/usr/local/hadoop/tmp/dfs/data</value>		// 	設定datanode檔案存放的絕對路徑
             
</property>

(3) hadoop-env.sh

為了保證檔案的正確性,這是具體的檔案圖片:
hadoop-env.sh

export JAVA_HOME=/你的jdk存放路徑		可以參考你的環境變數的路徑

# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol.  Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}

export HADOOP_CONF_DIR=/你改名後的hadoop檔案的存放路徑/etc/hadoop    // 用來尋找你的hadoop的配置檔案

(4) yarn-env.sh

這裡的yarn-env.sh檔案配置非常的簡單,我們距離成功共可以說是近在咫尺了。
yarn-env.sh

export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"

# some Java parameters
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
if [ "$JAVA_HOME" != "" ]; then

  #echo "run java in $JAVA_HOME"
  
  JAVA_HOME=/usr/local/jdk1.8      //   這一行是我們需要配置的,我們j這裡需要加入jdk的檔案存放的路徑;
fi

if [ "$JAVA_HOME" = "" ]; then
  echo "Error: JAVA_HOME is not set."
  exit 1
fi

(5) slaves

這一塊我們需要插入具體的主機名,就是我們剛才的寫在/etc/hosts裡,IP地址之後的名字。
slaves

(四)配置免密操作

執行如下命令:

ssh -keygen -t rsa  // 進行免密操作

傳送金鑰到指定資料夾

ssh-copy-id -i .ssh/id_rsa.pub  使用者名稱字@192.168.x.xxx

(五)格式化hdfs

格式化命令

hdfs namenode -format

(六)叢集成功與否校驗

start-all.sh	//  啟動hdfs

啟動hdfs

start-yarn.sh    //   啟動守護程式

在這裡插入圖片描述
最後我們使用jps檢視自己的節點,這裡給大家配上圖片

jps		檢視叢集節點	

在這裡插入圖片描述
沒錯,如果到了這裡,你成功了,你就非常牛逼了,你就是萬中無一的建站奇才,升職加薪,走上人生巔峰,
指日可待。

(七)叢集web訪問

如果你希望通過web瀏覽器訪問叢集的華,那我們小編就來教你怎麼做

(1)關閉防火牆
systemctl stop firewalld.service
(2)關閉開機自啟
systemctl disable firewalld.service
(3)輸入你的ip地址加埠號
http://hostname:50070

這樣給大家看看最後的結果:
在這裡插入圖片描述

如果是這樣:那麼我們訪問差不多就成功了,確認是否有對應資料,沒有的話,就是存在問題,繼續檢查自己的程式碼資料,這是第一次寫部落格,如果有什麼問題,請大家指正,有什麼問題,大家可以在下方留言評論。謝謝大家

相關文章