Apache HBase

大数据中台

点点圈 提交于 2020-10-02 04:18:10
数据中台的由来 数据中台最早是阿里提出的,但真正火起来是2018 年,我们能感受到行业文章谈论数据中台的越来越多。大量的互联网、非互联网公司都开始建设数据中台。为什么很多公司开始建设数据中台?尽管数据中台的文章很多,但是一千人眼里有一千个数据中台,到底什么是数据中台?数据中台包含什么? 当企业需要数据化转型、精细化运营,进而产生大规模数据应用需求的时候,就需要建设数据中台。数据中台是高质量、高效赋能数据前台的一系列数据系统和数据服务的组合。数据中台包含数仓体系、数据服务集和BI 平台。 1、是阿里拜访芬兰的一家公司—SupperCell,只有不到10个人,每个员工创造估值3.74亿 ​ 2、淘宝遇到的问题:淘宝和天猫是两套完全独立的两套系统,但是却都包含了商品、交易、评价、支付、物流 ​ 3、中台之前类似的思想 SOA(方法):面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。 电商系统的四个发展阶段 1、单一系统 2、分布式系统 3、平台化(服务业务,支撑作用) 4、中台化(驱动业务,中枢作用) 第一阶段:数据库节点:单一业务系统阶段 第二阶段

Spark Join Hints 简介及使用

為{幸葍}努か 提交于 2020-10-01 12:41:03
当前 Spark 计算引擎能够利用一些统计信息选择合适的 Join 策略(关于 Spark 支持的 Join 策略可以参见 每个 Spark 工程师都应该知道的五种 Join 策略 ),但是由于各种原因,比如统计信息缺失、统计信息不准确等原因,Spark 给我们选择的 Join 策略不是正确的,这时候我们就可以人为“干涉”,Spark 从 2.2.0 版本开始(参见 SPARK-16475 ),支持在 SQL 中指定 Join Hints 来指定我们选择的 Join 策略。 如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号: iteblog_hadoop Join hints 允许用户为 Spark 指定 Join 策略( join strategy)。在 Spark 3.0 之前,只支持 BROADCAST Join Hint,到了 Spark 3.0 ,添加了 MERGE, SHUFFLE_HASH 以及 SHUFFLE_REPLICATE_NL Joint Hints(参见 SPARK-27225 、 这里 、 这里 )。当在 Join 的两端指定不同的 Join strategy hints 时,Spark 按照 BROADCAST -> MERGE -> SHUFFLE_HASH -> SHUFFLE_REPLICATE_NL

Gremlin 图查询概述

