Apache HBase

连载:阿里巴巴大数据实践—数据服务

荒凉一梦 提交于 2020-11-03 16:42:55
阿里数据人都在用的内部技术经验 关注 数智化转型俱乐部 ,数智化不迷路 摘要 服务架构的每次升级,均在性能、稳定性、扩展性等方面有所提升,从而能更好地服务于用户 数据部门产出的海量数据,如何能方便高效地开放出去,是我们一直想要解决的难题。在没有数据服务的年代,数据开放的方式简单、粗暴,一般是直接将数据导出给对方。这种方式不仅低效,还带来了安全隐患等诸多问题。 为此,我们在数据服务这个方向上不断探索和实践。最早的数据服务雏形诞生于2010年,至今已有7个年头。在这期间,随着我们对业务的理解不断加深,同时也得益于新技术的持续涌现,对数据服务架构也进行了多次升级改造。服务架构的每次升级,均在性能、稳定性、扩展性等方面有所提升,从而能更好地服务于用户。 1.服务架构的演进 阿里数据服务架构演 进过程如图6.1所示。 基于性能、扩展性和稳定性等方面的要求,我们不断升级数据服务的架构,依次经历了内部代号为DWSOA、OpenAPI、SmartDQ和OneService的四个阶段。 阿里数据服务架构演进过程 其中, 第四个阶段是统一的数据服务层(即OneService) 。大家心里可能会有疑问:SQL并不能解决复杂的业务逻辑啊。确实,SmartDQ其实只满足了简单的查询服务需求。我们遇到的场景还有这么几类:个性化的垂直业务场景、实时数据推送服务、定时任务服务

从面试官的角度谈谈大数据面试

喜夏-厌秋 提交于 2020-11-03 07:49:52
关于传授面试经验的文章太多了,眼花缭乱,我这里就不谈了,点进来想获取几吨面试学习资料的同学,抱歉让你失望了。(我是真的找不到那么多资料...)。所以,今天我们只聊面试官。 作为一只老鸟,我的面试经验还算丰富,无论是作为面试者还是面试官。其实这篇对于面试者来说也是有意义的,毕竟知己知彼,百战不殆,知道对方会从哪些方面问问题,从哪些方面考核,才能更好地提前做好准备。 首先,我觉得面试官有责任保证面试过程是一次高效的交流。你要获取到你需要的信息,对面试者做全方位的考量;面试者也要获取到他需要的信息,面试官(若面试成功很大可能是自己的上级)的水平,公司技术要求水平,自己是否适合这家公司,公司是否需要自己。 面试是一个双向选择的过程,面试官在选人,面试者在选公司。而面试者了解这家公司最直接的途径就是通过面试官。 说说面试官 我先说几个面试官常会有的问题。 问题问得太跳跃,想到什么问什么 抓住一个面试官自己很熟的知识点或者方向往死里问 ,完全不会根据面试者的回答情况做调整(我是来面试的,不是来看你炫技的) 只问技术,不问业务 技术问题问得太表面 当然我也见过不错的面试官,问题问得很有水平。那有水平的面试官会给人什么样的感觉? 答得很舒服,不管结果怎么样,总之能展现出自己应有的水平 面试过程是有收获的,没有白来,知道了自己的欠缺 如果面试者是个到处抢着要的高手

走不出舒适区,就是另一种上瘾

筅森魡賤 提交于 2020-11-02 14:48:47
马哥Linux运维 ID: magedu-Linux ▲长按图片识别二维码关注 马哥教育是国内顶级的 Linux 云计算、Python 全栈+自动化+爬虫+AI高薪就业技能学习平台,目前有 10 多位腾讯、百度、阿里等一线技术专家定期做 Linux 运维、Python 开发、数据挖掘、人工智能、云计算、大数据、服务架构等方面技术分享和行业交流,100000+IT 人订阅,每天都有精选技术干货文章发布。 朱小厮的博客 ID:hiddenkafka ▲长按图片识别二维码关注 著有畅销书:《深入理解Kafka》和《RabbitMQ实战指南》。公众号主要用来分享Java技术栈、Golang技术栈、消息中间件(如Kafka、RabbitMQ)、存储(如MySQL、Redis、TSDB)、通用型技术(如Linux、网络)、大数据(如Spark、Flink)以及通用型技术架构等相关的技术。 CU技术社区 ID: ChinaUnix2013 ▲长按图片识别二维码关注 ChinaUnix社区官方公众账号,不间断分享国内外最新IT运维、技术开发和开源社区相关资讯和技术交流信息,不定期联合 ChinaUnix 社区举办各类福利活动,投放各类福利,每日 ITDaily 推送给你带来当日 IT圈最新槽点、亮点。代码生活,程序人生,你想要的,这里都有。 优达学城Udacity ID:youdaxue

