设为首页 收藏本站
查看: 878|回复: 0

[经验分享] Hadoop连载系列之三:HBase分布式安装

[复制链接]

尚未签到

发表于 2018-10-31 09:33:15 | 显示全部楼层 |阅读模式
  1 概述
  HBase是基于Hadoop的分布式的、面向列的、可拓展的开源数据库。当需要对大数据进行随机的、实时的读写时使用HBase。属于NoSQL。HBase利用Hadoop/HDFS作为其文件存储系统,利用Hadoop/MapReduce来处理HBase中的海量数据,利用Zookeeper提供分布式协作、分布式同步、配置管理等。
  HBase的架构:
  LSM - 解决磁盘随机写问题(顺序写才是王道);
  HFile - 解决数据索引问题(只有索引才能高效读);
  WAL - 解决数据持久化(面对故障的持久化解决方案);
  zooKeeper - 解决核心数据的一致性和集群恢复;
  Replication - 引入类似MySQL的数据复制方案,解决可用性;
  此外还有:自动分拆Split、自动压缩(compaction,LSM的伴生技术)、自动负载均衡、自动region迁移。
  HBase集群需要依赖于一个Zookeeper ensemble。HBase集群中的所有节点以及要访问HBase
  的客户端都需要能够访问到该Zookeeper  ensemble。HBase自带了Zookeeper,但为了方便
  其他应用程序使用Zookeeper,最好使用单独安装的Zookeeper ensemble。此外,Zookeeper ensemble一般配置为奇数个节点,并且Hadoop集群、Zookeeper ensemble、
  HBase集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网
  络通信的。
  2 安装和配置
  2.1 下载安装HBase
  下载hbase-0.96.1.1-hadoop1-bin.tar.gz,并解压到/usr下,重命名为hbase目录。hbase的版本需要与hadoop对应,查看是否对应只需要看hbase/lib/hadoop-core后面的版本号是否与hadoop的版本对应,如果不对应,可以将hadoop下hadoop-core文件复制过来,但是不能保证不会有问题。
  2.2 设置环境变量
  vim /etc/profile:
  # set hbase path
  export HBASE_HOME=/usr/hbase
  export PATH=$PATH:$HBASE_HOME/bin
  2.3 配置HBase
  编辑配置文件hbase-site.xml:vim /usr/hbase/conf/hbase-site.xml
  单机:
  
  
  hbase.rootdir
  file:///tmp/hbase-${user.name}/hbase
  
  
  伪分布:
  
  
  hbase.rootdir
  hdfs://localhost:9000/hbase
  
  
  dfs.replication
  1
  
  
  完全分布:
  1)配置hbase-site.xml
  
  
  hbase.rootdir
  hdfs://192.168.56.1:9000/hbase
  HBase数据存储目录
  
  
  hbase.cluster.distributed
  true
  指定HBase运行的模式:false:单机/伪分布;true:完全分布
  
  
  hbase.master
  hdfs://192.168.56.1:60000
  指定Master位置
  
  
  hbase.zookeeper.property.dataDir
  /var/lib/zookeeper
  
  hbase.zookeeper.quorum
  192.168.56.1,192.168.56.101,192.168.56.102,192.168.56.103,192.168.56.104
  指定ZooKeeper集群
  
  
  hbase.master.info.bindAddress
  192.168.56.1
  The bind address for the HBase Master web UI
  
  
  2) 编辑配置文件regionservers:
  192.168.56.101
  192.168.56.102
  192.168.56.103
  192.168.56.104
  3)设置环境变量hbase-env.sh:
  export JAVA_HOME=/usr/java/jdk1.7.0_45/
  export HBASE_CLASSPATH=/usr/hadoop/conf
  export HBASE_HEAPSIZE=2048
  export HBASE_MANAGES_ZK=false
  注解:
  其中,JAVA_HOME表示java安装目录,HBASE_CLASSPATH指向存放有Hadoop配置文件的目录,这样HBase可以找到HDFS的配置信息,由于本文Hadoop和HBase部署在相同的物理节点,所以就指向了Hadoop安装路径下的conf目录。HBASE_HEAPSIZE单位为MB,可以根据需要和实际剩余内存设置,默认为1000。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。
  2.4 向各个节点复制,然后配置各个节点的环境变量
  scp -r /usr/hbase 节点ip:/usr
  3 启动和停止HBase
  启动HBase:需事先启动HDFS和Zookeeper,启动顺序为HDFS-》Zookeeper-》HBase
  在server1上启动所有的节点:start-hbase.sh
  停止HBase:stop-hbase.sh
  连接HBase创建表:hbase shell
  HBase Shell; enter 'help' for list of supported commands.
  Type "exit" to leave the HBase Shell
  Version 0.96.1.1-hadoop1, rUnknown, Tue Dec 17 11:52:14 PST 2013
  hbase(main):001:0>
  查看状态:hbase(main):001:0> status
  4 servers, 0 dead, 2.2500 average load
  4 测试和Web查看
  4.1 创建表测试
  创建一个名为 small的表,这个表只有一个 column family 为 cf。可以列出所有的表来检查创建情况,然后插入些值。
  hbase(main):003:0> create 'small', 'cf'
  0 row(s) in 1.2200 seconds
  hbase(main):003:0> list
  small
  1 row(s) in 0.0550 seconds
  hbase(main):004:0> put 'small', 'row1', 'cf:a', 'value1'
  0 row(s) in 0.0560 seconds
  hbase(main):005:0> put 'small', 'row2', 'cf:b', 'value2'
  0 row(s) in 0.0370 seconds
  hbase(main):006:0> put 'small', 'row3', 'cf:c', 'value3'
  0 row(s) in 0.0450 seconds
  检查插入情况:Scan这个表
  hbase(main):005:0> scan 'small'
  Get一行,操作如下
  hbase(main):008:0> get 'small', 'row1'
  disable 再 drop 这张表,可以清除你刚刚的操作
  hbase(main):012:0> disable 'small'
  0 row(s) in 1.0930 seconds
  hbase(main):013:0> drop 'small'
  0 row(s) in 0.0770 seconds
  导出与导入
  hbase org.apache.hadoop.hbase.mapreduce.Driver export small small
  导出的表,在hadoop文件系统的当前用户目录下,small文件夹中。例如,导出后在hadoop文件系统中的目录结构:
  hadoop dfs -ls
  Found 1 items
  drwxr-xr-x   - hadoop supergroup          0 2013-10-22 10:44 /user/hadoop/small
  hadoop dfs -ls ./small
  Found 3 items
  -rw-r--r--   2 hadoop supergroup          0 2013-10-22 10:44 /user/hadoop/small/_SUCCESS
  drwxr-xr-x - hadoop supergroup          0 2013-10-22 10:44 /user/hadoop/small/_logs
  -rw-r--r--   2 hadoop supergroup      285 2013-10-22 10:44 /user/hadoop/small/part-m-00000
  把这个表导入到另外一台集群中hbase中时,需要把part-m-00000先put到另外hadoop中,假设put的路径也是:
  /user/hadoop/small/
  而且,这个要导入的hbase要已经建有相同第表格。
  那么从hadoop中导入数据到hbase:
  hbase org.apache.hadoop.hbase.mapreduce.Driver import small part-m-00000
  这样,没有意外的话就能正常把hbase数据导入到另外一个hbase数据库。
  4.2 Web查看
  用于访问和监控Hadoop系统运行状态
  Daemon
  缺省端口
  配置参数
  HDFS
  Namenode
  50070
  dfs.http.address
  Datanodes
  50075
  dfs.datanode.http.address
  Secondarynamenode
  50090
  dfs.secondary.http.address
  Backup/Checkpoint node*
  50105
  dfs.backup.http.address
  MR
  Jobracker
  50030
  mapred.job.tracker.http.address
  Tasktrackers
  50060
  mapred.task.tracker.http.address
  HBase
  HMaster
  60010
  hbase.master.info.port
  HRegionServer
  60030
  hbase.regionserver.info.port
  http://192.168.56.1:60010/master-status
  5 总结
  本文介绍了HBase安装和配置,包括单机、伪分布、完全分布三种模式的配置,重点在于HBase分布式集群的安装和配置。后续将会介绍Chukwa集群、Pig等。
  ——RangoChen


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-628791-1-1.html 上篇帖子: Hadoop连载系列之二:Zookeeper分布式安装 下篇帖子: Hadoop连载系列之四:数据收集分析系统Chukwa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表