大數據學習系列(八)Hadoop1.X全分佈式項目及環境搭建

一、環境準備

1.準備四臺虛擬機,虛擬機安裝及克隆,配置ip請移步另一篇博客:https://blog.csdn.net/qq_40825301/article/details/105214440

2.每臺虛擬機修改hostname,我四臺虛擬機配置的是 eleven-2,eleven-3,eleven-4,eleven-5.

命令:
vi    /etc/sysconfig/network

編輯後保存:

3.每臺虛擬機配置hosts.:  命令    vi   /etc/hosts

4.永久性的關閉防火牆,四臺虛擬機。避免之後啓動hadoop發生錯誤找不到原因。

最終配置的四臺虛擬機爲 :(再次提示關閉防火牆)

hostname ip 該機上要配置的角色
eleven-2 192.168.40.33 namenode
eleven-3 192.168.40.34 secondary namenode ,datanode
eleven-4 192.168.40.35 datanode
eleven-5 192.168.40.36 datanode

二、環境搭建

2.1從節點要對主節點免密訪問,即eleven-2要能免密訪問 eleven-5,eleven-4 eleven-3。

1.將eleven-2下的.ssh文件下的公鑰文件id_dsa.pub 分發至另外三臺虛擬機的同目錄下
scp  id_dsa.pub   root@eleven-3:/root/.ssh/
2.在另外三臺服務器上操作,將eleven-2的公鑰添加至驗證文件中
cat  id_dsa.pub  >>  authorized_keys

3.驗證eleven-2是否能免密訪問另外三臺虛擬機

ssh  eleven-3...

2.2 安裝jdk,注意是oracle的jdk,如果安裝了open jdk,先卸載掉

hadoop3.0之前的版本可用jdk1.7,3.0之後的版本需要用jdk1.8

我要安裝的hadoop是3.0之前的版本,所以jdk用的是:jdk-7u80-linux-x64.rpm,提取碼:d531。

將jdk上傳至每臺虛擬機,切換至存放的路徑下,執行命令進行安裝   
 rpm  -i   jdk-7u80-linux-x64.rpm

2.3配置jdk環境變量,

配置環境變量的文件:  /etc/profile

命令 :  vi  /etc/profile

在文件末尾追加
export  JAVA_HOME=/usr/java/jdk1.7.0_80
PATH=$PATH:$JAVA_HOME/bin

保存退出

重新編譯環境變量配置文件
.  /etc/profile

驗證,查看java進程
命令   :   jps

2.4安裝hadoop,我用的版本爲hadoop-2.6.5.tar.gz,提取碼爲 sqty

三臺虛擬機都要操作,可先在一臺服務器上操作,然後分發至另外三臺

1.將hadoop上傳至虛擬機

2.解壓,這裏我的解壓路徑爲  /opt/sxt/

3.配置環境變量

1.vi  /etc/profile
2.在末尾追加,
export  HADOOP_HOME=/opt/sxt/hadoop-2.6.5
並修改path爲
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.保存退出

4.配置hadoop,hadoop的配置文件存放在   /安裝路徑下/hadoop-2.6.5/etc/hadoop  ,啓動hadoop時,會自動來讀取hadoop下的文件,所以這個文件夾名稱不要改。

1.配置hadoop中用到的jdk環境變量(二次環境變量配置),切換到 /opt/sxt/hadoop-2.6.5/etc/hadoop 目錄下。

編輯   hadoop-env.sh 文件 ,改成下圖這樣

編輯  mapred-env.sh (計算框架用的配置腳本) 配置成如下圖

編輯   yarn-env.sh  (資源管理) 配置成如下圖

2.配置hadoop相關配置,,可查看官網,有詳細講解。

編輯  core-site.xml  (主配置文件),增加如下配置

<configuration>
    #######配置主節點(namenode),這裏將eleven-2作爲namenode服務器,可更改成你自己的#######
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://eleven-2:9000</value>
    </property>


    #######配置元數據,及數據信息存放路徑##########
    #####默認是一個臨時文件路徑,真是環境中可能會發生丟失的風險,所以需要自定義一個路徑存放那些數據,需要將此文件夾創建
    ###格式化的時候在此路徑下會生成name文件夾,生成fsimage即時快照,和custmid(集羣id)
    ###hadoop啓動後會生成 data及secondary namenode的文件夾,存放元數據及數據信息。
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/sxt/hadoop/full</value>
    </property>
</configuration>

效果如下:

編輯  hdfs-site.xml  ,配置副本數量及secondary namenode服務器。

<configuration>
    ####配置副本數量,最好小於等於從節點的數量,多了沒什麼用
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    ####配置secondary namenode的服務器爲eleven-3,可改成你自己的
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>eleven-3:50090</value>
    </property>
</configuration>

效果如下:

編輯 slaves 文件,配置從節點服務器,datanode.

#####增加以下三行,表明將eleven-3。eleven-4,eleven-5作爲從節點服務器。(datanode的服務器)
eleven-3
eleven-4
eleven-5

效果如下:

3.將eleven-2配置好的hadoop分發至另外三臺服務器同目錄下,也可以每臺服務器做以上同樣的配置 

命令:
scp -r hadoop-2.6.5 eleven-4:/opt/sxt/

4.三臺從節點服務器上配置hadoop的環境變量,可以eleven-2配置好的/etc/profile  分發至另外三臺服務器同目錄下,然後編譯下環境變量文件

##將eleven-2配置好的/etc/profile  分發至另外三臺服務器
scp /etc/profile eleven-3:/etc/

##編譯下
source  /etc/profile

三,hadoop啓動,在主節點namenode上操作

1.格式化,格式化後會在配置的full目錄下生成name文件夾,存放namenode的信息

命令
hdfs  namenode  -format

成功後效果如下:

2.啓動hadoop,啓動成功後會在從節點的每臺服務器上的full文件夾下生成對應角色的文件夾。

啓動命令:
start-dfs.sh

成功後效果如下:可以看到啓動了相關角色。可在每個服務器的full文件夾下看到對應的文件夾。

3.瀏覽器請求驗證

hadoop提供可視化管理工具 ,可以用外部瀏覽器訪問管理頁面,

解釋:所有的計算和文件管理操作都是在datanode節點上執行的,但是都是通過namenode節點去操作的datanode節點,也就是namenode管理着所有的datanode。所以此處訪問的管理界面也就是namenode。

瀏覽器請求  當前虛擬機ip:端口號

先查看當前服務器對外提供的瀏覽器端口,執行命令  ss  -nal

瀏覽器請求 eleven-2:50070  注意:前提是windows下配置了hosts.否則用ip訪問

5.關閉

stop-dfs.sh

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章