Apache HBase

面向海量数据的极致成本优化-云HBase的一体化冷热分离

浪尽此生 提交于 2019-11-29 21:25:33
前言 随着业务的持续发展,业务数据库存储量会持续增长。通常数据量过亿时,就需要考虑做分库分表,或者选择扩展能力更好的NOSQL/NewSQL数据库,如HBase就可以单表支持PB级数据,足够满足大多数业务的存储需求。然而,对于大量存储瓶颈类业务,存储成本依然是系统设计中需要关注的重中之重,冷热分离的解决方案应用而生。 适合冷热分离的业务 账单/订单类系统的数据非常适合做冷热分离,这类系统的数据随着时间的推移往往会积攒了海量数据,而且由于数据的重要性,这些数据都要被永久保存。但是,用户往往只会查询最近消费的订单或者账单,超过半年的订单基本不会被访问。 监控系统的数据也呈非常明显的冷热分层特性。用户通常只会查看实时监控,历史数据只有在回溯故障的时候,才可能去查询。而如果把实时数据与历史数据混杂在一起,不仅会让存储的成本非常高,而且会拖慢实时查询的速度。 聊天系统是冷热分离的另外一个实用场景,用户通常只会查看实时的聊天消息,聊天记录的访问频次要低非常多。 总的来说,适合将数据做冷热分离的业务会有以下几个特征: 海量数据持续增长的业务:如交易历史数据,聊天记录,数据无法做TTL,且单个用户的数据会持续累加。 数据生命周期分明的业务:如监控数据,物流信息,feed收件箱,通常只会查询近期的数据,冷数据仅作为回溯问题使用。 重写轻读的业务:在IOT场景下,车联网中会有大量车辆上报的传感器信息

sqoop 1.4.6-cdh5.7.0安装

柔情痞子 提交于 2019-11-29 21:22:54
sqoop简介: Sqoop is a tool designed to transfer data between Hadoop and relational databases or mainframes. You can use Sqoop to import data from a relational database management system (RDBMS) such as MySQL or Oracle or a mainframe into the Hadoop Distributed File System (HDFS), transform the data in Hadoop MapReduce, and then export the data back into an RDBMS. Sqoop automates most of this process, relying on the database to describe the schema for the data to be imported. Sqoop uses MapReduce to import and export the data, which provides parallel operation as well as fault tolerance. sqoop

Sqoop1和Sqoop2简介

99封情书 提交于 2019-11-29 21:22:10
主要来源: http://www.linuxidc.com/Linux/2014-10/108337.htm http://sqoop.apache.org/ --- 官网 http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html http://sqoop.apache.org/ http://sqoop.apache.org/docs/1.4.4/index.html http://blog.csdn.net/maixia24/article/details/9266275 ---文章不错 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传输,发展至今主要演化了二大版本,Sqoop1和Sqoop2。 Sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive、hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入。 那么为什么选择Sqoop呢? 高效可控的利用资源,任务并行度,超时时间。 数据类型映射与转化,可自动进行,用户也可自定义 支持多种主流数据库,MySQL, Oracle ,SQL Server,DB2等等 2

你需要的不是实时数仓 | 你需要的是一款合适且强大的OLAP数据库(上)

旧时模样 提交于 2019-11-29 17:17:43
前言 今年有个现象,实时数仓建设突然就被大家所关注。我个人在公众号也写过和转载过几篇关于实时数据仓库的文章和方案。 但是对于实时数仓的狂热追求大可不必。 首先,在技术上几乎没有难点,基于强大的开源中间件实现实时数据仓库的需求已经变得没有那么困难。其次,实时数仓的建设一定是伴随着业务的发展而发展,武断的认为Kappa架构一定是最好的实时数仓架构是不对的。实际情况中随着业务的发展数仓的架构变得没有那么非此即彼。 在整个实时数仓的建设中,OLAP数据库的选型直接制约实时数仓的可用性和功能性。本文从业内几个典型的数仓建设和发展情况入手,从架构、技术选型和优缺点分别给大家分析现在市场上的开源OLAP引擎,旨在方便大家技术选型过程中能够根据实际业务进行选择。 管中窥豹-菜鸟/知乎/美团/网易严选实时数仓建设 为什么要构建实时数据仓库 传统的离线数据仓库将业务数据集中进行存储后,以固定的计算逻辑定时进行ETL和其它建模后产出报表等应用。离线数据仓库主要是构建T+1的离线数据,通过定时任务每天拉取增量数据,然后创建各个业务相关的主题维度数据,对外提供T+1的数据查询接口。计算和数据的实时性均较差,业务人员无法根据自己的即时性需要获取几分钟之前的实时数据。数据本身的价值随着时间的流逝会逐步减弱,因此数据发生后必须尽快的达到用户的手中,实时数仓的构建需求也应运而生。 总之就是一句话:时效性的要求。

