实战hadoop2.6.3+zookeeper3.4.6+hbase1.0.2高可用集群方案
实战hadoop2.6.3+zookeeper3.4.6+hbase1.0.2高可用集群方案一、安装前准备
1.环境5台
2、修改hosts文件
# cat /etc/hosts
192.168.10.201hadoop01
192.168.10.202hadoop02
192.168.10.203hadoop03
192.168.10.204hadoop04
192.168.10.205hadoop05
3、ssh 免密码登录
在每台操作
# mkidr ~/.ssh
# chmod 700 ~/.ssh
#cd ~/.ssh/
ssh-keygen -t rsa
五台操作完成 后做成公钥文件
ssh hadoop02 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh hadoop03 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh hadoop04 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh hadoop05 cat /root/.ssh/id_rsa.pub >> authorized_keys
ssh hadoop01 cat /root/.ssh/id_rsa.pub >> authorized_keys
# chmod 600 authorized_keys
# scp authorized_keys hadoop02:/root/.ssh/
# scp authorized_keys hadoop03:/root/.ssh/
# scp authorized_keys hadoop04:/root/.ssh/
# scp authorized_keys hadoop05:/root/.ssh/
测试ssh信任
# ssh hadoop02 date
Mon Aug8 11:07:23 CST 2016
# ssh hadoop03 date
Mon Aug8 11:07:26 CST 2016
# ssh hadoop04 date
Mon Aug8 11:07:29 CST 2016
# ssh hadoop05 date
5.服务时间同步(五台操作)
yum -y install ntpdate
# crontab -l
0 * * * * /usr/sbin/ntpdate 0.rhel.pool.ntp.org && /sbin/clock -w
可以采用别的方案同步时间
6.修改文件打开数(五台操作)
# vi /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
root soft nproc 32000
root hard nproc 32000
# vi /etc/pam.d/login
sessionrequired pam_limits.so
修改完后重启系统
二、安装hadoop+zookeeper HA
1.安装jdk(五台操作)
解压jdk
cd /opt
# tar zxvf jdk-7u21-linux-x64.tar.gz
# mv jdk1.7.0_21 jdk
配置到环境变量/etc/profile
# vi /etc/profile
#java
JAVA_HOME=/opt/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export> 配置文件生效
# source /etc/profile
# java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
以上说明生效
2.解压hadoop并修改环境变量
# tar zxvf hadoop-2.6.3.tar.gz
#mkdir /data
# mv hadoop-2.6.3 /data/hadoop
# vi /etc/profile
##hadoop
export HADOOP_HOME=/data/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/bin
# source /etc/profile
3.修改hadoop配置文件
# cd /data/hadoop/etc/hadoop/
# vi slaves
hadoop01
hadoop02
hadoop03
hadoop04
hadoop05
以上利用hadoop01,hadoop02两台磁盘空间,也增加进去了,不介意增加。
# vi hadoop-env.sh
# vi yarn-env.sh
修改core-site.xml文件
# vi core-site.xml
fs.defaultFS
hdfs://cluster
The name of the default file system.
true
hadoop.tmp.dir
/data/hadoop/tmp
ha.zookeeper.quorum
hadoop01:2190,hadoop02:2190,hadoop03:2190,hadoop04:2190,hadoop05:2190
io.file.buffer.size
2048
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_dsa
修改hdfs-site.xml文件
# vi hdfs-site.xml
dfs.nameservices
cluster
dfs.ha.namenodes.cluster
nn1,nn2
dfs.namenode.rpc-address.cluster.nn1
hadoop01:8020
dfs.namenode.rpc-address.cluster.nn2
hadoop02:8020
dfs.namenode.http-address.cluster.nn1
hadoop01:50070
dfs.namenode.http-address.cluster.nn2
hadoop02:50070
dfs.namenode.servicerpc-address.cluster.nn1
hadoop01:53333
dfs.namenode.servicerpc-address.cluster.nn2
hadoop02:53333
dfs.namenode.shared.edits.dir
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485;hadoop04:8485;hadoop05:8485/cluster
dfs.client.failover.proxy.provider.cluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.journalnode.edits.dir
/data/hadoop/mydata/journal
dfs.replication
3
dfs.namenode.name.dir
file:/data/hadoop/mydata/name
dfs.datanode.data.dir
file:/data/hadoop/mydata/data
dfs.ha.automatic-failover.enabled
true
dfs.webhdfs.enabled
true
dfs.journalnode.http-address
0.0.0.0:8480
dfs.journalnode.rpc-address
0.0.0.0:8485
dfs.permissions
false
修改mapred-site.xml
# vi mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.cluster.temp.dir
/data/hadoop/mydata/mr_temp
mareduce.jobhistory.address
hadoop01:10020
mapreduce.jobhistory.webapp.address
hadoop01:19888
修改yarn-site.xml文件
# vi yarn-site.xml
yarn.resourcemanager.connect.retry-interval.ms
60000
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.cluster-id
rm-cluster
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.ha.id
rm1
yarn.resourcemanager.hostname.rm1
hadoop01
yarn.resourcemanager.hostname.rm2
hadoop02
yarn.resourcemanager.recovery.enabled
true
yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
yarn.resourcemanager.zk-address
hadoop01:2190,hadoop02:2190,hadoop03:2190,hadoop04:2190,hadoop05:2190,
yarn.resourcemanager.address.rm1
${yarn.resourcemanager.hostname.rm1}:23140
yarn.resourcemanager.scheduler.address.rm1
${yarn.resourcemanager.hostname.rm1}:23130
yarn.resourcemanager.webapp.https.address.rm1
${yarn.resourcemanager.hostname.rm1}:23189
yarn.resourcemanager.webapp.address.rm1
${yarn.resourcemanager.hostname.rm1}:23188
yarn.resourcemanager.resource-tracker.address.rm1
${yarn.resourcemanager.hostname.rm1}:23125
yarn.resourcemanager.admin.address.rm1
${yarn.resourcemanager.hostname.rm1}:23141
yarn.resourcemanager.address.rm2
${yarn.resourcemanager.hostname.rm2}:23140
yarn.resourcemanager.scheduler.address.rm2
${yarn.resourcemanager.hostname.rm2}:23130
yarn.resourcemanager.webapp.https.address.rm2
${yarn.resourcemanager.hostname.rm2}:23189
yarn.resourcemanager.webapp.address.rm2
${yarn.resourcemanager.hostname.rm2}:23188
yarn.resourcemanager.resource-tracker.address.rm2
${yarn.resourcemanager.hostname.rm2}:23125
yarn.resourcemanager.admin.address.rm2
${yarn.resourcemanager.hostname.rm2}:23141
yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
yarn.scheduler.fair.allocation.file
${yarn.home.dir}/etc/hadoop/fairscheduler.xml
yarn.nodemanager.local-dirs
/data/hadoop/mydata/yarn_local
yarn.nodemanager.log-dirs
/data/hadoop/mydata/yarn_log
yarn.nodemanager.remote-app-log-dir
/data/hadoop/mydata/yarn_remotelog
yarn.app.mapreduce.am.staging-dir
/data/hadoop/mydata/yarn_userstag
mapreduce.jobhistory.intermediate-done-dir
/data/hadoop/mydata/yarn_intermediatedone
mapreduce.jobhistory.done-dir
/data/hadoop/mydata/yarn_done
yarn.log-aggregation-enable
true
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.vmem-pmem-ratio
4.2
yarn.nodemanager.resource.cpu-vcores
2
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
Classpath for typical applications.
yarn.application.classpath
$HADOOP_HOME/etc/hadoop,
$HADOOP_HOME/share/hadoop/common/*,
$HADOOP_HOME/share/hadoop/common/lib/*,
$HADOOP_HOME/share/hadoop/hdfs/*,
$HADOOP_HOME/share/hadoop/hdfs/lib/*,
$HADOOP_HOME/share/hadoop/mapreduce/*,
$HADOOP_HOME/share/hadoop/mapreduce/lib/*,
$HADOOP_HOME/share/hadoop/yarn/*,
$HADOOP_HOME/share/hadoop/yarn/lib/*
修改fairscheduler.xml文件
# vi fairscheduler.xml
1024 mb, 1 vcores
1536 mb, 1 vcores
5
300
1.0
root,yarn,search,hdfs
1024 mb, 1 vcores
1536 mb, 1 vcores
1024 mb, 1 vcores
1536 mb, 1 vcores
创建相关xml配置中目录
mkdir -p /data/hadoop/mydata/yarn
4.解压zookeeper并修改环境变量
# tar zxvf zookeeper-3.4.6.tar.gz
#mv zookeeper-3.4.6 /data/zookeeper
# vi /etc/profile
##zookeeper
export ZOOKEEPER_HOME=/data/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
# source /etc/profile
5.修改zookeeper配置文件
# cd /data/zookeeper/conf/
# cp zoo_sample.cfg zoo.cfg
# vi zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/hadoop/mydata/zookeeper
dataLogDir=/data/hadoop/mydata/zookeeperlog
# the port at which the clients will connect
clientPort=2190
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
server.4=hadoop04:2888:3888
server.5=hadoop05:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
创建目录
mkdir /data/hadoop/mydata/zookeeper
mkdir /data/hadoop/mydata/zookeeperlog
6.把配置hadoop、zookeeper文件目录到其他四台中
# scp -r /data/hadoop hadoop02:/data/
# scp -r /data/hadoop hadoop03:/data/
# scp -r /data/hadoop hadoop04:/data/
# scp -r /data/hadoop hadoop05:/data/
# scp -r /data/zookeeper hadoop02:/data/
# scp -r /data/zookeeper hadoop03:/data/
# scp -r /data/zookeeper hadoop04:/data/
# scp -r /data/zookeeper hadoop05:/data/
在hadoop02修改yarn-site.xml
# cd /data/hadoop/etc/hadoop/
把rm1修改成rm2
# vi yarn-site.xml
yarn.resourcemanager.ha.id
rm2
# vi /data/hadoop/mydata/zookeeper/myid
1
# vi /data/hadoop/mydata/zookeeper/myid
2
# vi /data/hadoop/mydata/zookeeper/myid
3
# vi /data/hadoop/mydata/zookeeper/myid
4
# vi /data/hadoop/mydata/zookeeper/myid
5
7、启动zookeeper
五台操作zkServer.sh start
# zkServer.sh start
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Mode: follower
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Mode: leader
You have new mail in /var/spool/mail/root
正常情况只有一台leader状态
8、格式化zookeeper集群
在hadoop机器执行命令
# hdfs zkfc -formatZK
9.启动journalnode进程
在每台启动(五台)
# cd /data/hadoop/sbin/
# ./hadoop-daemon.sh start journalnode
10.格式化namenode
在hadoop01上执行命令
# hdfs namenode -format
11.启动namenode
在hadoop01执行命令
# cd /data/hadoop/sbin/
# ./hadoop-daemon.sh startnamenode
12.将刚才格式化的namenode信息同步么备用namenode上
# hdfs namenode -bootstrapStandby
13.在hadoop02上启动namenode
# cd /data/hadoop/sbin/
# ./hadoop-daemon.sh startnamenode
14.启动所有datanode
在每台执行这是根据slaves来的
# cd /data/hadoop/sbin/
# ./hadoop-daemon.sh startdatanode
15.启动yarn
在hadoop01上执行命令
root@hadoop01 ~]# cd /data/hadoop/sbin/
# ./start-yarn.sh
16.启动ZKFC
在hadoop01和hadoop02上启动
# cd /data/hadoop/sbin/
# ./hadoop-daemon.sh start zkfc
17.启动成功结果
三、安装hbase HA
1.解压hbase修改配置文件
# tar zxvf hbase-1.0.2-bin.tar.gz
# mv hbase-1.0.2 /data/hbase
配置环境变量
# vi /etc/profile
##hbase
export HBASE_HOME=/data/hbase
export PATH=$PATH:$HBASE_HOME/bin
# source /etc/profile
# cd /data/hbase/conf/
# vi hbase-env.sh
# The java implementation to use.Java 1.7+ required.
export JAVA_HOME="/opt/jdk"
# Extra Java> #记得以下一定要配置,HMaster会启动不了
export HBASE_CLASSPATH=/data/hadoop/etc/hadoop
# Where log files are stored.$HBASE_HOME/logs by default.
export HBASE_LOG_DIR=/data/hbase/logs
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
修改hbase-site.xml
# vi hbase-site.xml
hbase.rootdir
hdfs://cluster/hbase
hbase.cluster.distributed
true
hbase.tmp.dir
/data/hbase/tmp
hbase.master.port
60000
hbase.zookeeper.property.dataDir
/data/hadoop/mydata/zookeeper
hbase.zookeeper.quorum
hadoop01,hadoop02,hadoop03,hadoop04,hadoop05
hbase.zookeeper.property.clientPort
2190
zookeeper.session.timeout
120000
hbase.regionserver.restart.on.zk.expire
true
# vi regionservers
hadoop01
hadoop02
hadoop03
hadoop04
hadoop05
~
创建文件目录
mkdir /data/hbase/tmp
增加backup-master
# vi backup-masters
hadoop02
以上都配置完成
2、把文件传到其他服务器上
# scp -r /data/hbase hadoop02:/data/
# scp -r /data/hbase hadoop03:/data/
# scp -r /data/hbase hadoop04:/data/
# scp -r /data/hbase hadoop05:/data/
3.启动hbase
在hadoop01执行命令
# start-hbase.sh
4.启动结果
可以通过jps查看
# jps
2540 NodeManager
1686 QuorumPeerMain
2134 JournalNode
2342 DFSZKFailoverController
3041 HMaster
1933 DataNode
3189 HRegionServer
2438 ResourceManager
7848 Jps
1827 NameNode
以后启动过程
每台执行(五台)
# zkServer.sh start
在hadoop01启动
# cd /data/hadoop/sbin/
# ./start-dfs.sh
# ./start-yarn.sh
最后启动hbase
# start-hbase.sh
关闭过程
先关闭hbase
stop-hbase.sh
在hadoop01关闭
# cd /data/hadoop/sbin/
# ./stop-yarn.sh
# ./stop-dfs.sh
页:
[1]