hadoop2.7-hbase1.0.1-zookeeper3.4.5配置 ha

 

 http://image.baidu.com/search/detail?z=0&ipn=d&word=%E4%BA%91%E8%AE%A1%E7%AE%97%20logo&step_word=&pn=14&spn=0&di=0&pi=&tn=baiduimagedetail&istype=&ie=utf-8&oe=utf-8&cs=1883962502%2C3516267280&os=4221692887%2C51351351&adpicid=0&fr=ala&sme=&cg=&bdtype=14&simics=3393428534%2C3089607575&objurl=http%3A%2F%2Fpic34.nipic.com%2F20131029%2F2531170_140120087000_2.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bgtrtv_z%26e3Bv54AzdH3Ffi5oAzdH3Flal9aaa_z%26e3Bip4s&gsm=0&cardserver=1

 

数据中心712台服务器实施方案

 

序号

ip

主机名

软件安装

进程

备注

1

192.168.3.130

root01

Jdk

Hadoop

hbase

NameNode

DFSZKFailoverController(zkfc)

Hmaster

必选

2

192.168.3.132

root02

Jdk

Hadoop

hbase

NameNode

DFSZKFailoverController(zkfc)

Hmaster

必选

3

192.168.3.134

root03

Jdk

Hadoop

ResourceManager

必选

4

192.168.3.136

root04

Jdk

Hadoop

ResourceManager

 

必选

5

192.168.3.138

root05

Jdk

Hadoop

Zookeeper

Hbase

DataNode

NodeManager

JournalNode

QuorumPeerMain

HRegionServer

必选

6

192.168.3.139

root06

Jdk

Hadoop

Zookeeper

Hbase

DataNode

NodeManager

JournalNode

QuorumPeerMain

HRegionServer

必选

7

192.168.3.140

root07

Jdk

Hadoop

Zookeeper

hbase

DataNode

NodeManager

JournalNode

QuorumPeerMain

HRegionServer

必选

8

192.168.3.142

root08

Jdk

Hadoop

Zookeeper

hbase

DataNode

NodeManager

JournalNode

QuorumPeerMain

HRegionServer

必选

9

192.168.3.144

root09

Jdk

Jboss

tomcat

serviceMix

应用集群

有应用,必选,反之可选

10

192.168.3.146

root10

Jdk

Jboss

tomcat

serviceMix

应用集群

有应用,必选,反之可选

11

192.168.3.148

root11

MySQL

 

可选

12

192.168.3.150

root12

MySQL

 

可选

 

 

 

准备工作(centos6.5 64Bits)

 

1. 修改Linux主机名

 

Vim /etc/sysconfig/network

 

添加HOSTNAME=root01

 

2.修改IP

 

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

 

修改IPADDR=192.168.3.130

 

3. 修改主机名和IP的映射关系

 

Vim /etc/hosts

 

添加

 

192.168.3.130 root01

 

192.168.3.132 root02

 

192.168.3.134 root03

 

192.168.3.136 root04

 

192.168.3.138 root05

 

192.168.3.140 root06

 

。。。

 

4.关闭防火墙

 

service iptables stop

 

chkconfig iptables off

 

5.停闭selinux

 

vim /etc/sysconfig/selinux

 

SELINUX=disebles

 

6.ssh免登陆

 

ssh-keygen –t rsa //每台产生公钥和私钥

 

192.168.3.130上:

 

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

 

scp ~/.ssh/authorized_keys [email protected]:/root/.ssh/

 

192.168.3.132上:

 

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

 

scp ~/.ssh/authorized_keys [email protected]:/root/.ssh/

 

 

 

7. 创建目录和准备软件

 

./runall.sh "mkdir -p /myhome/usr/"

 

./runall.sh "mkdir -p /myhome/root/"

 

./runall.sh "mkdir -p /myhome/tmp/"

 

./runall.sh "mkdir -p /myhome/src/"

 

./runall.sh "mkdir -p /myhome/logs/"

 

./runall.sh "mkdir -p /myhome/dev/"

 

./runall.sh "mkdir -p /myhome/bin/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/yarn/local/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/yarn/logs/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/logs/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/journal/zjenterprise/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/hdfs/name/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/hdfs/data/"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/tmp/"

 

 

 

./runall.sh "mkdir -p /myhome/usr/hadoop/journal/"

 

 

 

./runall.sh "mkdir -p /myhome/usr/hadoop/hdfs/pid /"

 

