Hadoop2.2.0-HA高可用集羣環境搭建

Hadoop2.2.0-HA高可用集羣環境搭建

  1. 集羣主機信息java

主機名稱node

主機ipmysql

配置web

主要功能sql

master1數據庫


硬盤300G,內存32GCPU8apache

管理主節點bootstrap

master2vim


硬盤300G,內存32GCPU8瀏覽器

管理備份節點

slave1


硬盤300G,內存8GCPU4

數據節點

slave2


硬盤300G,內存8GCPU4

數據節點

slave3


硬盤300G,內存8GCPU4

數據節點

slave4


硬盤500G,內存4GCPU2

mysql數據庫

 

本次集羣使用6臺物理機,操做系統都採用centOS6.4版本

  1. hadoop-2.2.0.tar.gz

  2. apache-hive-1.0.1-bin.tar.gz

  3. sqoop-1.4.4.bin__hadoop-0.20.tar.gz

  4. zookeeper-3.4.6.tar.gz

  5. jdk1.7

 

  1. 集羣組件包

  2. 集羣機器配置

  3. 設置靜態IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #描述網卡對應的設備別名,例如ifcfg-eth0的文件中它爲eth0
BOOTPROTO=static #
設置網卡得到ip地址的方式,可能的選項爲staticdhcpbootp,分別對應靜態指定的 ip地址,經過dhcp協議得到的ip地址,經過bootp協議得到的ip地址
BROADCAST=192.168.0.255 #
對應的子網廣播地址
HWADDR=00:07:E9:05:E8:B4 #
對應的網卡物。

 

  1. 修改主機名

vi /etc/sysconfig/network 

hostname=master1

重啓一下網絡service network restart

驗證reboot -h now 馬上重啓  而後hostname

  1. 關閉防火牆

關閉已經啓動的防火牆: service iptables stop (只能關閉當前)

驗證:service iptables status

Firewall is not running

關閉防火牆開機自動啓動功能:

1先查看查看: chkconfig --list |grep iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

2關閉 chkconfig  iptables off

驗證:chkconfig --list |grep iptables

  1. 配置SSH免密碼登陸

ssh-keygen 生產密碼    回車按三下

賦給其餘機器的祕鑰:ssh-copy-id+ip(例如:ssh-copy-id 10.1.1.1)

六臺機器每臺機器都要把當前機器的祕鑰發送到其餘五臺機器上,實現五臺機器免祕鑰登陸。

  1. 安裝JDK

把機器自帶的jdk刪掉:顯示機器安裝過的jdk命令rpm -qa | grep jdk

卸載命令:

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.62.1.11.11.90.el6_4.x86_64 
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.x86_64 
# rpm -e --nodeps tzdata-java-2013c-2.el6.noarch 

  1. 配置zookeeper

  2. tar -zxvf zookeeper-3.4.6.tar.gz   解壓zookeeper

  3. cd  zookeeper安裝路徑的conf目錄修改文件zoo_sample.cfg zoo.cfg 

  4. 修改配置文件vi  zoo.cfg

  1. /usr/local/zookeeoer 目錄下創建 datalogs目錄(注意:在之後拷貝到其它機器上在其它機器上也得創建這二個目錄)

  2. server.1data目錄下編寫一個叫 myid的文件命令爲:vi myid  裏面寫上1

server.2data目錄下編寫一個叫 myid的文件命令爲:vi myid  裏面寫上2

server.3data目錄下編寫一個叫 myid的文件命令爲:vi myid  裏面寫上3

server.4data目錄下編寫一個叫 myid的文件命令爲:vi myid  裏面寫上4

server.5data目錄下編寫一個叫 myid的文件命令爲:vi myid  裏面寫上5

  1. 將配置好的zookeeper拷貝到其它四臺機器上(:修改每臺機器上的myid)

scp -r /usr/local/zookeeper IP:/usr/local/

  1. 進入zookeeperbin目錄啓動zkServer.sh start 啓動以後  輸入命令:jps 查看控制檯是否有QuorumPeerMain進程存在。成功後啓動另外四臺機器

  2. 測試zookeeper是否有報錯現象進入zookeeperbin目錄輸入zkCli.sh 看下是否報錯現象.若是正常進行下一步安裝.

  3. 配置hadoop

解壓hadoop-2.2.0.tar.gz 進入hadoop解壓的etc/hadoop/目錄編輯六個文件分別是:core-site.xml, hadoop-env.sh, hdfs-site.xml , mapred-site.xml, yarn-site.xml, slaves

  1. 首先修改core-site.xml 配置以下:

配置解釋:

fs.defaultFs:指定hdfsnameservicens1,NameNodeURIhdfs://主機名:端口

hadoop.tmp.dir:這裏的路徑默認是NameNodeDataNodeJournalNode等存放數據的公共目錄。用戶也能夠本身單獨指定這三類節點的目錄

ha.zookeeper.quorum:這裏是ZooKeeper集羣的地址和端口。注意,數量必定是奇數,且很多於三個節點。

