当前位置: 首页 > news >正文

【Hadoop】Zookeeper、HBase、Sqoop

Zookeeper

概述

Zookeeper可以监视HDFS系统的name node和data node,HBase也极度依赖zookeeper,因为zookeeper维护了HBase的源数据以及监控所有region server的健康状态,如果region server宕机会通知master 。它也可以避免脑裂(只有一个master大脑)。啊不免,通过分布式锁实现数据的一致性,YARN资源管理也依赖zookeeper,它为YARNresource manager提供节点选举服务。他还管理进入的消息队列。

总的来说,它可以实现任意节点更改,每个节点生效;以及通过分布式锁实现数据的一致性;避免脑裂,保证只出现一个HBase master;并且它保存了HBase的源数据,我要查询zookeeper就能知道当前哪些HBase的region server是活着的;通过watch机制监听zookeeper上某个数据节点的变化,当被监听的节点有变化时,它会主动推送通知给所有监听的客户端。

正是因为zookeeper如此强大,才能构建起如此稳定高效的分布式数据处理平台

特征:

保证系统一致性--为客户展示统一视图

可靠性--如果消息被所有服务器接受,会被所有服务器接受

实时性--a机子写入不会立刻在b展示出来

等待无关--执行快的不等慢的

原子性--成功或失败,没有中间状态

顺序性--

每个节点都装zookeeper,每个节点都有server,运行一个quorumpeermain,每次启动选择一个server作为leader(节点是单数以应用选举机制)。

Zookeeper角色

扩展时增加server,投票延迟大,影响性能,所以增加了observer。

应用场景:

在任何节点修改配置文件,其他节点会同步

心跳检测,namenode需要知道datanode状态,jobtracker需要知道tasktracker的状态

HBase--nosql数据库(not only sql)

表的特点:

列可以动态增加

面向列存储和管理

空列不占用空间,设计可以稀疏

每个单元数据可以有多个版

数据类型都是字符串

行存储和列存储的对比

传统的关系型数据库是按行存储,比如mysql、oracle, 它的特点就是把一整行的数据放在一起,它在物理上是相邻的。这非常有利于需要频繁的增删、改查和读取整行数据的操作,比如你要查询一个用户的所有信息。那么你就只需要找到这一行的位置,效率很高。

想象一下你的表有100列,但是呢,你只需要查询所有人的年龄,这一列如果是按行存储,你必须要把每一行的所有的100列数据都从磁盘读出来,然后从中提取出年龄的列,这产生了非常大的I/O浪费,速度非常慢,但是列存储的话可以直接定位到年龄,这一列所在的物理存储块,跳过了其他99列不相关的数据,I/O效率很高

并且同一列的数据,它一般有相同的呃,这个数据类型呃,所以你对这一列保存的时候可以压缩,这样就节省了那个磁盘占用的空间。并且HBase它的数据是按列族存储的,可以在运行的时候动态的添加新的列,这样你就不用像关系型数据库那样执行alter table的命令。

逻辑存储

column family:列族

column:列

单元格:由 {RowKey, Column Family:Column Qualifier, Timestamp}唯一确定的存储单元,里面存储着具体的值(Value)

物理存储

横向切分不同的region,region太大会自动分裂,region是HBase的基本单位。

一个region被纵向切分成store,一个列族对应一个store。store中的memstore表是数据结构,通常是跳表,Hfile是实际存储文件。

HBase架构

四个基本组件:

Client:访问HBase

Zookeeper:master和regionserver启动时会向zookeeper注册。保证只有一个master(防止脑裂),监控region server的心跳并实时通知master,存储region的寻址入口(实现了随机存取),存储HBase的元数据。

Master:给region server分配region,负责负载均衡。监听region server 的心跳。

region server:处理客户端的读写请求

zookeeper保证容错性:

Master崩溃,zookeeper重新选一个master,region server崩溃,zookeeper能监听到,然后master重新分配任务。

适用场景

如果你需要处理海量数据、需要高可扩展性、并且数据模型相对简单(不需要复杂的JOIN操作和事务),那么HBase是一个非常好的选择。如果你需要处理复杂的关系、需要严格的ACID原子性、一致性、隔离性、持久性事务和强大的SQL查询能力,那么关系型数据库仍然是首选。

随机存取、大数据下高读写,操作简单的查询使用HBase

Sqoop  

sql- to-hadoop ,传统关系型数据库到Hadoop的桥梁。将关系型数据库数据导入到HDFS、Hive、HBase。将数据库同步问题转换为map reduce作业。

http://www.xdnf.cn/news/1374409.html

相关文章:

  • 全球位置智能软件CR10为73%,市场集中度高
  • Java中高效获取IP地域信息方案全解析:从入门到生产实践
  • jQuery版EasyUI的ComboBox(下拉列表框)问题
  • JS(面试)
  • Proxmox VE 中启用 CentOS 虚拟机的串口终端(xterm.js 控制台)
  • 深度剖析HTTP和HTTPS
  • .NetCore 接入 Nacos,实现配置中心和服务注册
  • 本地windows电脑部署html网页到互联网:html+node.js+ngrok/natapp
  • oracle 表空间扩容(增加新的数据文件)
  • 使用appium对安卓(使用夜神模拟器)运行自动化测试
  • STM32八大模式
  • 基于单片机空调温度控制测温ds18b20系统Proteus仿真(含全部资料)
  • 人机交互如何变革科普展示?哪些技术正成吸睛焦点?
  • 初春养生指南模板页
  • Rust 登堂 之 迭代器Iterator(三)
  • el-carousel在新增或者删除el-carousel-item时默认跳到第一页的原因和解决
  • betaflight configurator 如何正确烧写飞控
  • 基于muduo库的图床云共享存储项目(二)
  • Linux 云服务器内存不足如何优化
  • 【RAG】使用llamaindex进行RAG开发
  • 6 种无需 iTunes 将照片从 iPhone 传输到电脑
  • TDengine IPv6 支持用户手册
  • “java简单吗?”Java的“简单”与PHP的挑战:编程语言哲学-优雅草卓伊凡
  • KDMS V4 重磅升级,智能迁移赋能国产化替代!
  • android证书相关
  • 像WPS Office 一样处理pdf页面尺寸
  • AI 解决生活小事 2——用 AI 做一回新闻播客
  • 使用人工智能写一个websocket聊天页面
  • PDF补丁丁:开源多年,完全免费的多功能 PDF 工具箱
  • Agno Agent​​