./runall.sh "mkdir -p /myhome/usr/hadoop/hdfs/user /"

 

 

 

 

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/yarn/local/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/logs/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/yarn/logs/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/journal/zjenterprise/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/hdfs/name/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/hdfs/data/"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/tmp/"

 

 

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/journal/"

 

 

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/hdfs/pid /"

 

./runall.sh "chmod -R 700 /myhome/usr/hadoop/hdfs/user /"

 

 

 

 

 

./runall.sh "rm -rf /myhome/hbase/logs/*"

 

 

 

./runall.sh "rm -rf /myhome/usr/hadoop/logs/*"

 

 

 

mkdir -p /myhome/usr/zookeeper/data/

 

touch /myhome/usr/zookeeper/data/myid

 

echo 1 > /myhome/usr/zookeeper/data/myid

 

 

 

 

 

export HADOOP_PID_DIR=/myhome/usr/hadoop/hdfs/pid

 

 

 

export HADOOP_LOG_DIR=/myhome/usr/hadoop/logs

 

 

 

export HADOOP_SECURE_DN_USER=/myhome/usr/hadoop/tmp/

 

 

 

export HADOOP_HDFS_USER=user

 

 

 

8. 安装JDK,配置环境变量等

 

vim /etc/profile

 

BASE_HOME=/myhome/usr

 

JAVA_HOME=/usr/java/jdk1.8.0_20

 

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

 

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 

M3_HOME=$BASE_HOME/maven

 

PATH=$PATH:$M3_HOME/bin

 

ANT_HOME=$BASE_HOME/ant

 

PATH=$PATH:$ANT_HOME/bin

 

FINDBUGS_HOME=$BASE_HOME/findbugs

 

PATH=$PATH:$FINDBUGS_HOME/bin

 

PROTOBUF_HOME=$BASE_HOME/protobuf

 

PATH=$PATH:$PROTOBUF_HOME/bin

 

ZOOKEEPER_HOME=$BASE_HOME/zookeeper

 

PATH=$PATH:$ZOOKEEPER_HOME/bin

 

HADOOP_HOME=$BASE_HOME/hadoop

 

HADOOP_CLASSPAT=$HADOOP_HOME/lib

 

PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

HBASE_HOME=$BASE_HOME/hbase

 

PATH=$PATH:$HBASE_HOME/bin

 

#SQOOP_HOME=$BASE_HOME/sqoop

 

#PATH=$PATH:$SQOOP_HOME/bin

 

#PIG_HOME=$BASE_HOME/pig

 

#PATH=$PATH:$PIG_HOME/bin

 

#HIVE_HOME=$BASE_HOME/hive

 

#PATH=$PATH:$HIVE_HOME/bin

 

#VIRO_HOME=$BASE_HOME/viro

 

#PATH=$PATH:$VIRO_HOME/bin

 

#JBOSS_HOME=$BASE_HOME/jboss

 

#PATH=$PATH:$JBOSS_HOME/bin

 

#CATALINA_HOME=$BASE_HOME/tomcat

 

#PATH=$PATH:$CATALINA_HOME/bin

 

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

 

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

 

export HADOOP_PREFIX=$HADOOP_HOME

 

export HADOOP_MAPRED_HOMD=$HADOOP_HOME

 

export HADOOP_COMMON_HOME=$HADOOP_HOME

 

export HADOOP_HDFS_HOME=$HADOOP_HOME

 

export YARN_HOME=$HADOOP_HOME

 

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

 

export YARN_LOG_DIR=$HADOOP_LOG_DIR

 

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

 

export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop

 

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

 

export HBASE_CONF_DIR=$HBASE_HOME/hbase/conf

 

#export PIG_HADOOP_VERSION=20

 

#export PIG_CLASSPATH=$HADOOP_HOME/hadoop/ conf

 

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

 

export HBASE_HOME

 

export JAVA_HOME

 

export CLASSPATH

 

export M3_HOME

 

export ANT_HOME

 

export FINDBUGS_HOME

 

export PROTOBUF_HOME

 

export HADOOP_HOME

 

export ZOOKEEPER_HOME

 

#export SQOOP_HOME

 

#export PIG_HOME

 

#export HIVE_HOME

 

#export VIRO_HOME

 

export PATH

 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 

9. 软件准备,下载,解压,编译,建目录等------(注意指定版本)

 

1. jdk

 

2. hadoop(有原码修改)

 

3. hbase

 

4. zookeeper

 

5. redis

 

5. storm

 

5. kafka

 

5. scala

 

core-site.xml

 

<configuration>

 

<!-- 指定hdfsnameservicemasters -->

 

