Apache HBase

Atlas获取HBase变化数据源码分析

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-04 19:05:02
一、HBase的数据变化的流程图如下: 在下面的图片展示了HBase的数据变化之后在Atlas里面的流程: 二、在整个过程中每一个小流程分析 使用 java 编写的代码需要运行。首先会被编程成字节码文件,然后把字节码加载到内存中才可以运行。Atlas的hook也一样,想要运行首先肯定需要被加载到内存。把 .Class 文件加载到内存需要对应的内加载器。下面是加载Atlas的HBaseAtlasHook的类,如下所示: /** * 在这个类中实现对HBaseAtlasHook这个类的加载 */ public class HBaseAtlasCoprocessor implements MasterCoprocessor , MasterObserver , RegionObserver , RegionServerObserver { // 在构造生成HBaseAtlasCoprocessor的时候,加载HBaseAtlasHook public HBaseAtlasCoprocessor ( ) { if ( LOG . isDebugEnabled ( ) ) { LOG . debug ( "==> HBaseAtlasCoprocessor.HBaseAtlasCoprocessor()" ) ; } //

2020中金所实习面试问题

ぐ巨炮叔叔 提交于 2020-08-04 18:54:52
一、Java基础 Arraylist和LinkedList的区别 底层实现原理 Arraylist:底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高;但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组。 Linkedlist基于链表的动态数组,数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低,需要对链表进行遍历。 对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 “==”和“equals”区别 hashcode是什么 垃圾回收算法;分代回收中新生代采用的方法,老年代的方法 标记清除算法 复制算法(新生代算法) 标记整理算法(老年代回收算法) String StringBuilder StringBuffer 区别 Error和Exception的区别,举例…… Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。 Exception和Error体现了java平台设计者对不同异常情况的分类

大公司都在做的大数据平台,为你精选这一份书单

梦想与她 提交于 2020-08-04 16:58:03
​ 现如今每个公司都有自己的大数据平台和大数据团队,可以看出大数据建设在公司的重要地位,不管是用于做数据分析、BI还是做用于机器学习、人工智能等领域,大数据都是基础,海量数据成为了互联网公司的重要资产。 今天这一份书单,我们将推荐几本综合介绍大数据平台和技术栈的优质书籍,帮各位对大数据技术感兴趣的小伙伴快速入门和学习大数据。 大数据技术栈系列书单 ​ 大数据技术原理与应用 (1) 概念篇:介绍当前紧密关联的*新IT领域技术云计算、大数据和物联网。 (2) 大数据存储与管理篇:介绍分布式数据存储的概念、原理和技术,包括HDFS、HBase、NoSQL数据库、云数据库。 (3) 大数据处理与分析篇:介绍MapReduce分布式编程框架、基于内存的分布式计算框架Spark、图计算、流计算、数据可视化。 (4) 大数据应用篇:介绍基于大数据技术的推荐系统。 作者简介 林子雨,北大博士,厦门大学计算机科学系老师,中国高校**"数字教师"的提出者和建设者。在数据库、数据仓库、数据挖掘、大数据、云计算和物联网等领域有着十多年的知识积累,对各个领域知识都有比较深入的了解,有比较宽泛的视野。 ​ 大数据平台基础架构指南 当前不乏大数据具体技术组件的书籍,但却很少有从大数据平台整体建设和产品形态的宏观角度入手来阐释的。 本书重点介绍大数据开发平台服务构建的整体思路和解决方案

HBase 集群环境部署

不羁岁月 提交于 2020-08-04 09:54:59
1 Hadoop集群环境部署 参考:https://my.oschina.net/u/943316/blog/4461980 2 zookeeper 集群环境部署 参考:https://my.oschina.net/u/943316/blog/4462014 3 hbase环境部署 3.1 获取hbase #获取 hbase wget http://archive.apache.org/dist/hbase/1.3.1/hbase-1.3.1-bin.tar.gz #解压 hbase mkdir /use/loacal/hbase tar -zxvf hbase-1.3.1-bin.tar.gz -C /usr/local/hbase #复制配置 文件 cd /usr/local/hadoop/hadoop-2.7.2/etc/hadoop cp core-site.xml hdfs-site.xml /usr/local/hbase/hbase-1.3.1/conf/ 3.2 配置 hbase-env.sh vim /usr/local/hbase/hbase-1.3.1/conf/hbase-env.sh #添加java环境变量 export JAVA_HOME=/usr/local/java/jdk1.8.0_231 #指定使用外部的zk集群 export HBASE

hbase-client-spring-boot-starter

♀尐吖头ヾ 提交于 2020-07-29 10:24:07
此 wiki 主要介绍在spring boot 项目接入基于 自定义 hbase-client-spring-boot-starter hbase 客户端 hbase-client-spring-boot-starter 项目路径 https://gitee.com/lbjyu/hbase-client-spring-boot-starter.git hbase-client-spring-boot-starter 基于 hbase-shaded-client,spring boot 的第三方 start annotation ........................................... 自定义注解包 autoconfigure ...................................... 自动加载包 constants ...................................... 常量包 util ........................................ 工具包,自定义注解解析器 vo ........................................ 推送和查询以及分页 VO 类 HbaseApiService ...................................

Redis面试高级应用解析:缓存穿透、击穿、雪崩

对着背影说爱祢 提交于 2020-07-29 05:02:21
1 背景 像我们去面试一些大公司的时候,就会遇到一些关于缓存的问题。可能很多同学都是接触过,多多少少了解一些,但是如果没有好好记录这些内容,不熟练精通的话,在真正面试的时候,就很难答出来了。 在我们的平常的项目中多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。 特别是高 QPS 的系统,每次都去查询数据库,对于你的数据库来说将是灾难。 今天我们不牵涉多级缓存的知识,就把系统使用到的缓存方案,不管是一级还是多级的都统称为缓存,主要是为了讲述使用缓存的时候可能会遇到的一些问题以及一些解决办法。 我们使用缓存时,我们的业务系统大概的调用流程如下图: 当我们查询一条数据时,先去查询缓存,如果缓存有就直接返回,如果没有就去查询数据库,然后返回。这种情况下就可能会出现一些现象。 2 缓存穿透 2.1 什么是缓存穿透 正常情况下,我们去查询数据都是存在。 那么请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去。 这种查询不存在数据的现象我们称为 缓存穿透 。 2.2 穿透带来的问题 试想一下,如果有黑客会对你的系统进行攻击,拿一个不存在的id 去查询数据,会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。 2.3 解决办法 2.3.1 缓存空值 之所以会发生穿透

Kylin的工作原理

会有一股神秘感。 提交于 2020-07-29 01:47:02
Apache Kylin 的工作原理本质上是 MOLAP (多维立方体分析) 。 维度和度量 维度就是观察数据的角度 ,例如: 电商的销售数据,可以从时间的维度来观察,也可以细化从时间和地区的维度来观察 统计时,可以把维度值相同的记录聚合在一起,然后应用聚合函数做累加、平均、去重计数等聚合计算 度量就是被聚合的统计值,也是聚合运算的结果 。 时间(维度) 销售额(度量) 2019 1Q 1.7M 2019 2Q 2.1M 2019 3Q 1.6M 2019 4Q 1.8M 时间(维度) 地区(维度) 销售额(度量) 2019 1Q 中国 1.0M 2019 1Q 北美 0.7M 2019 2Q 中国 1.5M 2019 2Q 北美 0.6M 2019 3Q 中国 0.9M 2019 3Q 北美 0.7M 2019 4Q 中国 0.9M 2019 4Q 北美 0.9M Cube 和 Cuboid 一个数据表或数据模型上的字段就它们要么是维度,要么是度量(可以被聚合) 给定一个数据模型,可以对其上的所有维度进行组合。对于 N 个维度来说,组合的所有可能性共有 2 的 N 次方种 对于每一种维度的组合 ,将度量做聚合运算,然后将运算的结果保存为一个物化视图,称为 Cuboid (立方形) 所有维度组合的 Cuboid 作为一个整体,被称为 Cube (立方体) 。一个 Cube

Apache Kylin 命令注入漏洞 CVE-2020-1956 POC 分析

若如初见. 提交于 2020-07-28 20:38:24
作者:香依香偎 原文链接: 闻道解惑(wendao_jiehuo) 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org CVE-2020-1956 2020年5月22日, CNVD 通报了 Apache Kylin 存在命令注入漏洞 CVE-2020-1956 ,地址在 http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-202005-1133 。 Apache Kylin 是美国 Apache 软件基金会的一款开源的分布式分析型数据仓库。该产品主要提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析( OLAP )等功能。 Apache Kylin 中的静态 API 存在安全漏洞。攻击者可借助特制输入利用该漏洞在系统上执行任意OS命令。以下产品及版本受到影响: Apache Kylin 2.3.0版本至2.3.2版本,2.4.0版本至2.4.1版本,2.5.0版本至2.5.2版本,2.6.0版本至2.6.5版本,3.0.0-alpha版本,3.0.0-alpha2版本,3.0.0-beta版本,3.0.0版本,3.0.1版本。 下面就来分析一下这个漏洞。 一、搭建环境 Kylin 的环境并不好搭建,包括 Hadoop、Hbase

CAP理论的理解

孤者浪人 提交于 2020-07-28 19:06:01
转自: https://www.cnblogs.com/mingorun/p/11025538.html CAP理论的理解 CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中: 一致性( C onsistency) 可用性( A vailability) 分区容错性( P artition tolerance) 最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。          I. 什么是 一致性、可用性和分区容错性 分区容错性 :指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。也就是说部分故障不影响整体使用。 事实上我们在设计分布式系统是都会考虑到bug,硬件,网络等各种原因造成的故障,所以即使部分节点或者网络出现故障,我们要求整个系统还是要继续使用的 (不继续使用,相当于只有一个分区,那么也就没有后续的一致性和可用性了) 可用性: 一直可以正常的做读写操作。简单而言就是客户端一直可以正常访问并得到系统的正常响应。用户角度来看就是不会出现系统操作失败或者访问超时等问题。 一致性 :在分布式系统完成某写操作后任何读操作,都应该获取到该写操作写入的那个最新的值。相当于要求分布式系统中的各节点时时刻刻保持数据的一致性。 II. 该怎么理解

hadoop相关环境搭建

余生颓废 提交于 2020-07-28 18:45:54
文章内容输出来源:拉勾教育Java高薪训练营 集群规划 计划在3台虚拟机安装hadoop、hbase、hive,192.168.3.24,192.168.3.7,192.168.3.8 hosts配置 /etc/hosts 192.168.3.24 centos1 192.168.3.7 centos2 192.168.3.8 centos3 环境变量 首先需要安装jdk,并配置环境变量。 export JAVA_HOME=/opt/soft/jdk1.8.0_45 export PATH=$PATH:$JAVA_HOME/bin:/opt/soft/apache-hive-2.3.6-bin/bin:/opt/soft/hadoop-2.9.2/bin hadoop环境 安装hadoop 配置文件,在/opt/soft/hadoop-2.9.2/etc/hadoop目录下,三台机子要修改成一样 core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property>