Hbase单机部署
一、任务描述本实验任务主要完成基于ubuntu环境的Hbase单机部署的工作。通过完成本实验任务,要求学生熟练掌握Hbase单机部署的方法,为后续实验的开展奠定Hbase平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。二、任务目标1、掌握Hbase单机部署的过程三、任务环境Ubuntu、Hbase1.2.6四、任务分析Hbase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统“。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase有三种模式:单机模式,伪分布式模式,完全分布式模式。学会Hbase单机部署的过程。五、 任务实施步骤1、Hbase单机模式配置右击桌面上选择【Open Terminal Here】打开终端。 在弹出的终端中输入【cd /simple/soft】进入软件包的所在文件夹中,并通过【ls】查看文件夹下所有软件。如图1所示。图1 查看软件包 使用命令【tar -zxvf hbase-1.3.1-bin.tar.gz -C /simple】解压Hbase到simple目录下。如图2所示。图2 解压hbase软件包 使用【cd /simple】进入软件的所在文件夹中,并通过【ls】查看文件夹下所有软件,然后使用命令【mv hbase-1.2.6 hbase】。如图3所示。图3 重命名hbase 进入到hbase的conf目录下, 修改vim hbase-env.sh文件。如图4所示。图4 修改hbase-env.sh文件 进入到hbase的conf目录下, 修改vim hbase-site.xml文件。如图5所示。图5 修改hbase-site.xml文件步骤2、启动hbase进入到hbase bin文件下,通过命令【./start-hbase.sh】来启动服务。如图6所示。图6 启动hbase 利用jps查看hbase进程。如图7所示。图7 启动其他节点 进入hbase命令行,查看所有表。如图8所示。图8 查看所有表♥ 知识链接HBase的特点nameValue大一个表可以有上亿行,上百万列。面向列面向列表(簇)的存储和权限控制,列(簇)独立检索。稀疏对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。无模式每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。数据多版本每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。数据类型单一HBase中的数据都是字符串,没有类型。♥ 温馨提示HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Redis6
1. NoSQL数据库简介1.1. 技术发展技术的分类1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis3、解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch1.1.1. Web1.0时代Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。1.1.2. Web2.0时代随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。1.1.3. 解决CPU及内存压力1.1.4. 解决IO压力1.2. NoSQL数据库1.2.1. NoSQL数据库概述NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。不遵循SQL标准。不支持ACID。远超于SQL的性能。1.2.2. NoSQL适用场景对数据高并发的读写海量数据的读写对数据高可扩展性的1.2.3. NoSQL不适用场景需要事务支持基于sql的结构化查询存储,处理复杂的关系,需要即席查询。(用不着sql的和用了sql也不行的情况,请考虑用NoSQL)1.2.4. Memcache很早出现的NoSql数据库数据都在内存中,一般不持久化支持简单的key-value模式,支持类型单一一般是作为缓存数据库辅助持久化的数据库1.2.5. Redis几乎覆盖了Memcached的绝大部分功能数据都在内存中,支持持久化,主要用作备份恢复除了支持简单的key-value模式,还支持多种数据结构的存储,比如list、set、hash、zset等。一般是作为缓存数据库辅助持久化的数据库1.2.6. MongoDB高性能、开源、模式自由(schema free)的文档型数据库数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能支持二进制数据及大型对象可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据。1.3. 行式存储数据库(大数据时代)1.3.1. 行式数据库1.3.2. 列式数据库1.3.2.1 HbaseHBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。1.3.2.2 Cassandra[kəˈsændrə]Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。计算机存储单位 计算机存储单位一般用B,KB,MB,GB,TB,EB,ZB,YB,BB来表示,它们之间的关系是:位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。字节 byte:8个二进制位为一个字节(B),最常用的单位。1KB (Kilobyte 千字节)=1024B,1MB (Megabyte 兆字节 简称“兆”)=1024KB,1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),1PB(Petabyte 千万亿字节 拍字节)=1024TB,1EB(Exabyte 百亿亿字节 艾字节)=1024PB,1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024 ZB,1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.注:“兆”为百万级数量单位。1.4. 图关系型数据库主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)1.5. DB-Engines 数据库排名http://db-engines.com/en/ranking2. Redis概述安装Redis是一个开源的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。并且在此基础上实现了master-slave(主从)同步。2.1. 应用场景2.1.1. 配合关系型数据库做高速缓存高频次,热门访问的数据,降低数据库IO分布式架构,做session共享2.1.2. 多样的数据结构存储持久化数据2.2. Redis安装Redis官方网站Redis中文官方网站http://redis.iohttp://redis.cn/2.2.1. 安装版本6.2.1 for Linux(redis-6.2.1.tar.gz)链接:https://pan.baidu.com/s/1cUAq0x2frB95IiG2SujqHA?pwd=2022提取码:2022不用考虑在windows环境下对Redis的支持2.2.2. 安装步骤2.2.2.1. 准备工作:下载安装最新版的gcc编译器安装C 语言的编译环境yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
测试 gcc版本gcc --version2.2.2.2. 下载redis-6.2.1.tar.gz放/opt目录2.2.2.3. 解压命令:tar -zxvf redis-6.2.1.tar.gz2.2.2.4. 解压完成后进入目录:cd redis-6.2.12.2.2.5. 在redis-6.2.1目录下再次执行make命令(只是编译好)2.2.2.6. 如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件2.2.2.7. 解决方案:运行make distclean2.2.2.8. 在redis-6.2.1目录下再次执行make命令(只是编译好)2.2.2.9. 跳过make test 继续执行: make install2.2.3. 安装目录:/usr/local/bin查看默认安装目录:redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲redis-check-dump:修复有问题的dump.rdb文件redis-sentinel:Redis集群使用redis-server:Redis服务器启动命令redis-cli:客户端,操作入口2.2.4. 前台启动(不推荐)前台启动,命令行窗口不能关闭,否则服务器停止2.2.5. 后台启动(推荐)2.2.5.1. 备份redis.conf拷贝一份redis.conf到其他目录cp /opt/redis-3.2.5/redis.conf /myredis2.2.5.2. 后台启动设置daemonize no改成yes修改redis.conf(128行)文件将里面的daemonize no 改成 yes,让服务在后台启动2.2.5.3. Redis启动redis-server/myredis/redis.conf
2.2.5.4. 用客户端访问:redis-cli2.2.5.5. 多个端口可以:redis-cli -p63792.2.5.6. 测试验证:ping2.2.5.7. Redis关闭单实例关闭:redis-cli shutdown也可以进入终端后再关闭shutdown多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown2.2.6. Redis介绍相关知识端口6379从何而来?链接6379 是 "MERZ " 九宫格输入法对应的数字。Alessia Merz 是一位意大利舞女、女演员。 Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez 喜欢造“梗”用于平时和朋友们交流,于是造了一个词 “MERZ”,形容愚蠢,与 “stupid” 含义相同。后来 Antirez 重新定义了 “MERZ” ,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“。到了给 Redis 选择一个数字作为默认端口号时,Antirez 没有多想,把 “MERZ” 在手机键盘上对应的数字 6379 拿来用了。默认16个数据库,类似数组下标从0开始,初始默认使用0号库使用命令 select <dbid>来切换数据库。如: select 8统一密码管理,所有库同样密码。dbsize查看当前数据库的key的数量flushdb清空当前库flushall通杀全部库Redis是单线程+多路IO复用技术多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)串行 vs 多线程+锁(memcached) vs 单线程+多路IO复用(Redis)(与Memcache三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用)
大数据数据采集的数据采集(收集/聚合)的Flume之概念
什么是Flume?Flume是Apache软件基金会下的一个项目,可以将不同来源的数据收集到Hadoop或其他存储系统中进行分析和处理。它提供了多种数据源的支持,包括日志文件、JMS、Avro、Syslog、Netcat、Twitter和HTTP等。利用Flume,可以快速地搭建流水线,实现从多个数据源收集和聚合数据,并将其传输到目标存储系统中。Flume的工作原理Flume的工作原理类似于水流,它通过多个组件构成的流程,将数据从生产者传递到消费者。生产者:生产者是指需要采集数据的源头。例如:Web服务器、应用程序等。Flume Agent:Flume Agent接收数据,对数据进行预处理,并将其发送到目标存储系统。Channel:Channel是Flume的一个缓冲区,用于存储从生产者接收到的数据。当Channel缓存到达最大容量时,Flume将自动停止接收更多的数据,直到其中的数据被处理完毕。Sink:Sink负责将从Channel中接收到的数据发送到目标存储系统。例如:Hadoop、HBase或Elasticsearch等。Flume的优势可扩展性强:Flume是一个分布式系统,可以根据需要添加或删除节点,以适应不同规模和数据量的需求。数据可靠性高:Flume提供了多种日志传输方式,包括可靠且有序的事件传输,确保数据在传输过程中不会丢失。灵活性高:Flume支持多种数据源和目标存储系统,可以根据企业需求进行快速配置和部署。如何使用Flume?在使用Flume时,需要先进行以下几个步骤:安装和配置Flume Agent:根据自己的需求安装Flume,并配置Agent以满足自己的数据采集和传输需求。配置数据源:根据自己的需求,选择合适的数据源,例如:Web服务器、Apache Kafka、JMS等。配置Sink:根据自己的需求,选择合适的Sink,例如:HDFS、HBase、Elasticsearch等。总之,Flume是一个非常强大的数据采集和聚合工具,可以帮助企业高效地将多个数据源的数据收集到目标存储系统中,为后续的数据分析、决策和预测提供支持。在使用Flume时,需要根据自己的需求进行配置和部署,并注意确保数据可靠性和灵活性。
大数据数据采集的数据采集(收集/聚合)的Flume之基本组件的Event:数据基本单元
Event的组成Header:Header是一个键值对(Key-Value Pair)格式的结构,用于描述该条数据记录的元数据信息。例如:时间戳、来源、版本等。Body:Body是该条数据记录的主体部分,存储了实际的数据内容。Event的特点不可改变性:一旦Event被创建,它的内容就不能被更改。这种不可改变性确保了数据的完整性和一致性。可序列化性:Event可以进行序列化和反序列化,以便在网络上进行传输和存储。可压缩性:由于Flume处理的数据量通常非常大,因此Event支持压缩,以节省带宽和存储空间。Flume Event的应用场景日志采集:Flume Event可以用于日志文件的采集和传输。例如:将Apache服务器的访问日志收集到HDFS中进行存储和分析。实时流处理:Flume Event可以用于实时流处理,例如从Kafka队列中消费数据,并使用Flume将数据写入HBase或Elasticsearch中。多源数据采集:Flume Event可以进行多源数据采集,例如从多个Web服务器、应用程序或数据库中收集数据,并将其聚合到HDFS或Kafka中。如何使用Flume Event?在使用Flume Event时,需要采取以下步骤:创建Event对象:根据自己的需求,创建一个Event对象,并设置好Header和Body的内容。发送Event对象:利用Flume Agent将Event对象发送到目标存储系统。例如:利用Sink将数据写入HDFS或Kafka队列中。接收Event对象:利用Source接收从生产者发来的Event对象,进行预处理并将其发送到Channel缓冲区中。总之,Flume Event是Flume中数据采集和传输过程中的基本单元,每个Event都包含了一个头信息和一个消息体。它可以用于日志采集、实时流处理和多源数据采集等场景。在使用Flume Event时,需要根据自己的需求创建和发送Event对象,以满足业务需求。
字节跳动面试问到Hadoop源码,拿40K进大厂的Java程序员必备技能
大数据由于数据量庞大、数据类型复杂等特点,特别是非结构化或半结构化数据远远多于结构化数据,导致传统关系型数据库让企业面临巨大的成本压力。而 Hadoop 能够很好的提供解决大数据问题的技术手段。因此,Hadoop 技术在大数据中占据着举足轻重的作用,也很受企业的青睐。像字节跳动等头部企业,往往很重视 Hadoop 源码的二次开发,对简历职级要求比较高,还需要应聘者具有源码阅读经验。对正从事大数据相关工作,或转行大数据的Java、PHP等开发人员,如果你不想一直只做一个大数据的应用层级选手,希望能够做平台架构,打破技术壁垒,进一步提升技术实力,那么源码层级的修炼必定是你不可或缺的能力。一名合格的Java程序员,如果你会Hadoop 源码,懂一些架构思想,你的技术级别会高很多。如果想进大厂,你的面试胜算也会高不少。如果是一些小公司,你也能够面试到一个 Leader 的岗位。现在,这里有份《Hadoop实战》实战文档,能帮你搞清楚“HDFS 各角色的核心启动流程?能够承受亿级流量的架构是什么样子的?源码中有哪些缺陷?如何修改这些 bug”等面试高频问题。通过学习,你能够提升这些能力:1. 扩展学习思路2. 掌握在团队中成为核心人员的技能3. 了解在大厂中是如何应用开源技术的4. 通过开源技术的学习,提升自己的代码水平主要知识要点:分析 HDFS 的架构设计手写精彩源码,如何支持亿级高并发剖析问题,修改源码学完能获得哪些技能:1、全面了解Hadoop的概念、优势、项目结构、体系结构,以及它与分布式计算的关系2、让你明白Hadoop集群的安装和配置,以及常用的日志分析技巧3、分析了Hadoop在Yaboo! . eBay. Facebook 和百度的应用案例,以及Hadoop平台上海量数据的排序4、学会MapReduce计算模型、MapReduce 应用的开发方法、MapReduce 的工作机制,同时还列出了多个MapReduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容5、全面掌握Hadoop的I/0操作、HDFS的原理与基本操作,以及Hadoop的各种管理操作,如集群的维护等6、能学到Hive. HBase. Mahout, Pig. ZooKeeper. AvTO.Chukwa等所有与Hadoop相关的子项目的原理及使用,以及这些子项目与Hadoop的整合使用7、以实例的方式讲解了常用Hadoop插件的使用和Hadoop插件的开发。Hadoop实战Hadoop简介Hadoop的安装与配置Hadoop应用案例分析MapReduce计算模型开发MapRe duce应用程序MapReduce应用案例MapReduce. I作机制Hadoop I/0操作HDFS详解Hadoop的管理Hadoop的管理Hive详解HBase详解Mahout详解Pie详解ZooKeeper详解Avr o详解Chulkwa详解Hadoop的常用插件与开发由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!可以点击此处来获取就可以了! 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!可以点击此处来获取就可以了!
《CDP企业数据云平台从入门到实践》——HBase 迁移到 CDP(3)
《CDP企业数据云平台从入门到实践》——HBase 迁移到 CDP(2) https://developer.aliyun.com/article/1226637?groupCode=ClouderaCDP三、 HBase 迁移演示从 CDH 的 HBase 迁移数据到 CDP 的 HBase 中。演示源和目标都启用了 Kerberos的安全集群中。测试环境:• 源集群 CDH6,启用 Kerberos• 目标集群 CDP7.1.6,启用 Kerberos1. 配置两个集群的互信1) 分别在两个集群 krb5.conf 中添加 realms。源集群:CDH.COM;目标集群:GROCERY.COM2) 为两个 KDC 创建相同的 krbtgt 用户和密码。3) 互信验证,两个集群都能正常访问表示互相配置成功。4) 在 CM 界面>Administration>配置>搜索 domain>添加 Domain Name(s)。5) 在 CM 界面>Cluster>HDFS>配置>搜索 Kerberos>添加受信任的 Kerberos 域。6) 重启配置生效。2. 在源端和目标端启用 Replication3. 在 Ranger 中进行授权• HDFS 权限:给分配做数据同步的用户对/user 目录的读写和执行权限;对复制用户 etl_user 对/hbase 目录的读写和执行权限。在 HDFS 中,默认没有启用 Ranger 的权限管理功能,需要去启用该功能,否则Ranger 的配置将无法生效。 HBase 表权限:给分配做数据同步的用户对 HBase 表的权限,赋予所有读、写、创建、执行、管理的权限.4. 模拟操作1) 在源端创建表,表中有 2 条记录。2) 源端启用 Replication。3) 在目标端创建和源端同样的表,同时启用KEEP_DELETED_CELLS=>'true'参数来启用复制。4) 在源集群的 HBase Shell 中运行 add_peer 命令,将目标集群添加为 peer,然后进行 disable。5) 在源端创建并查看快照。也可以在 CM 中做快照。6) 在源集群的 HBase Shell 中运行 ExportSnapshot 命令,将快照从源端导出到目标端。7) 启用源集群和目标集群中的 peer。8) 在目标端 disable 掉表,进行数据恢复;然后将表 enable,查看表数据。9) 在源端模拟增加数据,在目标端可以看到数据会持续同步过来。
《CDP企业数据云平台从入门到实践》——CDP之操作型数据库(1)
CDP 之操作型数据库一、 什么是操作型数据库(OPDB)1. 操作型数据库(OPDB)定义Cloudera 操作型数据库(Operational Database)由 Apache HBase 和 Apache Phoenix 提供支持。Apache HBase 是一个 NoSQL 数据库,提供对大型数据集的实时读/写访问。Apache Phoenix 提供了一个 SQL 接口来管理 Apache HBase 中的数据。由Apache Accumulo 提供支持的操作数据库是 Apache Accumulo 的 Cloudera软件包。Cloudera 操作型数据库提供实时、始终可用、可扩展的操作数据库,在统一的操作和仓储平台内为传统结构化数据和非结构化数据提供服务。Cloudera 操作型数据库在企业数据生命周期中扮演着数据存储的关键角色。下图显示了典型的操作型数据库部署中的一些关键元素。操作数据库具有以下组件:• Apache Phoenix 提供了一个在 Apache HBase 之上运行的 SQL 接口。• Apache HBase 为键值存储提供了巨大的可扩展性,因此您可以在单一平台中存储无限量的数据,并满足不断增长的数据服务需求。• Apache ZooKeeper 提供分布式配置服务、同步服务和命名注册表。• Apache Knox Gateway 提供外围安全性,以便企业可以放心地将访问权限扩展到新用户。• Apache HDFS 用于编写 Apache HBase WAL。• Hue 提供了一个基于 Web 的编辑器来创建和浏览 Apache HBase 表。• Amazon S3和Microsoft ADLS Gen2等对象存储用于存储Apache HBase HFiles。• CLoudera Shared Data Experience(SDX)用于安全和治理功能。安全和治理策略设置一次并应用于所有数据和工作负载。• IDBroker 提供作为 Apache Knox 身份验证服务的一部分构建的身份验证机制。它允许经过身份验证和授权的用户交换一组凭据或令牌以获取云供应商访问令牌。操作型数据库的两个主要特性:1) 快速灵活Not-only-SQL 数据库能够每秒处理数百万个事务,支持:• Schema 演变• 多行事务• 二级索引• 时间旅行查询2) 企业就绪容错、开源、分布式数据库,可扩展到 PB 级,具有:• 高可用性• 批量加载、快照和复制• 安全和角色管理• 资源分配• 混合部署2. OPDB 应用场景OPDB 支持的场景涉及制造、医疗保健、金融服务和其他行业,用户包括 Cerner、智能手机制造商、财经媒体之家、保险供应商、图书馆服务供应商等。3. OPDB 的组成OPDB 由两部分组成:APACHE HBASE 和 PHOENIX。1) APACHE HBASE:低成本、高扩展、云智能的大数据 NoSQL。Apache HBase 数据库提供对数据的随机、持久访问。Apache HBase 非常适合需要为最终用户应用程序提供实时分析和表格数据的场景。作为一个原生的非关系数据库,Apache HBase 可以组合使用各种结构和模式的数据源。HBase 专为弹性数据存储而设计,旨在托管具有稀疏数据的非常大的表。Apache HBase 可以托管大数据表,因为它可以线性扩展以处理非常大(PB 级)、面向列的数据集。数据存储基于支持分布式环境中低延迟读取、写入和更新的键值模型。特性:• 可靠、成熟的存储引擎• 高扩展性:扩展到 PB• 容错和弹性• 支持快照和复制• 带配额的资源管理• 基于 Kerberos 和 Ranger 的安全性• 时间旅行查询缺点:• 提供低级编程接口,对用户编程能力要求较高。• 开发人员需要管理数据序列化,操作复杂度高。2) PHOENIX:在 HBase 之上的一个 SQL 关系层Apache Phoenix 是 Apache HBase 的 SQL 层,它提供了一个程序化的 ANSI SQL 接口。Apache Phoenix 实施最佳实践优化,使软件工程师能够开发基于 HBase 的下一代应用程序来操作大数据。使用 Phoenix,您可以使用 Phoenix 标准 JDBC API 以典型DDL/DML 语句的形式创建表并与之交互。可以使用 Apache Phoenix SQL 命令来创建、删除或修改 Apache HBase 表。您还可以创建 Apache Phoenix 视图,这些视图是共享同一个 Apache HBase 表的虚拟表。特性:• 熟悉的 SQL 接口• 支持类型的标准编码• Schema 演变• 多行事务• 二级索引《CDP企业数据云平台从入门到实践》——CDP之数据储存(2) https://developer.aliyun.com/article/1226409?spm=a2c6h.13148508.setting.14.12f54f0eNj6eW1
《CDP企业数据云平台从入门到实践》——CDP之操作型数据库(3)
《CDP企业数据云平台从入门到实践》——CDP之数据储存(2) https://developer.aliyun.com/article/1226409?spm=a2c6h.13148508.setting.14.12f54f0eNj6eW13. 如何使用 OPDB?OPDB 可以在 HUE 中使用,HUE 支持 HBase 的搜索、插入、更新、删除、DDL 等操作。同时,HUE 支持 SQL(Phonix)接口,可以在 HUE 中通过 Phonix 接口调用 HBase数据插入、更新、删除查询。4. 快速启动项目参考网址:https://github.com/cloudera/cod-examples下图列举了基于 Java、Python 和 C#的入门示例,以方便大家体验 OPDB。三、 企业就绪的 OPDBOPDB 是一款企业就绪的产品。1. OPDB 的安全模型1) 认证基于 Kerberos 的身份验证,可以与大多数企业身份和角色管理系统集成。2) 授权OPDB 通过 Ranger 进行授权管理,Ranger 中的命名空间、表、列族和列范围可以设置读、写、创建或管理权限。3) 加密数据加密通过 TSL 来完成:• 传输中数据的传输级加密(RPC、WAL)。• 静态数据的文件级加密(HFiles)。2. 开箱即用的高可用性OPDB 中的数据分布在 Ragion Server(RS)中,如下图所示,表(Table)按键范围划分为区域,RS 管理多个区域,并维护预写日志(WAL)以跟踪突变,WAL 和区域文件保存在共享文件系统(HDFS 或对象存储)中。当 Region Server 崩溃时,受影响区域的客户端请求(读取、写入)将超时。受影响的区域被重新分配给剩余的区域服务器,并重播 WAL 使受影响的区域保持更新。至此可以再次为受影响的地区提供服务,恢复时间<1 分钟。如下图所示,假设 RS3 崩溃,其中的 D 和 F 将被重新分配到 RS1 和 RS2 中,并通过共享文件系统访问数据。3. OPDB 复制OPDB 的复制用于实施弹性和灾难恢复的全功能。OPDB 的特性:• OPDB 复制是异步复制。• 最终或时间线的一致性。• 作用于命名空间、表或列族。• 任意拓扑单向(A->B)双向(A<-->B)一对多(A->B,C,D)循环(A->B->C->A)1) 混合集群类型• 跨数据中心、区域或可用区。• 不同大小的源和目标集群。• 从不安全到安全的集群。• 跨 Kerberos 域,没有 x-realm 信任。2) 批量加载被复制4. 备份和灾难恢复选项备份和灾难恢复常见的方式有:Replication 和 Snapshots,对于小数据量可以使用SyncTable 和 CopyTable。1) Replication可以自动进行完整的复制,在配置完成后将 HBase 从源自动复制到目标端,是目前最新的一种复制方式。2) 快照(Snapshots)• 快照在创建时占用空间很小,但可能会随着时间的推移而扩展,具体取决于数据更改率。• 如果是灾备,要将它们运送到另一个系统,则需要完整的数据副本。• 同样,远程系统上的快照加载比本地系统上的加载花费更长的时间。5. 资源管理如图所示,配额的范围可以是用户、表或命名空间。《CDP企业数据云平台从入门到实践》——CDP之数据储存(4) https://developer.aliyun.com/article/1226399?groupCode=ClouderaCDP
《CDP企业数据云平台从入门到实践》——CDP之操作型数据库(4)
《CDP企业数据云平台从入门到实践》——CDP之数据储存(3) https://developer.aliyun.com/article/1226404?groupCode=ClouderaCDP四、 部署 OPDB1. OPDB 形态OPDB 有三种形态:集群模式、DataHub 和 COD。1) 集群模式:在具有 CDP 私有云基础的裸机上• 存储在 HDFS 中的数据。• 在裸机上运行的集群允许针对硬件最大程度地调整工作负载。• 最可定制化的产品。2) DataHub:CDP 公有云上的经典风格• 云对象存储中的数据。• CDP 公有云中的模板化部署。• 提供一些可定制性,易于在公共云环境中进行配置。3) COD:CDP 公共云上的托管服务• 云对象存储中的数据。• 支持自动缩放、自动调整和自动修复。• 最容易配置,最低的管理开销。目前在阿里云上的产品是经典形态,未来将上架 COD 形态。2. OPDB 分布式架构如图所示,OPDB 分布式架构由两部分组成:应用端/客户端(Apps/Clients)和 Server端 OPDB。1) 应用端/客户端:包括 JVM、Python、Javascript、SQL/JDBC 等。2) Server 端:• 接口:通过 REST Gateway、Thrift Gateway、Phonix Query Server 访问 OPDB。• OPDB 主要是 HBase 集群,通过 Zookeeper 支持高可用,底层存储支持 HDFS、S3、ADLS 等。3. 未来:COD 的新功能1) 针对开发人员和管理人员的利好COD 的新功能可以减少开发人员和管理人员的工作,让他们能将时间花在更重要的事情上。• 开发人员:轻松快速部署,部署操作更简单,只需 3 次点击,20 分钟即可完成部署。• 管理人员:自主管理,支持自动伸缩、自动优化和自动修复,有效减少管理开销。2) 连接到 COD每个 COD 实例都有一个主页,其中包含各种类型的客户端的连接信息。连接方式包括:HBase、Phonix、JDBC 等。3) COD 提高运营敏捷性• 自动配置:减少配置开销自动配置 Kerberos、TLS、缓存设置等。默认情况下高度可用。简化的复制设置。• 自动缩放:调整峰值和平均负载根据应用需求自动扩缩容。降低基础设施成本。• 自动优化:优化运行的工作负载检测和缓解热点。随着数据的增长,消除了对区域管理和平衡的需求。4) 轻松的混合云部署COD 作为未来混合云部署的重要组成部分,支持与本地 Data Centre 的 OPDB 以及其他公有云产品的 OPDB 进行交互,用于测试/开发、弹性、灾难恢复和云迁移。COD 复制:• 两次点击部署云集群。• 基于向导的双向实时复制设置。• 云数据库没有管理开销。• 没有供应商差异,确保简化的应用程序提升和转移。
《CDP企业数据云平台从入门到实践》——CDP之数据仓库(2)
《CDP企业数据云平台从入门到实践》——CDP之数据仓库(1) https://developer.aliyun.com/article/1226353?groupCode=ClouderaCDP3. Apache Impala 概述Apache Impala 对以流行的 Apache Hadoop 文件格式存储的数据提供高性能、低延迟的 SQL 查询。Impala 解决方案由以下组件组成。• ImpalaImpala 服务协调并执行从客户端收到的查询。查询分布在 Impala 节点之间,然后这些节点充当工作人员,执行并行查询片段。• Hive Metastore存储有关 Impala 可用数据的信息。例如,元存储让 Impala 知道哪些数据库可用以及这些数据库的结构是什么。当您通过 Impala SQL 语句创建、删除和更改模式对象、将数据加载到表中等时,相关的元数据更改会通过专用目录服务自动广播到所有 Impala 节点。• Client包括 Hue、ODBC 客户端、JDBC 客户端、商业智能应用程序和 Impala Shell 在内的实体都可以与 Impala 交互。这些接口通常用于发出查询或完成管理任务,例如连接到 Impala。• 待查询数据的存储使用 Impala 执行的查询处理如下:用户应用程序通过提供标准化查询接口的 ODBC 或 JDBC 向 Impala 发送SQL 查询。用户应用程序可以连接到 impalad 集群中的任何一个。这个impalad 成为查询的协调器。impala 解析查询并对其进行分析以确定集群中的实例需要执行哪些任务。计划执行以获得最佳效率。本地实例访问存储服务 impalad 以提供数据。每个 impalad 将数据返回给协调器 impalad,协调器将这些结果发送给客户端。4. Hue 概述Hue 是一种基于 Web 的交互式查询编辑器,可让您与数据库和数据仓库进行交互。数据架构师、SQL 开发人员和数据工程师使用 Hue 创建数据模型、清理数据以准备分析,以及构建和测试应用程序的 SQL 脚本。Hue 整合了 Data Analytics Studio(DAS)的查询优化、查询调试框架和 Hue 丰富的查询编辑器体验等综合能力,使 Hue 成为 CDP 上的下一代 SQL 助手。您可以搜索 Hive 查询历史记录,查看查询详细信息、可视化解释计划和 DAG 信息,比较两个查询,并从Job Browser 页面下载调试包以进行故障排除。Hue 为以下关键大数据角色提供强大的执行、调试和自助服务功能:• 业务分析师• 数据工程师• 数据科学家• 高级 SQL 用户• 数据库管理员• 开发人员所有 Hue 用户都可以下载日志并与他们的 DBA 或 Cloudera 支持共享,以进行调试和故障排除。SQL 开发人员可以使用 Hue 创建数据集,以生成经常被其他商业智能(BI)工具(例如 Cloudera Data Visualization)使用的报告和仪表板。Hue 可以稀疏地用作搜索仪表板工具,通常用于为生产环境制作自定义搜索应用程序的原型。例如,下图显示了可以使用 Hue 生成的 Impala SQL 查询结果的图形表示:图 1.使用 Hue 生成的 Impala SQL 查询结果您可以使用 Hue 来:• 通过页面左侧面板中的引导式导航探索、浏览和导入您的数据。从左侧面板,您可以:浏览您的数据库深入到特定表查看 HDFS 目录和云存储发现索引和 HBase 或 Kudu 表查找文件如果需要,可以标记对象以便快速检索、项目关联或分配一个更“人类可读”的名称。• 在页面的中央面板中查询您的数据、创建自定义仪表板或安排重复性作业。页面的中央面板提供了丰富的工具集,包括:多功能编辑器,使您能够创建各种各样的脚本。您可以通过将元素拖放到 Hue 界面的中央面板来“即时”创建的仪表板。无需编程。然后您可以使用您的自定义仪表板来探索您的数据。您可以通过拖放创建的调度程序,就像仪表板功能一样。此功能使您能够创建自定义工作流并安排它们定期自动运行。监控界面显示进度、日志,并可以停止或暂停作业。• 使用右侧的帮助面板获取有关如何完成任务的专家建议。右侧的助手面板为中央面板中当前使用的任何应用程序提供专家建议和提示。例如,在上图中,提供了 Impala SQL 提示以帮助在中央面板中构建查询。• (仅限 Hive)查看查询详细信息,例如查询信息、可视化解释、查询时间线、查询配置、有向无环图(DAG)信息、DAG 流、DAG 泳道、DAG 计数器和 DAG配置。(仅限 Hive)比较两个查询。(仅限 Hive)终止 Hive 查询。(仅限 Hive)查看查询历史记录。(仅限 Hive)下载调试包。除了 HBase shell 和数据库 API 之外,Hue 还提供了一个简单的 SQL 接口来使用Apache Phoenix 创建、访问和查询 HBase 表。《CDP企业数据云平台从入门到实践》——CDP之数据仓库(3) https://developer.aliyun.com/article/1226342?groupCode=ClouderaCDP