<property>

 

<name>fs.defaultFS</name>

 

<value>hdfs://masters</value>

 

</property>

 

<!-- 指定hadoop临时目录-->

 

<property>

 

<name>hadoop.tmp.dir</name>

 

<value>/myhome/usr/hadoop/tmp</value>

 

</property>

 

<property>

 

 

 

<name>io.file.buffer.size</name>

 

 

 

<value>131072</value>

 

 

 

</property>

 

<property>

 

 

 

<name>hadoop.native.lib</name>

 

 

 

<value>ture</value>

 

 

 

</property>

 

 

 

<property>

 

 

 

<name>hadoop.proxyuser.hduser.hosts</name>

 

 

 

<value>*</value>

 

 

 

</property>

 

 

 

<property>

 

 

 

<name>hadoop.proxyuser.hduser.groups</name>

 

 

 

<value>*</value>

 

 

 

</property>

 

<!-- 指定zookeeper地址-->

 

<property>

 

<name>ha.zookeeper.quorum</name>

 

<value>root04:2181,root05:2181,root06:2181,root07:2181,root08:2181</value>

 

</property>

 

</configuration>

 



 



 

hdfs-site.xml

 

<configuration>

 

<!--指定hdfsnameservicemasters,需要和core-site.xml中的保持一致-->

 

<property>

 

<name>dfs.nameservices</name>

 

<value>masters,ns1,ns2,ns3</value>

 

</property>

 

<!-- Master下面有两个NameNode,分别是MasterSlave1 -->

 

<property>

 

<name>dfs.ha.namenodes.masters</name>

 

<value>root01,root02</value>

 

</property>

 

<!-- MasterRPC通信地址-->

 

<property>

 

<name>dfs.namenode.rpc-address.masters.root01</name>

 

<value>root01:9000</value>

 

</property>

 

<!-- Masterhttp通信地址-->

 

<property>

 

<name>dfs.namenode.http-address.masters.root01</name>

 

<value>root01:50070</value>

 

</property>

 

<!-- Slave1RPC通信地址-->

 

<property>

 

<name>dfs.namenode.rpc-address.masters.root02</name>

 

<value>root02:9000</value>

 

</property>

 

<!-- Slave1http通信地址-->

 

<property>

 

<name>dfs.namenode.http-address.masters.root02</name>

 

<value>root02:50070</value>

 

</property>

 

<!-- 指定NameNode的元数据在JournalNode上的存放位置-->

 

<property>

 

<name>dfs.namenode.shared.edits.dir</name> <value>qjournal://root04:2181,root05:2181,root06:2181,root07:2181,root08:2181/masters</value>

 

</property>

 

<!-- 指定JournalNode在本地磁盘存放数据的位置-->

 

<property>

 

<name>dfs.journalnode.edits.dir</name>

 

<value>/myhome/usr/hadoop/journal/</value>

 

</property>

 

<!-- 开启NameNode失败自动切换-->

 

<property>

 

<name>dfs.ha.automatic-failover.enabled</name>

 

<value>true</value>

 

</property>

 

<!-- 配置失败自动切换实现方式-->

 

<property>

 

<name>dfs.client.failover.proxy.provider.masters</name>

 

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

 

</property>

 

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

 

<property>

 

<name>dfs.ha.fencing.methods</name>

 

<value>

 

sshfence

 

shell(/bin/true)

 

</value>

 

</property>

 

<!-- 使用sshfence隔离机制时需要ssh免登陆-->

 

<property>

 

<name>dfs.ha.fencing.ssh.private-key-files</name>

 

<value>/root/.ssh/id_rsa</value>

 

</property>

 

<!-- 配置sshfence隔离机制超时时间-->

 

<property>

 

<name>dfs.ha.fencing.ssh.connect-timeout</name>

 

<value>30000</value>

 

</property>

 

</configuration>

 



 



 

mapred-site.xml

 

<configuration>

 

<!-- 指定mr框架为yarn方式-->

 

<property>

 

<name>mapreduce.framework.name</name>

 

<value>yarn</value>

 

</property>

 

<property>

 



 

<name>mapreduce.jobhistory.address</name>

 



 

<value>root01:10020</value>

 



 

<description>MapReduce JobHistoryServer IPC host:port</description>

 



 

</property>

 



 

<property>

 



 

<name>mapreduce.jobhistory.webapp.address</name>

 



 

<value>root01:19888</value>

 



 

<description>MapReduce JobHistoryServer Web UI host:port</description>

 



 

</property>

 

