hbase-2.0.4集群部署
2024-09-05 07:53:13
hbase-2.0.4集群部署
1. 集群节点规划:
rzx1 HMaster,HRegionServer
rzx2 HRegionServer
rzx3 HRegionServer
前提:搭建好hadoop集群
2. 在rzx1节点上配置执行环境的JAVA_HOME和是否利用自带Zookeeper
在hbase目录下:vim conf/hbase-env.sh
export JAVA_HOME=/home/bigdata/software/jdk1.8.0_201
export HBASE_MANAGES_ZK=false ##不使用自带Zookeeper
其他配置参数在配置开发测试集群使用默认,生产环境根据数据量而定配置
3. 在rzx1节点上配置hbase在HDFS上存储的路径和外部zookeeper地址
在hbase目录下:vim conf/ hdfs-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://rzx1:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>rzx1,rzx2,rzx3</value>
</property>
</configuration>
注意在配置zk的时候只配置域名或IP就可以了,不要配置端口如rzx1:2181
这样配置虽然对zookeeper启动没有任何影响,但是之后如果搭建kylin集群会报错的
4. 将hadoop etc/hadoop下的core-site.xml,hdfs-site.xml复制到hbase conf/下
在hbase目录下(hbase和hadoop同级目录)
cp ../hadoop-2.7.7/etc/hadoop/core-site.xml conf/
cp ../hadoop-2.7.7/etc/hadoop/core-site.xml conf/
因为hbase的数据本质上存储在hdfs的,且hbase执行引擎是MapReduce
5. 配置HRegionServer,修改 regionservers文件
在hbase目录下:vim conf/regionservers
rzx1
rzx2
rzx3
如果想rzx1上只是HMaster,则配rzx2,rzx3即可
6. 在主节点rzx1上将配置好的hbase目录scp到rzx2,rzx3上
在hbase目录的上层目录下:
scp -r hbase-2.0.4 root@rzx1:/home/bigdata/software/
scp -r hbase-2.0.4 root@rzx2:/home/bigdata/software/
7. 在三个节点上都配置hbase环境变量
前提:已经配置好java, hadoop, hive,zookeeper环境变量
vim ~/.bashrc
添加:
export HBASE_HOME=/home/bigdata/software/hbase-2.0.4
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin:$HBASE_HOME/bin:$HCAT_HOME/bin:$KYLIN_HOME/bin:$PATH
8. 在主节点上启动hbase
前提:已经正确启动zookeeper集群
start-hbase.sh
9. jps查看进程
rzx1节点上应该有: HMaster, HRegionServer这两个进程
rzx2,rzx3节点上只有HRegionServer一个进程
10. 启动无误后可以访问hbase web UI
界面: http://rzx1:16010/master-status
主要查看ServerName是否和预期一致,也就是配置的HRegionServer
说明:这里只是简易的开发测试集群搭建配置,实际数据量过大的生产环境配置可能相对复杂些
最新文章
- 剑指Offer面试题:35.将字符串转换为数字
- 《JS语言精粹》学习笔记 函数部分の闭包
- 【JUC】JDK1.8源码分析之ConcurrentSkipListSet(八)
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现电子签名功能
- [Head First设计模式]生活中学设计模式——状态模式
- SSH登录远程主机执行脚本找不到环境变量
- J2EE学习(2)--何謂容器【良葛格学习笔记搬】
- HOWTO - Basic MSI安装包在安装运行过程中如何获取完整源路径
- Basic motion detection and tracking with Python and OpenCV
- c# 操作xml题目
- Backbone学习笔记
- Python字符串处理NoneType的处理
- Spring包的方法WebUtils.getParametersStartingWith(request,String)
- 用for循环遍历DataTable中的数据
- Cocos2d-x 3.0final 终结者系列教程01-无论是从cocos2d-x2.x升级到版本cocos2d-x3.x
- Unofficial Microsoft SQL Server Driver for PHP (sqlsrv)非官方的PHP SQL Server 驱动
- 干货分享:让你分分钟学会 javascript 闭包(转)
- C# 图片识别
- 小容量的byteBuffer 读取大文本
- 【dp】P1434 [SHOI2002]滑雪
热门文章
- git 初始化提交项目
- Mysql中存储过程和函数的写法
- 【leetcode】519. Random Flip Matrix
- Ceph介绍及原理架构分享
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
- <;Jmeter入门不放弃>;之<;2.常用功能>;
- 巴厘岛的雕塑(sculptures)
- 团队冲刺DAY5
- 20175223 《Java程序设计》第十一周学习总结
- 为什么要用getBaseContext()方法代替this?(转)