配置hadoop-env.sh (只須要指定jdk的安裝路徑便可)

 

  1. 配置hdfs-site.xml   

    配置解釋:

    dfs.namenode.name.dir 

    指定namenode名稱空間的存儲地址。

    dfs.namenode.data.dir

    指定datanode數據存儲地址

    dfs.replication

    指定數據冗餘份數。

    dfs.nameservices

    指定hdfsnameservicecluster1,須要和core-site.xml中的保持一致。

    dfs.ha.namenodes.cluster1

    cluster1下面有兩個NameNode,分別是master1master2.

    dfs.namenode.rpc-address.cluster1.master1:

    maste1RPC通訊地址.

    dfs.namenode.http-address.cluster1.master1:

    master1http通訊地址

    dfs.namenode.rpc-address.cluster1.master2:

    maste1RPC通訊地址

    dfs.namenode.http-address.cluster1.master2:

     master1http通訊地址

    dfs.namenode.shared.edits.dir:

    指定NameNode的元數據在JournalNode上的存放位置

    dfs.ha.automatic-failover.enabled.cluster1:

    指定支持高可用自動切換機制

    dfs.client.failover.proxy.provider.cluster1:

     配置失敗自動切換實現方式

    dfs.journalnode.edits.dir: 

    指定Journalnode的元數據在JournalNode上的存放位置

    dfs.ha.fencing.methods: 

    配置隔離機制

    dfs.ha.fencing.ssh.private-key-files:

    使用隔離機制時須要ssh免密碼登錄

    ha.failover-controller.cli-check.rpc-timeout.ms:

    手動運行的FC功能(從CLI)等待健康檢查、服務狀態的超時時間。

    ipc.client.connect.timeout:

    SSH鏈接超時,毫秒,僅適用於內建的sshfence fencer

    dfs.image.transfer.bandwidthPerSec:

     Image文件傳輸時能夠使用的最大帶寬,秒字節。0表示沒有限制。HA方式使用不到,可不關注

    dfs.web.ugi:

    Web服務器使用的用戶名。若是將這個參數設置爲超級用戶的名稱,則全部Web客戶就能夠看到全部的信息

    4.配置mapred-site.xml 

     

    配置解釋:

    mapreduce.framework.name:mapreduce:

    創建在指定yarn之上

    mapred.local.dir

    MR 的中介數據文件存放目錄

    mapreduce.jobhistory.address 

    配置 MapReduce JobHistory Server 地址,默認端口10020 

    mapreduce.jobhistory.webapp.address

     配置 MapReduce JobHistory Server web ui 地址,默認端口19888 

    5.配置yarn-site.xml

    配置解釋:

    yarn.resourcemanager.hostname:

    開啓故障自動切換至master

    yarn.resourcemanager.address:

    ResourceManager 對客戶端暴露的地址。客戶端經過該地址向RM提交應用程序,殺死應用程序等

    yarn.resourcemanager.scheduler.address:

     ResourceManager ApplicationMaster暴露的訪問地址。ApplicationMaster經過該地址向RM申請資源、釋放資源等。

    yarn.resourcemanager.webapp.address:

     ResourceManager對外web ui地址。用戶可經過該地址在瀏覽器中查看集羣各種信息。

    yarn.resourcemanager.resource-tracker.address :

    ResourceManager NodeManager暴露的地址.NodeManager經過該地址向RM彙報心跳,領取任務等

    yarn.nodemanager.aux-services:

    NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序

    配置slaves

    7.啓動hadoop集羣

     

    1.    首先五臺機器啓動zookeeper  zkServer.sh startjournalnode master1,master2,slave1,slave2,slave3 sbin目錄中 hadoop-daemon.sh start journalnode

    2.格式化zookeepermaster1上便可命令: hdfs zkfc -formatZK
    3.對master1主節點進行HDFS格式化bin/hadoop namenode –format,看是否報錯。。若是沒有報錯進行下一步,啓動主節點的namenode命令是:sbin/hadoop-daemon.sh start namenode.
    4.對master2主節點進行HDFS格式化bin/hadoop namenode -bootstrapStandby,看是否報錯。。若是沒有報錯進行下一步,啓動主節點的namenode命令是:sbin/hadoop-daemon.sh start namenode
    5.在master1master2啓動zkfc

    sbin/hadoop-daemon.sh start zkfc    

    咱們的master1master2有一個節點就會變爲active狀態.

    6.啓動datanode :在master1上執行sbin/hadoop-daemon.sh start datanode
    7.啓動yarn master1,master2sbin/start-yarn.sh
    8.檢查是否啓動成功在控制檯上jps 看下進程是否正確主節點

    備用節點進程顯示以下:

    在訪問50070端口8088端口是否可以訪問,正常的話hadoop集羣算是成功了.

8.配置hive

 

  1. 配置hive

  2. 解壓hive包進入hive目錄的conf下面修改hive-default.xml.template, hive-env.sh.template hvie-site.xmlhive-env.sh

  3. 編輯hive-site.xml(最好是本身vi一個hive-site.xml由於默認配置文件裏面的配置都是系統配置的)

 

配置解釋:

hive.metastore.warehouse.dir:

HDFS上的)數據目錄默認值是/user/hive/warehouse

hive.exec.scratchdir:

HDFS上的)臨時文件目錄,默認值是/tmp/hive-${user.name}

hive.querylog.location:

 Hive 實時查詢日誌所在的目錄,若是該值爲空,將不建立實時的查詢日誌。 

javax.jdo.option.ConnectionURL:

 元數據庫的鏈接 URL   

javax.jdo.option.ConnectionDriverName:

JDBC驅動

javax.jdo.option.ConnectionUserName:

用戶名

javax.jdo.option.ConnectionPassword:

密碼

hive.metastore.authorization.storage.checks:

屬性被設置成true,Hive將會阻止沒有權限的用戶進行表刪除操做

 

3.編輯hive-env.sh (指定hadoop安裝目錄)

4.加載mysql驅動到hivelib目錄中

5.10.1.3.125上安裝mysql數據庫創建database hive的數據庫設置alter database hive character set latin1; 改變hive元數據庫的字符集.當前鏈接的用戶遠程鏈接權限.

6.啓動hive 進入hive安裝bin目錄./hive 啓動若是不報錯的話進去

相關文章
相關標籤/搜索