Apache HBase

apache phoenix 初探

谁说我不能喝 提交于 2020-03-10 19:07:20
最近工作中用到HBase。但HBase的原生客户端使用起来相当繁琐,spring-data-hadoop又年久失修,和最新的HBase集成起来各种异常。因此找到了 Apache Phoenix —— 它支持使用标准SQL和 JDBC接口来操作HBase。 本文记录一下使用phoenix的常见问题(主要来自 phoenix faq ),最后是笔者项目中用到的配置。 Phoenix 常见问题 Phoenix JDBC URL 语法格式 Thick Driver thick driver格式如下,请注意中括号里边的内容是可选的: jdbc:phoenix:[ZooKeeper地址(多个请用逗号分隔) [:port[:hbase root znode[:kerberos_域名[:kerberos keytab地址]]]] 最简单的例子为: jdbc:phoenix:localhost 复杂的例子为: jdbc:phoenix:zookeeper1.domain,zookeeper2.domain,zookeeper3.domain:2181:/hbase-1:phoenix@EXAMPLE.com:/etc/security/keytab/phoenix.keytab 值得注意的是每个可选的内容要求前置所有内容完整。 实际上笔者的driver url为: jdbc:phoenix

推荐引擎系统架构

烂漫一生 提交于 2020-03-03 14:01:43
本文从互联网收集并整理了推荐系统的架构,其中包括一些大公司的推荐系统框架(数据流存储、计算、模型应用),可以参考这些资料,取长补短,最后根据自己的业务需求,技术选型来设计相应的框架。后续持续更新并收集。。。 界面UI那一块包含3块东西: 1) 通过一定方式展示推荐物品(物品标题、缩略图、简介等); 2) 给的推荐理由; 3) 数据反馈改进个性化推荐; 关于用户数据的存放地方: 1)数据库/缓存用来实时取数据; 2) hdfs文件上面; 抽象出来的三种推荐方式 推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等。 A模块负责用户各类型特征的收集,B模块的相关表是根据图3中的推荐引擎来生成的,B模块的输出推荐结果用来C模块的输入,中间经过过滤模块(用户已经产生行为的物品,非候选物品,业务方提供的物品黑名单等),排名模块也根据预设定的推荐目标来制定,最后推荐解释的生成(这是可能是最容易忽视,但很关键的一环,微信的好友推荐游戏,这一解释已经胜过后台的算法作用了) HULU的推荐系统 总结:这个也就跟图3有点类似了,葫芦的推荐系统,至少在他blog中写的比较简单

大数据(HBase-编程java api)

半世苍凉 提交于 2020-03-02 05:21:08
开发环境搭建步骤 1:解压下载下来的hbase的安装包 2:配置windows的hosts文件,地址:C:\Windows\System32\drivers\etc 配置虚拟机的ip对应的主机名 比如: 192.168.153.115 hm02 192.168.153.116 hs0201 192.168.153.117 hs0202 3:下载hbase集群中的hbase-site.xml文件 通过远程工具的ftp功能来进行下载 4:使用开发工具创建hbase客户端工程 1)将hbase-site.xml以及log4j.properties文件放入工程path 2)将解压后的hbase的lib目录下的jar包导入工程 3)写一个测试程序并运行,在运行之前确保我们的hbase的集群已经启动 HbaseJavaTest.java package com.hbase; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org

​你应该知道的 HBase 基础,都在这儿了

為{幸葍}努か 提交于 2020-02-28 13:49:18
阿里妹导读 :2006 年10 月Google 发布三架马车之一的《Bigtable:A Distributed Storage System for Strctured Data》论文之后,Powerset 公司就宣布 HBase 在 Hadoop 项目中成立,作为子项目存在。后来,在2010 年左右逐渐成为 Apache 旗下的一个顶级项目。可能是实际应用中包装得太好,很多人对于 HBase 的认识止步于 NoSQL 。今天,蚂蚁金服的南俊从基础开始讲起,希望有助于增强大家在实际业务中对 HBase 的理解。 一、 HBase 简介 HBase 名称的由来是由于其作为 Hadoop Database 存在的,用来存储非结构化、半结构化数据。 要想知道 HBase 的用途,就需要看一看其在 Apache 的 Hadoop 生态系统中的位置,可以看到 HBase 是构建在 HDFS 之上的,这是由于 HBase 内部管理的文件全部都是存储在 HDFS 当中的。同时,MapReduce 这个计算框架在 HBase 之上又提供了高性能的计算能力来处理海量数据。此外还有一些像 Pig、Hive 用来提供高层语言的支持。还有 Sqoop 用来完成传统数据库到 HBase 之间的数据迁移。类似衍生出来的新技术还有很多,有兴趣的同学可以自己去了解一下。 原文链接 来源: oschina 链接:

时序数据库 Apache-IoTDB 源码解析之系统架构(二)

孤街醉人 提交于 2020-02-27 20:53:14
上一章聊到时序数据是什么样,物联网行业中的时序数据的特点:存量数据大、新增数据多(采集频率高、设备量多)。详情请见: 时序数据库 Apache-IoTDB 源码解析之前言(一) 打一波广告,欢迎大家访问 IoTDB 仓库 ,求一波 Star 。 这一章主要想聊一聊: 物联网行业的基本系统架构,及使用数据库遇到的需求与挑战 IoTDB 的功能特点及系统架构 车联网 因为本人是在做车联网行业,所以对这个行业的信息了解更深入一些,能够拿到一些更具体的数字来说明这个行业的具体情况。在上一篇文中的数据是出于自己的理解,为了让大家容易明白而编造的数据,但实际情况要复杂的多。 1. 系统架构 1.1 系统简介 以上示意图可能非常简单,但我觉得足够表明一个整体架构。 当一台设备、一辆车连接到协议网关后,便开始了真正的收发数据。一般通信的方式都是基于 tcp ,搞一段二进制协议,所以协议网关基本要做的工作就是完成对连接的管理、完成对数据的收发及编解码。 当数据完成编解码之后一般会发往消息队列当中,一般都是 Kafka 之中。用来解耦生产和消费两端,提供一层缓冲,无论消费服务是死是活还是速度慢,包治百病,甚至还能治未病。 数据发往消息队列的过程中,或之后花活儿就多起来了。但主要的我认为无非还是三种处理方式: 需要将 原始数据 保存入库,这里的原始数据包含二进制数据和解码后的二进制数据。

安装openTSDB

爱⌒轻易说出口 提交于 2020-02-27 20:17:07
1. 安装JDK 2. 安装HBASE 安装单机版hbase hbase官方文档中的安装步骤 ,首先下载hbase的安装镜像,官方地址下载较慢,可以从国内地址下载: https://mirrors.ustc.edu.cn/apache/hbase/ , 注意下载的是bin.tar.gz,而不是src.tar.gz, 前者是已经编译好可直接运行,后者是一系列源码文件,需要自己编译。 1.下载后用以下命令解压 tar -xzvf hbase-2.2.0-bin.tar.gz 2.进入解压后的文件夹,对 conf/hbase-env.sh 进行编辑,主要对下面两条进行配置。 #机器上的jdk路径,若不清楚可使用 whereis java来查看 export JAVA_HOME=/usr/local/env/jdk1.8.0_211 #使用hbase自带的zookeerper,这里必须进行配置,因为opentsdb是通过zookeeper连接hbase export HBASE_MANAGES_ZK=true 对 conf/hbase-site.xml 文件进行配置,将 <configuration>里面的内容拷贝到文件相应位置即可。 < configuration > < property > < name > hbase.rootdir </ name > < value > file

HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码

倖福魔咒の 提交于 2020-02-27 20:14:22
版本 HDP:3.0.1.0 HBase:2.0.0 一、前言 之前的文章也提到过,最近工作中需要对HBase进行二次开发(参照HBase的AES加密方法,为HBase增加SMS4数据加密类型)。研究了两天,终于将开发流程想清楚并搭建好了debug环境,所以就迫不及待地想写篇文章分享给大家。 <!--more--> 二、思路 首先看到这个需求,肯定是需要先实现HBase配置AES加密《 HBase配置AES加密 》,或者还可以再继续了解实现SMS4加密算法《 Java版SMS4加密解密算法 》。等到这些都完成之后,就需要想办法实现HBase的SMS4数据加密了。这里我们要养成一种思路,那就是看官网。根据参考 官网 ,只得到如下信息: 需要实现 org.apache.hadoop.hbase.io.crypto.CipherProvider 类,所以先要搞清楚这个类在哪个jar包里面。最后,在 /usr/hdp/3.0.1.0-187/hbase/lib/ 目录下的 hbase-common-2.0.0.3.0.1.0-187.jar 包里面发现了这个类。 接着就想,怎么才能二次开发这个jar包呢?于是先使用 Java Decompiler 工具( 文末有获取方式 ),反编译该jar包,看了看AES加密模块的代码,发现必须要debug相关代码,了解其流程

