大資料------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 新的名字`
示例圖檔 :
(2) 查詢IP 位址
查詢指令:
ip add
注釋:
ip add
适用于
Centos
7及以後的版本;
ifconfig
适用于
Centos
6及其以前的版本;
那麼問題來了,我們怎麼知道那個是我們的IP位址呢?
當然,如此好的小編,在這裡給大家準備了具體的執行個體圖檔:
圖例解釋:
ip add
就是我們上文提到的查詢IP位址的指令;
172.17.54.7
就是我們需要的IP位址。
(3)設定
/etc/hosts
檔案
使用
vim
,編輯
/etc/hosts
檔案;
相信大家對于編輯檔案都是信手拈來,那麼我們看看具體哪個是
/etc/hosts
檔案呢?
沒錯,這就是傳說中的
/etc/hosts
檔案.
在這裡我們需要把我們查到的具體ip 位址輸入到我們的第三行,也就是紅線的地方;
背後我們需要加上空格輸入自己的主機名;
舉個栗子就是:
192.168.255.230
你的主機名
(二)環境變量的配置
我們使用xshell将我的hadoop和jdk上傳到目錄下後,解壓。就可以開始配置環境變量了,我們在環境變量配置這一塊有很多個地
方,比如說
/etc/profile
和
~/.bashrc
。這兩個地方都是可以配置環境變量的。
為了友善我們的後期的使用,我們這裡将hadoop和jdk進行了改名,因為他們的名字非常的長,不容易記憶。
是以我們需要對它進行簡單化操作,我們将其改名為hadoop和jdk1.8,友善我們的後期的配置,
為後文埋下伏筆。
這裡我們先看看具體的圖檔,環境變量的檔案到底是何方神聖:
沒錯,這就是傳說中的環境變量。
在這裡我們需要設定我們的
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
檔案的具體内容:
然後我們開始上手編輯内容,切記我們多有的内容都必須寫在
<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
接下來我們具體設定
hdfs-site.xml
檔案:
同樣的道理我們需要在
<configuration>
這裡寫我們編輯的内容
</configuration>
這裡我也給出大家一個模闆:
作為第一次發文章的我考慮到大家對這個不是很了解,繼續給大家講講具體的内容
<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
slaves
這一塊我們需要插入具體的主機名,就是我們剛才的寫在/etc/hosts裡,IP位址之後的名字。
(四)配置免密操作
執行如下指令:
ssh -keygen -t rsa // 進行免密操作
發送密鑰到指定檔案夾
ssh-copy-id -i .ssh/id_rsa.pub 使用者名字@192.168.x.xxx
(五)格式化 hdfs
hdfs
格式化指令
hdfs namenode -format
(六)叢集成功與否校驗
start-all.sh // 啟動hdfs
start-yarn.sh // 啟動守護程序
最後我們使用jps檢視自己的節點,這裡給大家配上圖檔
jps 檢視叢集節點
沒錯,如果到了這裡,你成功了,你就非常牛逼了,你就是萬中無一的建站奇才,升職加薪,走上人生巅峰,
指日可待。
(七)叢集web通路
如果你希望通過web浏覽器通路叢集的華,那我們小編就來教你怎麼做
(1)關閉防火牆
systemctl stop firewalld.service
(2)關閉開機自啟
systemctl disable firewalld.service
(3)輸入你的ip位址加端口号
http://hostname:50070
這樣給大家看看最後的結果:
如果是這樣:那麼我們通路差不多就成功了,确認是否有對應資料,沒有的話,就是存在問題,繼續檢查自己的代碼資料,這是第一次寫部落格,如果有什麼問題,請大家指正,有什麼問題,大家可以在下方留言評論。謝謝大家