HBase集群环境搭建v1.0
本文档环境基于ubuntu14.04版本,如果最终不使用SuperMap iServer 9D ,可以不配置geomesa-hbase_2.11-2.0.1-bin.tar.gz
(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)
一、准备
1.1 软件版本
- hadoop-2.6.5
- zookeeper-3.4.10.tar.gz
- hbase-1.3.1-bin.tar.gz
- geomesa-hbase_2.11-2.0.1-bin.tar.gz
1.2 网络规划
本文规划搭建 3 台机器组成集群模式,IP 与计算机名分别为, 如果是单台搭建,只需填写一个即可
192.168.20.122 master
192.168.20.123 slave1
192.168.20.124 slave2
1.3 软件包拷贝
可将上述软件包拷贝到 3 台机器的 opt 目录下
- JDK 1.8.0
- Hadoop 2.6.5
- zookeeper-3.4.10.tar.gz
- hbase-1.3.1-bin.tar.gz
- geomesa-hbase_2.11-2.0.1-bin.tar.gz
1.4 SSH 设置
修改/etc/ssh/sshd_config 文件,将以下三项开启 yes 状态
PermitRootLogin yes
PermitEmptyPasswords yes
PasswordAuthentication yes
重启 ssh 服务
service ssh restart
这样 root 用户可直接登陆,以及为后续 ssh 无密码登录做准备。
1.5 绑定 IP 和修改计算机名
1.5.1 修改/etc/hosts,添加 IP 绑定注释 127.0.1.1 绑定(不注释会影响 hadoop 集群)

1.5.2 修改/etc/hostname,为绑定计算机名。(计算机名和上面 hosts 绑定名必须一致)
1.6 SSH 无密码登陆(需提前安装 ssh)
1、ssh-keygen -t rsa #用 rsa 生成密钥,一路回车。
2、cd ~/.ssh #进到当前用户的隐藏目录(.ssh)。
3、本机装有 ssh-copy-id 命令,可以通过
ssh-copy-id root@第二台机器名
然后输入密码,在此之后在登陆第二台机器,可以直接 ssh[空格]第二台机器名 进行访问,首次设置需要输入密码,第二次之后不再需要输入密码。
1.7 JDK 安装(三台机器可同步进行)
下载:jdk-8u131-linux-x64.tar.gz 包,放到/opt 下解压
1.7.1 将解压后的文件夹重命名
mv jdk1.8.0_131 jdk
1.7.1 将 JDK 环境变量配置到/etc/profile 中
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
1.7.2 检查 JDK 是否配置好
source /etc/profile
java -version

1.8 其他配置(三台机器每台单独配置)
1.8.1 网络配置
修改为固定 IP ,/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.20.122
netmask 255.255.255.0
gateway 192.168.20.1
重启网络
service networking restart
1.8.2 DNS 配置
第一种方法,永久改
修改/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)
nameserver 119.6.6.6
保存后执行
resolvconf -u
查看 resolv.conf 文件就可以看到我们的设置已经加上
cat /etc/resolv.conf
重启 resolv
/etc/init.d/resolvconf restart
第二种方法,临时 改
修改 /etc/resolv.conf 文件,增加
nameserver 119.6.6.6
重启 resolv
/etc/init.d/resolvconf restart
二、Hadoop 部署
2.1 Hadoop 安装(三台机器可同步进行)
- 下载 hadoop2.6.5(hadoop-2.6.5.tar.gz)
- 解压 tar -zxvf hadoop-2.6.5.tar.gz ,并在主目录下创建 tmp、dfs、dfs/name、dfs/node、dfs/data
root@master:/opt/hadoop-2.6.5# mkdir tmp
root@master:/opt/hadoop-2.6.5# mkdir dfs
root@master:/opt/hadoop-2.6.5# mkdir dfs/name
root@master:/opt/hadoop-2.6.5# mkdir dfs/node
root@master:/opt/hadoop-2.6.5# mkdir dfs/data
2.2 Hadoop 配置
以下操作都在 hadoop-2.6.5/etc/hadoop 下进行
2.2.1 编辑 hadoop-env.sh 文件,修改 JAVA_HOME 配置项为 JDK 安装目录
export JAVA_HOME=/opt/jdk
2.2.2 编辑 core-site.xml 文件,添加以下内容,其中 master 为计算机名,/opt/hadoop-2.6.5/tmp 为手动创建的目录
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-2.6.5/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.spark.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.spark.groups</name>
<value>*</value>
</property>
</configuration>
2.2.3 编辑hdfs-site.xml文件,添加以下内容
其中master为计算机名,file:/opt/hadoop-2.6.5/dfs/name和file:/opt/hadoop-2.6.5/dfs/data为手动创建目录
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.6.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.6.5/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
复制mapred-site.xml.template并重命名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
2.2.4 编辑mapred-site.xml文件,添加以下内容
其中master为计算机名
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
2.2.5 编辑yarn-site.xml文件,添加以下内容
其中master为计算机名
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
2.2.6 修改slaves文件,添加本机作为集群节点