「从零单排canal 03」 canal源码分析大纲

独自空忆成欢 提交于 2020-11-02 02:56:21
在前面两篇中,我们从基本概念理解了canal是一个什么项目,能应用于什么场景,然后通过一个demo体验,有了基本的体感和认识。 从这一篇开始,我们将从源码入手,深入学习canal的实现方式。了解canal相关功能的实现方式,其中有很多机制是非常值得深入了解的,从代码实现角度去学习实时数据订阅与同步的核心技术点。当然,如果要在生产中使用这个开源项目,了解源码更是必不可少,是解决问题和新特性定制的前提条件。 本文使用的版本是1.1.4,这也是笔者写这篇博客时的最新稳定版。 1.准备工作 下载源码 git clone https: //github.com/alibaba/canal.git 切换到1.1.4这个tag git checkout canal-1 .1 .4 或者可以关注我的源码注释版本(正在不断更新中) https: / /github.com/saigu /JavaKnowledgeGraph/tree /master/code _reading/canal 2.canal项目模块介绍 canal项目是基于maven构建的,将不同的功能模块划分了不同的子模块。 我们可以简单执行可执行模块deployer,也可以将模块通过maven依赖的方式,将你需要的子模块引入到你自己的项目中进行使用开发。 简单介绍下核心模块的功能: deployer模块:独立部署模块,用于canal

ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 解决方案

≯℡__Kan透↙ 提交于 2020-11-01 19:19:13
ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 解决方案 参考文章: (1)ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 解决方案 (2)https://www.cnblogs.com/spicy/p/9510330.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4678645

Java工程师必备

不羁的心 提交于 2020-11-01 07:37:45
Java工程师必备 JAVA基础扎实,熟悉JVM,熟悉网络、多线程、分布式编程及性能调优 精通Java EE相关技术 熟练运用Spring/SpringBoot/MyBatis等基础框架 熟悉分布式系统相关技术 熟悉MySQL及SQL优化 高并发、高可用、微服务、容器化等开发经验 熟悉JVM原理,精通io、多线程,精通分布式、缓存、消息等机制 熟练使用和配置Tomcat应用服务器 掌握Eclispse,Maven,SVN,GIT等软件开发工具的环境搭建和使用 熟悉H5、CSS、JS等前端技术,熟悉BootStrap、Jquery等常用框架的一种 掌握SQL,至少熟悉MariaDB(MySQL)/Oracle数据库中的一种 客户端与服务端数据接口封装,独立调试各类数据接口,如支付接口,短信接口,等各类第三方数据接口对接 熟悉分布式缓存、消息中间件、RPC框架、负载均衡、安全防御等技术 有大数据处理经验,包括hadoop/storm/spark/hbase/ELK等 对RPC或GRPC有一定的工作经验 熟悉Linux环境以及操作 熟练掌握Java开发语言或Python,有服务端开发经验,熟悉多线程、高并发等常用开发技术 熟悉JS、Jquery,掌握HTTP/HTTPS协议,有Web前台开发经验优先 有云计算及大数据领域开发经验优先 结言 好了,欢迎在留言区留言,与大家分享你的经验和心得

敖丙8年经验读者,疫情期间面20家大厂总结

谁都会走 提交于 2020-11-01 07:20:36
本文来自一个8年大数据老兵的面试经历投稿,我完完整整的看了一遍,真的很细很细,疫情期间面试各种失败各种总结,最后拿到Offer实属不易,精神很值得大家学习 前言 我不是什么大牛,我只是一个有八年工作经验的互联网老兵,既没有非常亮眼的学历,也没有牛逼大厂的履历。 这个冬天,在孩子得病从急诊转住院的时候,我得到了年前将被优化的消息,作为家里唯一经济来源的我整个人蒙了,一时间茫然和无助差点毁了我。 最后我还是和家人如实说了,受到了他们的极大的鼓励,也找到了重新开始的勇气。 可惜这场疫情来的如此凶猛,职位少、要求高、电话面试、视频面试、在线coding、屡战屡败、屡败屡战,构成了我这两个月的常规生活。 我一开始也焦虑、茫然,甚至对自己的能力和工作经验深深怀疑。 后来经过几个好朋友的鼓励打气,也看了敖丙的很多面试文章,认真总结自己面试中不足的地方,查漏补缺,终于在这周确定了offer。(这是原话,我真没瞎加哈哈) 接下来我就我之前面过的腾讯、高德、京东、美团、饿了么、快手、字节跳动、滴滴、360金融、跟谁学、网联清算、华晨宝马、快看漫画、陌陌、脉脉等等等公司的面试题做一下总结,权当抛砖引玉,希望对大家有帮忙。 面试问题汇总 基础问题 linux和网络基础 (1)linux系统内核态和用户态是什么,有什么区别? (2)BIO、NIO、AIO都是什么,有什么区别? (3)TCP和UDP的区别?