hadoop命令执行hbase应用jar包时的环境变量加载问题

寵の児 提交于 2019-11-29 13:50:03
#问题描述 使用hadoop命令执行hbase应用jar包时,报如下错误: [hadoop@ breath ~]$ hadoop jar ~/HbaseTest-0.1.jar Test.HtableCreate Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at Test.HtableCreate.main(HtableCreate.java:21) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at

剑谱总纲 | 大数据方向学习面试知识图谱

谁说我不能喝 提交于 2019-11-29 11:57:48
<u> 关注我的公众号,后台回复【JAVAPDF】获取200页面试题! </u> 5万人关注的大数据成神之路,不来了解一下吗? 5万人关注的大数据成神之路,真的不来了解一下吗? 5万人关注的大数据成神之路,确定真的不来了解一下吗? 欢迎您关注 《大数据成神之路》 愿读到这篇文章的技术人早日明白并且脱离技术本身,早登彼岸。 一切技术最终只是雕虫小技。 大纲 本系列主题是大数据开发面试指南,旨在为大家提供一个大数据学习的基本路线,完善数据开发的技术栈,以及我们面试一个大数据开发岗位的时候,哪些东西是重点考察的,这些公司更希望面试者具备哪些技能。 本文不会对某一个知识点进行详细的展开,后续会陆续出专题文章,希望读者能当成一个学习或者复习的大纲,用以查漏补缺。 语言基础篇 Java基础篇 整个大数据开发技术栈我们从实时性的角度来看,主要包含了离线计算和实时计算两大部分,而整个大数据生态中的框架绝大部分都是用 Java 开发或者兼容了 Java 的 API 调用,那么作为基于 JVM 的第一语言 Java 就是我们绕不过去的坎,Java 语言的基础也是我们阅读源码和进行代码调优的基础。 Java 基础主要包含以下部分: 语言基础 锁 多线程 并发包中常用的并发容器(J.U.C) 语言基础 Java 的面向对象 Java 语言的三大特征:封装、继承和多态 Java 语言数据类型 Java

Apache Flink 零基础入门(十二)Flink sink

£可爱£侵袭症+ 提交于 2019-11-29 08:56:06
将DataSet中的数据Sink到哪里去。使用的是对应的OutPutFormat,也可以使用自定义的sink,有可能写到hbase中,hdfs中。 writeAsText() / TextOutputFormat ,以String的形式写入 writeAsCsv(...) / CsvOutputFormat,以CSV的方式写进去 print() / printToErr() / print(String msg) / printToErr(String msg)以标准输出 writeAsText object DataSetSinkApp { def main(args: Array[String]): Unit = { val environment = ExecutionEnvironment.getExecutionEnvironment val data = 1.to(10) val text = environment.fromCollection(data) val filePath = "E:/test" text.writeAsText(filePath) environment.execute("DataSetSinkApp") } } 如果E:/test文件或者文件夹存在,将无法执行成功。除非增加一个WriteMode.OVERWRITE text

详解数据服务共享发布