2.2.7 Hadoop集群搭建
hadoop配置集群,可以将配置文件etc/hadoop下内容同步到其他机器上,既2.2.1-2.2.6无需在一个个配置。
cd /opt/hadoop-2.6.5/etc
scp -r hadoop root@另一台机器名:/opt/hadoop-2.6.5/etc
2.3 Hadoop启动
1.格式化一个新的文件系统,进入到hadoop-2.6.5/bin下执行:
./hadoop namenode -format
2.启动hadoop,进入到hadoop-2.6.5/sbin下执行:
./start-all.sh
看到如下内容说明启动成功

2.4 Hadoop集群检查
检查hadoop集群,进入hadoop-2.6.5/bin下执行
./hdfs dfsadmin -report

三、ZooKeeper集群部署
3.1 ZooKeeper安装(三台机器可同步进行)
- 下载ZooKeeper(zookeeper-3.4.10.tar.gz),放到opt目录下
- 解压zookeeper-3.4.10.tar.gz,并将解压后的目录名进行修改
tar -zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper
3.2 ZooKeeper配置(三台机器可同步进行)
1.进入解压后的的zookeeper目录,创建存储数据目录zkdata
cd /opt/zookeeper
mkdir zkdata
2.进入zookeeper/conf目录,复制zoo_sample.cfg并重命名为zoo.cfg
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
3.修改zoo.cfg文件,修改dataDir为我们新创建地址,并增加其他zookeeper节点
dataDir=/opt/zookeeper/zkdata
server.1=192.168.20.122:2888:3888
server.2=192.168.20.123:2888:3888
server.3=192.168.20.124:2888:3888