zookeeper和hbase集群搭建

点点圈 提交于 2020-10-31 07:54:41
zookeeper与hbase分布式搭建 zookeeper集群 1.zookeeper,故名思意,就是动物园管理员的意思,Hadoop生态里面的东西基本上都是一些小动物的昵称,所以,就这么来了 这里接前篇的Hadoop分布式搭建,所有平台都搭建在/root/app目录下 (千万别学我用根用户弄,我是为了懒得敲sudo) 我们将下载的zookeeper安装包上传至虚拟机中,然后解压 tar -zxvf zookeeper-3.4.10.tar.gz 解压好了之后,我们建立两个文件夹,一个是zkdata,一个是zkdatalog mkdir zkdata # 数据 mkdir zkdatalog # 日志 2.我们cd进conf文件夹下,配置zoo.cfg文件,然这个文件夹里只有个叫zoo_sample.cfg(~废话,重命名啊~) 修改如下图所示: 其实也就是这些参数,有几个不用改。 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/app/zookeeper-3.4.10/zkdata clientPort=2181 dataLogDir=/root/app/zookeeper-3.4.10/zkdatalog server.1=master:2888:3888 server.2=slave1:2888:3888

【2020-10-28】加油打工人

百般思念 提交于 2020-10-30 08:52:16
我的大学 普通二本,电子信息工程专业,没的说,学不到啥东西,考试真的很水,一学期不听课,期末复习都能考个七八十,运气好还能上9,比起辛辛苦苦听课也考九十几得我来说不值一提。 培训班千万别去,他只是一个监督你学习的地方,你连自己都监督不了,怎么可能学的好呢? 做了两年竞赛,省一二三都拿过,你要是找专业对口的工作还有点用。 大三觉得自己专业没出路,自己学了java、mysql、大数据框架(hadoop、hive、flume、hbase、spark、flink),大数据这东西还挺吃香,但是你没有实际的项目经验,做的网上的小玩意,工作还是很难找的,不过你要是深入了解并且懂了,那么你就是大佬。 大四上做了毕设,下学期去实习了。 其他同学考研、考公、找工作的、还有去当兵的。 真想念那些日子,即使在实习,也每周五坐夜车回去学校跟他们一起看LPL,那时候还没有轻轨,做的大巴,一躺就要一个半小时,顺便在车上给爸妈打电话。 杭漂人 今年刚毕业,普通二本,很后悔当初没有考研,直到找工作跟你谈薪资的时候,看到是普通本 科的,直接给你刷掉2-3K,很现实的一个东西。 有两段实习经历,去年十月份开始的,到现在有一年多的工作经验了 ,第一次实习坎坎坷坷,做的是数据仓库的东西,应为是实习生,干的都是一些体力活,偶尔加一点脑力的,所以做了两个多月,就走人了,也没学到啥东西。 第二段实习,就是我现在做的工作

HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?

夙愿已清 提交于 2020-10-29 17:18:23
LSM Tree(Log-structured merge-tree)广泛应用在HBase,TiDB等诸多数据库和存储引擎上,我们先来看一下它的一些应用: 参考资料【4】 这么牛X的名单,你不想了解下LSM Tree吗?装X之前,我们先来了解一些基本概念。 设计数据存储系统可能需要考虑的一些问题有:ACID,RUM(Read,Write,Memory)。 ACID ACID 相信小伙伴都被面试官问过,我想简单讨论的一点是:如何 持久化数据 才能保证数据写入的 事务性 和 读写性能? 事务性可简单理解为:1.数据必须持久化。2.一次数据的写入返回给用户 写入成功就一定成功,失败就一定失败。 读写性能可简单理解为:一次读 或 一次写 需要的IO次数,因为访问速率:CPU>>内存>>SSD/磁盘。 对于单机存储,最简单的方式当然是:写一条就持久化一条,读一条就遍历一遍所有数据,然后返回。当然没人这么干,在内存中我们都还知道用个HashMap呢。 拿Mysql InnoDB举例子: 读性能体现在数据的索引在磁盘上主要用B+树来保证。 写性能体现在运用 WAL机制 来避免每次写都去更新B+树上的全量索引和数据内容,而是通过redo log记录下来每次写的增量内容,顺序将redo log写入磁盘。同时在内存中记录下来本次写入应该在B+树上更新的脏页数据,然后在一定条件下触发脏页的刷盘。