点点圈 提交于 2019-11-29 06:25:52
转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: 随着云计算、大数据、物联网等技术兴起,数据朝着多样性、高体量、高速度方向发展,如何将海量数据安全、稳定、高效地数据共享出去成为各企业关注的重点。本次微课堂通过普元在数据服务共享平台研发过程中的实践,和大家分享数据服务共享发布的相关经验。 目录: 1.数据服务共享发布核心场景 2.数据服务共享发布技术架构 3.数据服务共享发布关键设计 4.数据服务共享发布安全考虑 5.结束语 1.数据服务共享发布核心场景 按功能划分核心场景 核心场景主要包括四个环节:资源目录生成、数据服务发布、数据服务消费、数据服务监控。 资源目录生成:提供数据资源目录与服务资源目录两种视图,数据资源目录通过自动化采集方式生成,对各种数据源(数据库、文件、大数据)的元数据信息进行展示;通过数据服务发布快速生成服务资源目录。 数据服务发布:基于数据资源目录可将共享区数据快速发布成实时服务(RESTful)和批量服务(File)。 数据服务消费:定义了从服务浏览、申请、审批、数据使用的详细流程,消费方通过订阅或者拉取的方式使用数据。 数据服务监控:对数据服务全生命周期管理与监控,对故障进行实时告警。 按角色进行功能场景划分 围绕核心场景定义了四类角色:数据管理员、数据开发人员、数据消费方、运维人员。 数据管理员:负责数据资源目录、服务目录的维护

结构化数据存储,如何设计才能满足需求?

一曲冷凌霜 提交于 2019-11-29 05:59:28
阿里妹导读 :任何应用系统都离不开对数据的处理,数据也是驱动业务创新以及向智能化发展最核心的东西。数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成。应用系统负责处理业务逻辑,而数据系统负责处理数据。本篇文章主要面向数据系统的研发工程师和架构师,希望对你有所启发。 前言 传统的数据系统就是所谓的『大数据』技术,这是一个被创造出来的名词,代表着新的技术门槛。近几年得益于产业的发展、业务的创新、数据的爆发式增长以及开源技术的广泛应用,经历多年的磨炼以及在广大开发者的共建下,大数据的核心组件和技术架构日趋成熟。特别是随着云的发展,让『大数据』技术的使用门槛进一步降低,越来越多的业务创新会由数据来驱动完成。 『大数据』技术会逐步向轻量化和智能化方向发展,最终也会成为一个研发工程师的必备技能之一,而这个过程必须是由云计算技术来驱动以及在云平台之上才能完成。应用系统和数据系统也会逐渐融合,数据系统不再隐藏在应用系统之后,而是也会贯穿在整个业务交互逻辑。传统的应用系统,重点在于交互。而现代的应用系统,在与你交互的同时,会慢慢地熟悉你。数据系统的发展驱动了业务系统的发展,从业务化到规模化,再到智能化。 业务化:完成最基本的业务交互逻辑。 规模化:分布式和大数据技术的应用,满足业务规模增长的需求以及数据的积累。 智能化:人工智能技术的应用,挖掘数据的价值

如何解决分布式系统数据事务一致性问题

懵懂的女人 提交于 2019-11-29 05:33:07
一、关于分布式系统事务一致性问题 Java 中有三种可以的事务模型,分别称作本地事务模型(Local Transaction Model),编程式事务模型(Programmatic Transaction Model),和声明式事务模型(Declarative Transaction Model)。事务要求包含原子性(Atomicity),一致性(Consistency),独立性(Isolation),和持久性(Durability)。 《大型网站系统与Java中间件实践》一书中分享了一些解决分步式系统一致性问题的方案构思与实践,如在第六章中谈到的消息中间件。下表展现了解决一致性方案与传统方式的对比。 传统方式是,我做完了,发你消息。解决一致性的方案的意思就是,我先发你消息,我做完了再跟你确认我做完了。这是改进后的有事务的消息中间件。 因为在非XA 环境中,消息队列的插入过程独立于数据库更新操作,ACID 准则中的原子性和独立性不能得到保证,从而整体上数据完整性受到损害。使用X/Open 的XA 接口,我们便能够做到协调多个资源,保证维持ACID 准则。 在《淘宝技术这十年》这本书里也提到这么一段描写“用户在银行的网关付钱后,银行需要通知到支付宝,但银行的系统不一定能发出通知;如果通知发出了,不一定能通知到;如果通知到了,不一定不重复通知一遍。这个状况在支付宝持续了很长时间