成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hadoop集群部署(部署腳本,namenode高可用)

開發 前端 Hadoop
本文的所有部署都基于cloudera公司的CDH4,CDH4是cloudera公司包裝好的hadoop生態圈一系列yum包,把CDH4放到自己的yum倉庫中,能極大的提高hadoop環境部署的簡易性。

前言

 折騰了一段時間hadoop的部署管理,寫下此系列博客記錄一下。

 為了避免各位做部署這種重復性的勞動,我已經把部署的步驟寫成腳本,各位只需要按著本文把腳本執行完,整個環境基本就部署完了。部署的腳本我放在了開源中國的git倉庫里(http://git.oschina.net/snake1361222/hadoop_scripts)。

 本文的所有部署都基于cloudera公司的CDH4,CDH4是cloudera公司包裝好的hadoop生態圈一系列yum包,把CDH4放到自己的yum倉庫中,能極大的提高hadoop環境部署的簡易性。

 本文的部署過程中涵蓋了namenode的HA實現,hadoop管理的解決方案(hadoop配置文件的同步,快速部署腳本等)。

環境準備

一共用5臺機器作為硬件環境,全都是centos 6.4

  • namenode & resourcemanager 主服務器: 192.168.1.1
  • namenode & resourcemanager 備服務器: 192.168.1.2
  • datanode & nodemanager 服務器: 192.168.1.100 192.168.1.101 192.168.1.102
  • zookeeper 服務器集群(用于namenode 高可用的自動切換): 192.168.1.100 192.168.1.101
  • jobhistory 服務器(用于記錄mapreduce的日志): 192.168.1.1
  • 用于namenode HA的NFS: 192.168.1.100

環境部署

一、加入CDH4的YUM倉庫

1.***的辦法是把cdh4的包放到自建的yum倉庫中,如何自建yum倉庫請看 自建YUM倉庫

2.如果不想自建yum倉庫,在所有的hadoop機器執行以下操作加入cdn4的yum倉庫

  1. wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm 
  2. sudo yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm 

二、創建用于namenode HA的NFS服務器

1.登錄192.168.1.100,執行以下腳本createNFS.sh

  1. #!/bin/bash 
  2. yum -y install rpc-bind nfs-utils 
  3. mkdir -p /data/nn_ha/ 
  4. echo "/data/nn_ha  *(rw,root_squash,all_squash,sync)" >> /etc/exports 
  5. /etc/init.d/rpcbind start 
  6. /etc/init.d/nfs  start 
  7. chkconfig  --level 234 rpcbind   on 
  8. chkconfig  -level 234 nfs  on 

三、Hadoop Namenode & resourcemanager 主服務器 環境部署

1.登錄192.168.1.1,創建腳本目錄,把腳本從git倉庫復制下來

  1. yum –y install git 
  2. mkdir –p /opt/ 
  3. cd /opt/ 
  4. git clone http://git.oschina.net/snake1361222/hadoop_scripts.git 
  5. /etc/init.d/iptables stop 

2.修改hostname

  1. sh /opt/hadoop_scripts/deploy/AddHostname.sh 

3.修改部署腳本的配置文件

  1. vim /opt/kingsoft/hadoop_scripts/deploy/config 
  2. #添加master服務器的地址,也就是namenode主服務器 
  3. master="192.168.1.1" 
  4. #添加nfs服務器地址 
  5. nfsserver="192.168.1.100" 

4.編輯hosts文件(此文件會同步到hadoop集群所有機器)

  1. vim /opt/hadoop_scripts/share_data/resolv_host 
  2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 
  3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 
  4. 192.168.1.1 nn.dg.hadoop.cn 
  5. 192.168.1.2 nn2.dg.hadoop.cn 
  6. 192.168.1.100 dn100.dg.hadoop.cn 
  7. 192.168.1.101 dn101.dg.hadoop.cn 
  8. 192.168.1.102 dn102.dg.hadoop.cn 

5.執行部署腳本CreateNamenode.sh

  1. sh /opt/hadoop_scripts/deploy/CreateNamenode.sh 

6.搭建saltstack master

PS:類似于puppet的服務器管理開源工具,比較輕量,在這里用于管理hadoop集群,調度datanode,關于saltstack的詳細請看 SaltStack部署與使用

a.安裝

  1. yum -y install salt salt-master 

b.修改配置文件`/etc/salt/master`,下面標志的是需要修改的項

  1. 修改監聽IP: 
  2. interface0.0.0.0 
  3. 多線程池: 
  4. worker_threads: 5 
  5. 開啟任務緩存:(官方描敘開啟緩存能承載5000minion) 
  6. job_cache 
  7. 開啟自動認證: 
  8. auto_accept: True 

c.開啟服務

  1. /etc/init.d/salt-master start 
  2. chkconfig  salt-master on 

7.部署過程中已經把我的sample配置復制過去了,所以只需要修改部分配置文件

a. /etc/hadoop/conf/hdfs-site.xml (其實就是按實際修改主機名地址)

  1. <property> 
  2.   <name>dfs.namenode.rpc-address.mycluster.ns1</name> 
  3.   <value>nn.dg.hadoop.cn:8020</value> 
  4.   <description>定義ns1的rpc地址</description> 
  5. </property> 
  6. <property> 
  7.   <name>dfs.namenode.rpc-address.mycluster.ns2</name> 
  8.   <value>nn2.dg.hadoop.cn:8020</value> 
  9.   <description>定義ns2的rpc地址</description> 
  10. </property> 
  11. <property> 
  12.     <name>ha.zookeeper.quorum</name> 
  13.     <value>dn100.dg.hadoop.cn:2181,dn101.dg.hadoop.cn:2181,dn102.dg.hadoop.cn:2181,</value> 
  14.     <description>指定用于HA的ZooKeeper集群機器列表</description> 
  15. </property> 

b. mapred-site.xml

  1. <property> 
  2.  <name>mapreduce.jobhistory.address</name> 
  3.  <value>nn.dg.hadoop.cn:10020</value> 
  4. </property> 
  5. <property> 
  6.  <name>mapreduce.jobhistory.webapp.address</name> 
  7.  <value>nn.dg.hadoop.cn:19888</value> 
  8. </property> 

#p#

c. yarn-site.xml

  1. property> 
  2.   <name>yarn.resourcemanager.resource-tracker.address</name> 
  3.   <value>nn.dg.hadoop.cn:8031</value> 
  4. </property> 
  5. <property> 
  6.   <name>yarn.resourcemanager.address</name> 
  7.   <value>nn.dg.hadoop.cn:8032</value> 
  8. </property> 
  9. <property> 
  10.   <name>yarn.resourcemanager.scheduler.address</name> 
  11.   <value>nn.dg.hadoop.cn:8030</value> 
  12. </property> 
  13. <property> 
  14.   <name>yarn.resourcemanager.admin.address</name> 
  15.   <value>nn.dg.hadoop.cn:8033</value> 
  16. </property> 

三、Hadoop Namenode & resourcemanager 備服務器 環境部署

1.登錄192.168.1.2,創建腳本目錄,從主服務器把腳本同步過來

  1. /etc/init.d/iptables stop 
  2. mkdir –p /opt/hadoop_scripts 
  3. rsync –avz 192.168.1.1::hadoop_s   /opt/hadoop_scripts 

2.執行部署腳本CreateNamenode.sh

  1. sh /opt/hadoop_scripts/deploy/CreateNamenode.sh 

3.同步hadoop配置文件

  1. rsync –avz 192.168.1.1::hadoop_conf  /etc/hadoop/conf 

4.部署saltstack客戶端

  1. sh /opt/hadoop_scripts/deploy/salt_minion.sh 

四、zookeeper服務器集群部署

zookeeper是一個開源分布式服務,在這里用于namenode 的auto fail over功能。

1.安裝

  1. yum install zookeeper zookeeper-server 

2.修改配置文件/etc/zookeeper/conf/zoo.cfg

  1. maxClientCnxns=50 
  2. # The number of milliseconds of each tick 
  3. tickTime=2000 
  4. # The number of ticks that the initial 
  5. # synchronization phase can take 
  6. initLimit=10 
  7. # The number of ticks that can pass between 
  8. # sending a request and getting an acknowledgement 
  9. syncLimit=5 
  10. # the directory where the snapshot is stored. 
  11. dataDir=/var/lib/zookeeper 
  12. # the port at which the clients will connect 
  13. clientPort=2181 
  14. #這里指定zookeeper集群內的所有機器,此配置集群內機器都是一樣的 
  15. server.1=dn100.dg.hadoop.cn :2888:3888 
  16. server.2=dn101.dg.hadoop.cn:2888:3888 

3.指定當前機器的id,并開啟服務

  1. #譬如當前機器是192.168.1.100(dn100.dg.hadoop.cn),它是server.1,id是1,SO: 
  2. echo "1" >  /var/lib/zookeeper/myid 
  3. chown -R zookeeper.zookeeper /var/lib/zookeeper/ 
  4. service zookeeper-server init 
  5. /etc/init.d/zookeeper-server start 
  6. chkconfig zookeeper-server on 
  7. #如此類推,部署192.168.1.101 

五、datanode & nodemanager 服務器部署

1.登錄datanode機器,創建腳本目錄,從主服務器把腳本同步過來

  1. /etc/init.d/iptables stop 
  2. mkdir –p /opt/hadoop_scripts 
  3. rsync –avz 192.168.1.1::hadoop_s   /opt/hadoop_scripts 

2.修改hostname,執行部署腳本 CreateDatanode.sh

  1. sh /opt/hadoop_scripts/deploy/AddHostname.sh 
  2. sh /opt/hadoop_scripts/deploy/CreateDatanode.sh 

集群初始化

到這里,hadoop集群的環境已部署完畢,現在開始初始化集群

一、namenode的HA高可用初始化

1.在namenode主服務器(192.168.1.1)執行zookeeper的failover功能格式化

  1. sudo –u hdfs hdfs zkfc –formatZK 

2.把zookeeper集群服務啟動(192.168.1.100  192.168.1.101 )

  1. /etc/init.d/zookeeper-server start 

3.把namenode主備服務器的zkfc服務起來(192.168.1.1  192.168.1.2)

  1. /etc/init.d/hadoop-hdfs-zkfc start 

4.在namenode主服務器(192.168.1.1)格式化hdfs

  1. #確保是用hdfs用戶格式化 
  2. sudo -u hdfs hadoop namenode –format 

5.***次搭建namenode高可用,需要把name.dir下面的數據復制到namenode備服務器(此坑花了好多時間)

a.在主服務器(192.168.1.1)執行

  1. tar -zcvPf /tmp/namedir.tar.gz /data/hadoop/dfs/name/ 
  2. nc -l 9999 < /tmp/namedir.tar.gz 

b.在備服務器(192.168.1.2)執行

  1. wget 192.168.1.1:9999 -O /tmp/namedir.tar.gz 
  2. tar -zxvPf /tmp/namedir.tar.gz 

#p#

6.主從服務都啟動

  1. /etc/init.d/hadoop-hdfs-namenode start 
  2. /etc/init.d/hadoop-yarn-resourcemanager start 

7.查看hdfs的web界面

  1. http://192.168.1.1:9080 
  2. http://192.168.1.2:9080 
  3. #如果在web界面看到兩個namenode都是backup狀態,那就是auto fail over配置不成功 
  4. #查看zkfc日志(/var/log/hadoop-hdfs/hadoop-hdfs-zkfc-nn.dg.s.kingsoft.net.log) 
  5. #查看zookeeper集群的日志(/var/log/zookeeper/zookeeper.log) 

8.現在可以嘗試關閉namenode主服務,看是否能主從切換

二、hdfs集群開啟

到這里,所有hadoop部署已完成,現在開始把集群啟動,驗證效果

1.把所有datanode服務器啟動

  1. #還記得之前搭建的saltstack管理工具不,現在開始發揮它的作用,登錄saltstack master(192.168.1.1)執行 
  2. salt -v "dn*" cmd.run "/etc/init.d/hadoop-hdfs-datanode start" 

2.查看hdfs web界面,看是否都成為live nodes

3.如果沒有問題,現在可以嘗試hdfs操作

  1. #創建一個tmp目錄 
  2. sudo -u hdfs hdfs dfs -mkdir /tmp 
  3. #創建一個10G大小的空文件,計算它的MD5值,并放入hdfs 
  4. dd if=/dev/zero of=/data/test_10G_file bs=1G count=10 
  5. md5sum /data/test_10G_file 
  6. sudo -u hdfs hdfs dfs -put /data/test_10G_file  /tmp 
  7. sudo -u hdfs hdfs dfs -ls /tmp 
  8. #現在可以嘗試關閉一臺datanode,然后把剛才的測試文件拉取出來,再算一次MD5看是否一樣 
  9. sudo -u hdfs hdfs dfs -get /tmp/test_10G_file /tmp/ 
  10. md5sum /tmp/test_10G_file 

三、yarn集群開啟

hadoop除了hdfs用于大數據的分布式存儲,還有更重要的組件,分布式計算(mapreduce)。現在我們來把mapreducev2 yarn集群啟動

1.在主服務器把resourcemanager服務起來(192.168.1.1)

  1. /etc/init.d/hadoop-yarn-resourcemanager start 

2.把所有nodemanager服務啟動

  1. #還是登陸saltstack master,執行 
  2. salt -v "dn*" cmd.run "/etc/init.d/hadoop-yarn-nodemanager start" 

3.查看yarn 任務追蹤界面(http://192.168.1.1:9081/),看是否所有nodes都已加入

4.hadoop自帶有基準測試的mapreduce實例,我們利用它來測試yarn環境是否正常

  1. #TestDFSIO測試HDFS的讀寫性能,寫10個文件,每個文件1G. 
  2. su hdfs - 
  3. hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.2.1-tests.jar TestDFSIO  -write -nrFiles 10 -fileSize 1000 
  4. #Sort測試MapReduce 
  5. ##向random-data目錄輸出數據 
  6. hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar randomwriter  random-data 
  7. ##運行sort程序 
  8. hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar sort random-data sorted-data 
  9. ##驗證sorted-data 文件是否排好序 
  10. hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.2.1-tests.jar testmapredsort -sortInput random-data \ 
  11. -sortOutput sorted-data 

總結

在折騰hadoop集群的部署是還是遇到了很多坑,打算下篇寫自己所遭遇的問題。通過本文部署遇到問題的可以聯系一下我,互相交流一下。QQ:83766787。當然也歡迎大家一起修改部署的腳本,git地址是:http://git.oschina.net/snake1361222/hadoop_scripts

原文鏈接:http://lxcong.blog.51cto.com/7485244/1241004

責任編輯:陳四芳 來源: lxcong的運維技術
相關推薦

2023-11-07 07:30:18

Hadoop高可用

2019-11-27 16:34:00

配置

2021-03-17 10:05:42

KubernetesRedis數據庫

2023-05-08 08:16:00

高可用MongoDB

2019-12-24 14:28:00

KeepalivedNginxTomcat

2022-09-02 16:59:13

Kubernetes高可用Linux

2014-03-18 10:19:55

Hadoop部署hadoop集群腳本

2021-03-04 13:10:32

KubernetesRedisLinux

2023-10-13 18:57:22

2019-04-18 11:37:49

NameNodeHDFS架構

2014-04-16 10:41:58

Spark

2012-02-15 22:40:23

heartbeat高可用

2016-12-20 16:47:25

Hadoop部署腳本

2023-08-21 15:28:36

云原生Kubernetes

2018-01-12 14:20:37

數據庫MySQL高可用架構

2017-02-06 11:43:57

ZooKeeper集群

2017-02-19 19:57:05

ZooKeeper集群

2019-08-27 15:56:44

MySQL 互聯網數據庫

2021-06-26 07:40:45

Greenplum集群部署

2024-05-21 13:03:45

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费看片神器 | 国内精品在线视频 | 在线午夜| 久久精品一区二区三区四区 | 日韩1区2区 | 日韩中文字幕 | 亚洲成人免费网址 | 午夜影院网站 | 免费黄色录像视频 | re久久 | 亚洲精品一区二区在线观看 | 国产欧美一区二区三区在线看蜜臀 | 天天人人精品 | 国产91在线 | 亚洲 | 超碰日本 | 成年人在线视频 | 91精品国产综合久久精品 | 色婷婷亚洲一区二区三区 | 97久久超碰 | 麻豆精品国产免费 | 97高清国语自产拍 | 日本天堂一区 | 欧美电影免费观看高清 | 国产综合在线视频 | 妖精视频一区二区三区 | 国产精品毛片一区二区三区 | 中文字幕电影在线观看 | 天天影视亚洲综合网 | 在线视频亚洲 | 国产真实精品久久二三区 | 亚洲h色| 亚洲一区二区中文字幕 | 欧美一区二区三区久久精品 | 亚洲人成人一区二区在线观看 | 免费精品久久久久久中文字幕 | 中文字幕乱码视频32 | 中文字幕不卡在线观看 | 99一区二区 | 粉嫩av在线 | 99re6在线视频精品免费 | 婷婷色在线 |