4.进入zkdata目录,新建一个文件myid文件,写入标识ID即可,ID与上面server.X相匹配
cd /opt/zookeeper/zkdata
vi myid
注意:
比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X
server.1=192.168.20.122:2888:3888【192.168.20.122服务器上面的myid填写1】
server.2=192.168.20.123:2888:3888【192.168.20.123服务器上面的myid填写2】
server.3=192.168.20.124:2888:3888【192.168.20.124服务器上面的myid填写3】
3.3 ZooKeeper启动
在三台机器上分别手动一个个启动ZooKeeper,进入/opt/zookeeper-3.4.10/bin目录
cd /opt/zookeeper/bin
./zkServer.sh start
是否启动成功,执行以下命令
./zkServer.sh status
122机器输出
root@master:/opt/zookeeper/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
123机器输出
root@slave1:/opt/zookeeper/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: leader
124机器输出
root@slave2:/opt/zookeeper/bin# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
启动过程命令:./zkServer.sh start-foreground
四、HBase部署
4.1 HBase安装
- 下载HBase(hbase-1.3.1-bin.tar.gz),放到opt目录下
- 解压hbase-1.3.1-bin.tar.gz
tar -zxvf hbase-1.3.1-bin.tar.gz
4.2 HBase配置
1.进入habase的conf目录
/opt/hbase-1.3.1/conf
2.编辑hbase-env.sh文件,添加Java环境变量并关闭HBase自带的Zookeeper
export JAVA_HOME=/opt/jdk/
export HBASE_MANAGES_ZK=false
3.编辑hbase-site.xml 文件,添加配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>master:60000</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
<property>
<name>hbase.zoopkeeper.property.dataDir</name>
<value>/opt/zookeeper/zkdata</value>
</property>
</configuration>
4.编辑regionservers文件,将三台机器名添加其中
root@master:/opt/hbase-1.3.1/conf# cat regionservers
master
slave1
slave2
4.3 第三方包导入
第三方包,我们只需要geomesa-hbase中的一个jar文件,将该jar包复制到hbase中的lib目录。
geomesa-hbase下载地址:https://github.com/locationtech/geomesa/releases
此次我们使用2.11-2.0.1版本,下载后完整包名为:geomesa-hbase_2.11-2.0.1-bin.tar.gz
所使用的jar包位于geomesa-hbase_2.11-2.0.1/dist/hbase/geomesa-hbase-distributed-runtime_2.11-2.0.1.jar
cd /opt/hbase-1.3.1/lib
cp /opt/geomesa-hbase-distributed-runtime_2.11-2.0.1.jar .
4.4 其它2个节点也进行同步进行上述操作
可以使用scp方式进行同步,也可以将第三方复制到其它节点,将修改的几个配置文件进行替换
#scp命令
cd /opt
scp -r hbase-1.3.1 root@slave1:/opt
scp -r hbase-1.3.1 root@slave2:/opt
4.5 HBase启动
进入HBase中bin目录下,执行以下命令,完成HBase集群启动
./start-hbase.sh
4.6 检查HBase集群
浏览器访问http://192.168.20.122:16010/ (其中192.168.20.122为master节点IP)
能看到三个节点,则表示HBase集群搭建成功

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)
HBase集群环境搭建v1.0的更多相关文章
- HBase集群环境搭建v2.0
本文档环境基于ubuntu16.04版本,如果最终不使用SuperMap iServer 10i ,可以不配置geomesa-hbase_2.11-2.2.0-bin.tar.gz 相比1.0版本,升 ...
- HBase —— 集群环境搭建
一.集群规划 这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的 ...
- 数据仓库组件:HBase集群环境搭建和应用案例
本文源码:GitHub || GitEE 一.Hbase简介 1.基础描述 Hadoop原生的特点是解决大规模数据的离线批量处理场景,HDFS具备强大存储能力,但是并没有提供很强的数据查询机制.HBa ...
- hadoop(八) - hbase集群环境搭建
1. 上传hbase安装包hbase-0.96.2-hadoop2-bin.tar.gz 2. 解压 tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /clo ...
- Hadoop,HBase集群环境搭建的问题集锦(四)
21.Schema.xml和solrconfig.xml配置文件里參数说明: 參考资料:http://www.hipony.com/post-610.html 22.执行时报错: 23., /comm ...
- Hbase集群环境搭建
Hbase数据库依赖 Hadoop和zookeeper,所以,安装Hbase之前,需要先把zookeeper集群搭建好.(当然,Hbase有内建的zookeeper,不过不建议使用).Hbase配置上 ...
- Hadoop,HBase集群环境搭建的问题集锦(二)
10.艾玛, Datanode也启动不了了? 找到log: Caused by: java.net.UnknownHostException: Invalid host name: local hos ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
随机推荐
- [转]Oracle 查询表外键相关信息
原文地址:https://www.csdn.net/gather_27/MtTaUgxsNzYxMi1ibG9n.html 查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询): s ...
- 源码包的三个参数make-configure-make install解释
1.configure 这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码: ./configure --prefix= ...
- meta name="location" 标签的使用
在进行一些操作的时候,我们可能会用到这个标签来什么,地理位置,不错的网站优化标签. <meta name="location" content="province= ...
- 将已经存在的项目提交到gitlab的新分支中
将已经存在的项目提交到gitlab中 在gitlab中新增用户jack 登录jack这个git用户,然后创建仓库 mxonline 已经写好了部分功能的项目存放在 D:\>cd D:\pytho ...
- **80. Remove Duplicates from Sorted Array II 删除排序数组中的重复项 II
1. 原始题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件 ...
- exports module.exports export export default之间的关系
exports 和module.exports是CommonJS模块规范 export export default是ES6模块的规范,两者完全是不同的概念. node应用由模块组成,采用的是Comm ...
- javaScript Es6数组与对象的实例方法
个人心得 我们在没有接触Es6方法之前,做一些算法之类的事情是就比较麻烦,在做的过程中也要考虑很多的问题,比较麻烦,而Es6的方法正是来方便我们在平常运用时能够将问题简便化,大大的减少我们的日常代码 ...
- Logstash+ Kafka基于AOP 实时同步日志到es
Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地,logstash丰富的插件(logstash-in ...
- 高性能Java代码的规范
代码优化的目标是 减小代码的体积 提高代码运行的效率 代码优化细节 1.尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final的例子,例 ...
- BZOJ3791 作业(DP)
题意: 给出一个长度为n的01序列: 你可以进行K次操作,操作有两种: 1.将一个区间的所有1作业写对,并且将0作业写错: 2.将一个区间的所有0作业写对,并且将1作业写错: 求K次操作后最多写对了多 ...