</configuration>

 

yarn-site.xml

 

<configuration>

 

<!-- 开启RM高可靠-->

 

<property>

 

<name>yarn.resourcemanager.ha.enabled</name>

 

<value>true</value>

 

</property>

 

<!-- 指定RMcluster id -->

 

<property>

 

<name>yarn.resourcemanager.cluster-id</name>

 

<value>RM_HA_ID</value>

 

</property>

 

<!-- 指定RM的名字-->

 

<property>

 

<name>yarn.resourcemanager.ha.rm-ids</name>

 

<value>rm1,rm2</value>

 

</property>

 

<!-- 分别指定RM的地址-->

 

<property>

 

<name>yarn.resourcemanager.hostname.rm1</name>

 

<value>root02</value>

 

</property>

 

<property>

 

<name>yarn.resourcemanager.hostname.rm2</name>

 

<value>root03</value>

 

</property>

 

<property>

 

<name>yarn.resourcemanager.recovery.enabled</name>

 

<value>true</value>

 

</property>

 

<property>

 

<name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>

 

</property>

 

<!-- 指定zk集群地址-->

 

<property>

 

<name>yarn.resourcemanager.zk-address</name>

 

<value>root04:2181,root05:2181,root06:2181,root07:2181,root08:2181</value>

 

</property>

 

<property>

 

<name>yarn.nodemanager.aux-services</name>

 

<value>mapreduce_shuffle</value>

 

</property>

 

</configuration>

 



 

slaves

 

root04

 

root05

 

root06

 

..

 

ssh root03

 

cd /myhome/usr

 

./runzk.sh “/myhome/usr/zookeeper/zkServer.sh start”

 

./runzk.sh “/myhome/usr/zookeeper/zkServer.sh status

 

./runzk.sh “/myhome/usr/hadoop/sbin/hadoop-daemon.sh start journalnode”

 



 

////////////////hdfs namenode -format

 

////////////////hdfs zkfc -formatZK

 



 

./runzk.sh “${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager”

 

hadoop-daemon.sh start namenode

 



 



 

hbase-site.xml

 

<property>

 

<name>hbase.rootdir</name>

 

<value>hdfs://root01:9000/hbase</value>

 

</property>

 

<property>

 

<name>hbase.cluster.distributed</name>

 

<value>true</value>

 

</property>

 

<property>

 

<name>hbase.zookeeper.quorum</name>

 

<value>root01</value>

 

</property>

 

<property>

 

<name>dfs.replication</name>

 

<value>5</value>

 

</property>

 



 



 



 



 



 



 



 



 



 

./runzoohadoophbasestart.sh

./runzoohadoophbasestop.sh
启动Hadoop集群:

./runall.sh "rm -rf /myhome/usr/hbase/logs/*"

 

./runall.sh "rm -rf /myhome/usr/hadoop/logs/*"

 

./runall.sh "rm -rf /myhome/usr/hadoop/hdfs/*"

 

Step1 :
在各个JournalNode节点上,输入以下命令启动journalnode服务:
sbin/hadoop-daemon.sh start journalnode
cd /myhome
./runzk.sh "/myhome/usr/zookeeper/bin/zkServer.sh start"
./runzk.sh "/myhome/usr/hadoop/sbin/hadoop-daemon.sh start journalnode"

Step2:[nn1]上,对其进行格式化,并启动:
hdfs namenode -format

hdfs zkfc -formatZK

hadoop-daemon.sh start namenode

Step3:
ssh zjenterprise02[nn2]上,同步nn1的元数据信息:
hdfs namenode -bootstrapStandby

Step4:
启动[nn2]sbin/hadoop-daemon.sh start namenode
exit
经过以上四步操作,nn1nn2均处理standby状态
Step5: ssh zjenterprise01[nn1]切换为Active
hdfs haadmin -transitionToActive --forcemanual zjenterprise01
hdfs haadmin -getServiceState zjenterprise01
ssh zjenterprise02 '/myhome/usr/hadoop/bin/hdfs haadmin -transitionToActive --forcemanual zjenterprise01' 
ssh zjenterprise02 '/myhome/usr/hadoop/bin/hdfs haadmin -getServiceState zjenterprise01'

Step6:[nn1]上,启动所有datanode
sbin/hadoop-daemons.sh start datanode

关闭Hadoop集群:
在[nn1]上,输入以下命令
sbin/stop-dfs.sh



 



 



 



 



 

你可能感兴趣的:(hadoop2.7-hbase1.0.1-zookeeper3.4.5配置 ha)