對於初學大數據的萌新來講,初次接觸Hadoop僞分佈式搭建的同窗多是一臉萌筆的,那麼這一次小編就手把手的教你們在centos7下搭建Hadoop僞分佈式。java
底層環境: VMware Workstation 15.0,centos7node
SSH工具: xshelllinux
軟件包: hadoop-2.7.6.tar.gz jdk-8u201-linux-x64.tar.gzweb
因爲對於大數據的學習初期的同窗,對於centos的安裝應該很是熟練,故在這裏不詳述,這裏咱們開始說具體的步驟:shell
這裏給出你們一個思惟導圖,方便你們對於僞分佈式搭建的理解。vim
思惟導圖
centos
第一步:網絡配置瀏覽器
(1)查詢主機名bash
查詢命令: 網絡
hostname
修改命令:
hostnamectl set-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 文件呢?
沒錯,這就是傳說中的/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文件:
一樣的道理咱們須要在
<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
爲了保證文件的正確性,這是具體的文件圖片:
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文件配置很是的簡單,咱們距離成功共能夠說是近在咫尺了。
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地址以後的名字。
(四)配置免密操做
執行以下命令:
ssh-keygen -t rsa // 進行免密操做
發送密鑰到指定文件夾
ssh-copy-id -i .ssh/id_rsa.pub 用戶名字@192.168.x.xxx
(五)格式化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
這樣給你們看看最後的結果:
若是是這樣:那麼咱們訪問差很少就成功了,確認是否有對應數據,沒有的話,就是存在問題,繼續檢查本身的代碼數據,這是第一次寫博客,若是有什麼問題,請你們指正,有什麼問題,你們能夠在下方留言評論。謝謝你們