强颜欢笑 提交于 2020-10-01 09:40:51
图数据库基本概念 图形数据库是 NoSQL 数据库的一种类型,它应用图形理论存储实体之间的关系信息。最常见的例子,就是社会网络中人与人之间的关系。关系型数据库用于存储关系型数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。Google的图形计算系统名为 Pregel。 目前主流的图数据库有:Neo4j,FlockDB,GraphDB,InfiniteGraph,Titan,JanusGraph,Pregel等。 下面介绍几个图数据库中的几个基本概念: RDF :RDF(Resource Description Framework),即资源描述框架,其本质是一个数据模型(Data Model)。它提供了一个统一的标准,用于描述实体/资源。简单来说,就是表示事物的一种方法和手段。RDF 形式上表示为 SPO 三元组,有时候也称为一条语句(statement),知识图谱中我们也称其为一条知识。RDF 由节点和边组成,节点表示实体/资源、属性,边则表示了实体和实体之间的关系以及实体和属性的关系。 RDF 没有外键和主键,它使用的是 URI ,万维网的标准引用格式。通过 URI,一个三元组库可以直接链接到任何三元组库的其他任何数据。 属性图 :属性图是由 顶点(Vertex),边(Edge),标签(Lable),关系类型 还有 属性(Property

CAP BASE 最终一致性

血红的双手。 提交于 2020-10-01 08:45:55
女主宣言 1998年,加州大学的计算机科学家 Eric Brewer 提出分布式系统有三个指标,即CAP,而这三个指标不能同时做到。今天小编就为大家分享分布式相关理论,希望能对大家有所帮助。 PS:丰富的一线技术、多元化的表现形式,尽在“ 360云计算 ”,点关注哦! 1 前言 CAP、BASE、最终一致性是NoSQL数据库的三大理论基石。 2 CAP理论 CAP理论是一个非常知名的理论。在进行分布式系统设计的时候,我们一定会涉及到三个方面的性质。哪三个方面呢? C : 一致性(Consistency)。指任何一个读操作总能读到之前完成的写操作的结果。也就是说在我们分布式环境中,多点的数据必须是一致的。所有节点在同一时间要具有相同的数据。 A : 可用性(Availability)。指快速的获取数据,可以在确定时间内返回操作结果,保证每个请求不管成功还是失败都有响应。 P : 分区容忍性(Partition tolerance)。指当网络出现分区的情况(即系统中的一部分节点无法和其他节点进行通信)分离的系统也能够正常运行。即:系统中任意信息丢失不会影响系统正常运作。 我们理想的目标是:希望设计一个分布式系统能够同时满足CAP。但是理论和实践都证明,这是不可能的,鱼和熊掌不可兼得。只能三者取其二,必须要牺牲一个性质,来成就另外两个性质。 CAP Theorem

MySQL的各种JOIN

喜夏-厌秋 提交于 2020-09-30 15:31:59
主题 : MySQL 的各种JOIN 大纲 : 1、徐老师从事多年官方MySQL工作,为众多企业提供MySQL帮助时,企业比较关心的问题是什么呢? 2、随着MySQL 8.0的成熟和推广,相信越来越多的公司希望升级MySQL 8.0,但又会担心低版本到高版本的升级会不会有兼容问题,徐老师能否分享下相关经验? 3、徐老师本次主题带来的是JOIN精彩内容,相比MySQL5.7,MySQL8.0在JOIN增强了哪些方面呢? 4、过多的“left join”经常会导致SQL性能很慢,徐老师可否分享下您对“left join”的建议或者注意事项呢? 扫一扫左边二维码, 立刻报名本次活动。 嘉宾自我介绍 徐轶韬 MySQL解决方案高级工程师 Oracle公司 MySQL解决方案工程师,为中国及东北亚地区的MySQL用户提供MySQL相关产品的售前咨询,企业级产品介绍服务以及推广和普及MySQL数据库在社区的使用 01 徐老师从事多年官方MySQL工作,为众多企业提供MySQL帮助时,企业比较关心的问题是什么呢? 企业比较关心的问题主要有三点: 一、在使用软件的过程中能不能得到保障?通过哪些方式提供保障?可以提供哪种程度的保障? 二、数据安全性。 三、合规的使用软件。 02 随着MySQL 8.0的成熟和推广,相信越来越多的公司希望升级MySQL 8.0

多易教育17期课堂笔记--Hbase---shell客户端

不想你离开。 提交于 2020-09-27 04:48:07
hbase shell 1 DDL 在hbase中没有database的概念使用namespace替代database的作用 1.1 建表 create (指定列族) create "tb_user" , "cf" -- 创建表 指定一个列族 create 'tb_user2' ,'cf1' ,'cf2' ,'cf3' --指定多个列族 create "tb_user3" , {NAME=>'info1' ,VERSIONS=>3,TTL=>240} 设置3个数据版本 过期时间 1.2 查看系统中的表 list list ["tb_user", "tb_user2"] 1.3 查看表的结构 describe desc describe 'tb_name' desc 'tb_name' --查看表结构 COLUMN FAMILIES DESCRIPTION {NAME => 'cf1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN

生产实践 | 基于 Flink 的短视频生产消费监控

梦想的初衷 提交于 2020-09-25 18:43:20
本文详细介绍了实时监控类指标的数据流转链路以及技术方案,大多数的实时监控类指标都可按照本文中的几种方案实现。 短视频生产消费监控 短视频带来了全新的传播场域和节目形态,小屏幕、快节奏成为行业潮流的同时,也催生了新的用户消费习惯,为创作者和商户带来收益。而多元化的短视频也可以为品牌方提供营销机遇。 其中对于垂类生态短视频的生产消费热点的监控分析目前成为了实时数据处理很常见的一个应用场景,比如对某个圈定的垂类生态下的视频生产或者视频消费进行监控,对热点视频生成对应的优化推荐策略,促进热点视频的生产或者消费,构建整个生产消费数据链路的闭环,从而提高创作者收益以及消费者留存。 本文将完整分析垂类生态短视频生产消费数据的整条链路流转方式,并基于 Flink 提供几种对于垂类视频生产消费监控的方案设计。通过本文,你可以了解到: 垂类生态短视频生产消费数据链路闭环 实时监控短视频生产消费的方案设计 不同监控量级场景下的代码实现 flink 学习资料 项目简介 垂类生态短视频生产消费数据链路流转架构图如下,此数据流转图也适用于其他场景: 链路 在上述场景中,用户生产和消费短视频,从而客户端、服务端以及数据库会产生相应的行为操作日志,这些日志会通过日志抽取中间件抽取到消息队列中,我们目前的场景中是使用 Kafka 作为消息队列;然后使用 flink 对垂类生态中的视频进行生产或消费监控

【Redis】求求你,别再问跳表了

白昼怎懂夜的黑 提交于 2020-09-24 05:29:23
目录 跳表 使用场景 结构描述 查询算法 插入算法 删除算法 时间复杂度 空间复杂度 总结 Redis使用跳表而不是红黑树? 跳表 使用场景 跳表(Skiplist )是一个特殊的链表,相比一般的链表,有更高的查找效率,可比拟二叉查找树, 平均期望的查找、插入、删除 时间复杂度都是O(log n) ,许多知名的开源软件(库)中的数据 结构均采用了跳表这种数据结构∶ Redis中的有序集合zset LevelDB、RocksDB、HBase中Memtable Apache Lucene中的Term Dictionary、Posting List 结构描述 我们拿我们以前的有序链表相比: 我们可以很清楚的看出,有序链表的查询比较慢,时间复杂度为O(n),它的删除和插入操作比较快,我们怎样才能让它的查询的时间复杂度也变快呢? 能不能将我们的链表实现二分的查找,也就是longN,答案是肯定的,也就是我们下面所说的这种跳表。 查询算法 跳表的查询和我之前做过的一道题特别类似, 二维数组的查找 假设我们查询 31 这个数字 我们的header开始,依次进行查询, 31不在负无穷到17,往右边,到达17,继续比较,在17到正无穷之间,往下跑 … 整个查询过程如下所示 插入算法 对于插入来说,我们比如要插入一个21的数值 类似查询算法,到达17这个点,进一步到达20这个点,然后在20的后面进行插入

Hbase集群搭建 附安装包(基于Hadoop,zookeeper,hz见前文)

点点圈 提交于 2020-09-23 15:54:07
Hbase集群搭建 1. 解压: hbase压缩包位置 链接:https://pan.baidu.com/s/1HYQGn9-DqWxlCmV6QAOKqA 提取码:vtu5 [root@master /]# cd /soft #进入Hbase压缩包位置 [root@master soft]# tar -xzvf hbase-1.2.0-bin.tar.gz #解压 2. 创建软链接 [root@master soft]# ln -s hbase-1.2.0 /soft/hbase 3. 添加环境变量 [root@master soft]# vi /etc/profile #添加如下内容 export HBASE_HOME=/soft/hbase export PATH=$HBASE_HOME/bin:$PATH [root@master soft]# source /etc/profile #生效 4. 编辑hbase-env.sh文件 (在$HBASE_HOME/conf下) [root@master hbase]# cd $HBASE_HOME/conf [root@master conf]# vi hbase-env.sh 添加如下配置 export JAVA_HOME=/soft/jdk #添加Java环境变量export HBASE_MANAGES_ZK=false

hbase学习

无人久伴 提交于 2020-08-20 08:12:43
简介 数据存储模型及关系型数据库的区别 一般都是牺牲一致性, 最终达到最终一致性 HBase 概念 区别 基础架构 HBASE 原理和操作 写流程 预写入会写入HLog 里面, 通过HLog 来保证数据不丢失 读流程 模块协作 shell 命令 学会用 help , 可以获取使用说明 比如: help 'status' # HBase shell中的帮助命令非常强大,使用help获得全部命令的列表,使用help ‘command_name’获得某一个命令的详细信息 help 'status' # 查询服务器状态 status # 查看所有表 list # 创建一个表 create 'FileTable','fileInfo','saveInfo' # 获得表的描述 describe 'FileTable' # 添加一个列族 alter 'FileTable', 'cf' # 删除一个列族 alter 'FileTable', {NAME => 'cf', METHOD => 'delete'} # 插入数据 put 'FileTable', 'rowkey1','fileInfo:name','file1.txt' put 'FileTable', 'rowkey1','fileInfo:type','txt' put 'FileTable', 'rowkey1',