Hbase 集群部署

43 阅读3分钟

1 设置主机名与 IP 映射关系(所有节点)

vi /etc/hosts

10.101.240.41 hbase0
10.101.240.42 hbase1
10.101.240.43 hbase2
10.101.240.44 hbase3

2 配置节点间免密(所有节点)

# 生成密钥
ssh-keygen -t rsa
# 拷贝公钥至目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户@远端ip

3 配置 JDK 环境(所有节点)

vim ~/.bashrc

# Java
export JAVA_HOME=/mnt/oge/jdk/
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin

source ~/.bashrc

4 部署hadoop

  • 创建存放 hadoop 临时数据的文件夹(所有节点)
mkdir -p /mnt/storage/hadoop_data
  • 编辑 /mnt/oge/hadoop-2.7.3/etc/hadoop/core-site.xml 文件(hbase0)
<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://hbase0:9000</value>
    </property>
    <property>
       <name>hadoop.tmp.dir</name>
       <value>/mnt/oge/hadoop_data</value>
   </property>
</configuration>
  • 编辑 /mnt/oge/hadoop-2.7.3/etc/hadoop/hdfs-site.xml 文件(hbase0)
<configuration>
   <property>
		<name>dfs.replication</name>
		<value>2</value>
   </property>
   <property>
		<name>dfs.namenode.name.dir</name>
		<value>/mnt/oge/hadoop_data/dfs/name</value>
   </property>
   <property>
		<name>dfs.datanode.data.dir</name>
		<value>/mnt/oge/hadoop_data/dfs/data</value>
   </property>
</configuration>
  • 编辑 /mnt/oge/hadoop-2.7.3/etc/hadoop/slave 文件(hbase0)
hbase0
hbase1
hbase2
hbase3
  • 编辑 /mnt/oge/hadoop-2.7.3/etc/hadoop/yarn-site.xml 文件(hbase0)
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>hbase0:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hbase0:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hbase0:8031</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hbase0:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hbase0:8088</value>
</property>
</configuration>
  • 编辑 /mnt/oge/hadoop-2.7.3/etc/hadoop/mapred-site.xml 文件(hbase0)
<configuration>
<property>
	<name>mapred.job.tracker</name>
	<value>hbase0:9001</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hbase0:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hbase0:19888</value>
</property>
</configuration>
  • 将 hadoop 复制到其他节点(hbase0)
scp -r /mnt/oge/hadoop-2.7.3 root@其他节点:/mnt/oge/
  • 配置环境变量(所有节点)
vim ~/.bashrc

# hadoop
export HADOOP_HOME=/mnt/oge/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_LOG_DIR=/mnt/oge/hadoop-2.7.3/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export HADOOP_PREFIX=/mnt/oge/hadoop-2.7.3/

source ~/.bashrc
  • 执行格式化文件系统命令(hbase0)
# 进入hadoop/bin
cd /mnt/oge/hadoop-2.7.3/bin
# 格式化
./hadoop namenode -format
  • 启动 hadoop 集群(hbase0)
# 进入hadoop/sbin
cd /mnt/oge/hadoop-2.7.3/sbin
# 启动
./start-all.sh

执行命令后,输入yes,可能会有些慢,耐心等待

  • 通过 jps 命令可以查看到 DataNodeNameNode
[root@hbase0 sbin]# jps
35504 NameNode
35640 DataNode
36299 NodeManager
36397 Jps
35981 ResourceManager
35837 SecondaryNameNode

浏览器打开 hbase0_ip:8088 即可看到 hadoop的 YARN ResourceManager 管理界面

浏览器打开 hbase0_ip:50070 即可看到 hadoop的 hdfs 管理界面

5 部署zookeeper(奇数个节点)

  • 编辑 /mnt/oge/zookeeper-3.4.13/conf/zoo.cfg 文件(hbase0)
dataDir=/mnt/oge/zookeeper-3.4.13/data

server.1=hbase0:2888:3888
server.2=hbase1:2888:3888
server.3=hbase2:2888:3888
  • /mnt/oge/zookeeper-3.4.13/data 下创建一个文件 myid (hbase0)
mkdir /mnt/oge/zookeeper-3.4.13/data
cd /mnt/oge/zookeeper-3.4.13/data
echo 1 >> myid

在第1台机器里面填写的内容: 1 在第2台机器里面填写的内容: 2 在第3台机器里面填写的内容: 3

这个我们后面把 zookeeper 目录复制到其他机器上时再统一修改

  • 复制 zookeeper 到其他节点(hbase0)
scp -r /mnt/oge/zookeeper-3.4.13 root@其他节点:/mnt/oge
  • 修改 /mnt/oge/zookeeper-3.4.13/data/myid 中的内容
  • 配置环境变量(所有节点)
vim ~/.bashrc

# zookeeper
export ZOOKEEPER_HOME=/mnt/oge/zookeeper-3.4.13
export PATH=$ZOOKEEPER_HOME/bin:$PATH

source ~/.bashrc
  • 启动(所有节点)

分别在每台机器上运行zkServer.sh start命令

需要关闭防火墙

cd /mnt/oge/zookeeper-3.4.13/bin
./zkServer.sh start

6 部署Hbase

  • 编辑/mnt/oge/hbase-1.4.13/conf/hbase-env.sh文件(hbase0)
export JAVA_HOME=/mnt/oge/jdk
  • 编辑/mnt/oge/hbase-1.4.13/conf/hbase-site.xml文件(hbase0)
<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hbase0:9000/hbase</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hbase0,hbase1,hbase2</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/mnt/oge/zookeeper-3.4.13/data</value>
</property>
<property>
    <name>hbase.master</name>
    <value>hdfs://hbase0:60000</value>
</property>
<property>
    <name>hbase.client.keyvalue.maxsize</name>
    <value>514672800</value>
</property>
<property>
   <name>hbase.server.keyvalue.maxsize</name>
   <value>544572800</value>
</property>
</configuration>
  • 编辑/mnt/oge/hbase-1.4.13/conf/regionservers文件(hbase0)
hbase0
hbase1
hbase2
hbase3
  • 拷贝 hbase 目录至其他节点(hbase0)
scp -r /mnt/oge/hbase-1.4.13 root@其他节点:/mnt/oge
scp -r /mnt/oge/hbase-1.4.13 root@hbase1:/mnt/oge
  • 配置环境变量(所有节点)
vim ~/.bashrc

# hbase
export HBASE_HOME=/mnt/oge/hbase-1.4.13
export PATH=$HBASE_HOME/bin:$PATH

source ~/.bashrc
  • 启动 hbase(hbase0)
cd /mnt/oge/hbase-1.4.13/bin
./start-hbase.sh
  • 浏览器打开 hbase0_ip:16010 即可看到 hbase 部署成功