【入门】Kylin 基本原理及概念

点点圈 提交于 2020-02-27 11:43:18
Kylin版本:2.5.1 前言 膜拜大神, Kylin 作为第一个由国人主导并贡献到 Apache 基金会的开源项目,堪称大数据分析界的“ 神兽 ”。所以我也是抓紧时间来学习 Kylin ,感受 Kylin 所带来的魅力。 一、Kylin简介 Kylin 的出现就是为了解决大数据系统中 TB 级别数据的数据分析需求,它提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析( OLAP )能力以支持超大规模数据,它能在亚秒内查询巨大的 Hive 表。其核心是预计算,计算结果存在 HBase 中。 作为大数据分析神器,它也需要站在巨人的肩膀上,依赖 HDFS 、 MapReduce/Spark 、 Hive/Kafka 、 HBase 等服务。 <!-- more --> 二、Kylin优势 Kylin 的主要优势为以下几点: 可扩展超快 OLAP 引擎: Kylin 是为减少在 Hadoop/Spark 上百亿规模数据查询延迟而设计 Hadoop ANSI SQL 接口: Kylin 为 Hadoop 提供标准 SQL 支持大部分查询功能 交互式查询能力:通过 Kylin ,用户可以与 Hadoop 数据进行亚秒级交互,在同样的数据集上提供比 Hive 更好的性能 多维立方体( MOLAP Cube ):用户能够在 Kylin 里为百亿以上数据集定义数据模型并构建立方体

Apache Kylin 目录详解

南楼画角 提交于 2020-02-27 11:35:48
一、Kylin二进制源码目录解析 bin : shell 脚本,用于启动/停止Kylin,备份/恢复Kylin元数据,以及一些检查端口、获取Hive/HBase依赖的方法等; conf : Hadoop 任务的XML配置文件,这些文件的作用可参考 配置页面 <!--more--> lib : 供外面应用使用的jar文件,例如Hadoop任务jar, JDBC驱动, HBase coprocessor 等. meta_backups : 执行 bin/metastore.sh backup 后的默认的备份目录; sample_cube 用于创建样例 Cube 和表的文件。 spark : 自带的spark。 tomcat : 自带的tomcat,用于启动Kylin服务。 tool : 用于执行一些命令行的jar文件。 二、HDFS 目录结构 Kylin 会在 HDFS 上生成文件,根目录是 “/kylin” (可以在 conf/kylin.properties 中定制),然后会使用 Kylin 集群的元数据表名作为第二层目录名,默认为 “kylin_metadata”。 通常,/kylin/kylin_metadata目录下会有这么几种子目录:cardinality, coprocessor, kylin-job_id, resources, jdbc-resources.

HBase应用(一):数据批量导入说明

╄→尐↘猪︶ㄣ 提交于 2020-02-26 22:14:39
版本说明: 通过 HDP 3.0.1 安装的 HBase 2.0.0 一、概述 HBase 本身提供了很多种数据导入的方式,目前常用的有三种常用方式: 使用 HBase 原生 Client API 使用 HBase 提供的 TableOutputFormat,原理是通过一个 Mapreduce 作业将数据导入 HBase 使用 Bulk Load 方式:原理是使用 MapReduce 作业以 HBase 的内部数据格式输出表数据,然后直接将生成的 HFile 加载到正在运行的 HBase 中。 <!--more--> 二、方式对比 **前两种方式:**需要频繁的与数据所存储的 RegionServer 通信,一次性导入大量数据时,可能占用大量 Regionserver 资源,影响存储在该 Regionserver 上其他表的查询。 **第三种方式:**了解过 HBase 底层原理的应该都知道,HBase 在 HDFS 中是以 HFile 文件结构存储的,一个比较高效便捷的方法就是先生成 HFile,再将生成的 HFile 加载到正在运行的 HBase 中。即使用 HBase 提供的 HFileOutputFormat2 类或者 importtsv 工具来完成上述操作。 经过对比得知:如果数据量很大的情况下,使用第三种方式(Bulk Load)更好。占用更少的 CPU