HDFS

快手春节红包背后,高并发存储架构设计

£可爱£侵袭症+ 提交于 2020-08-19 13:37:02
2020年春节,腾讯云文件存储(CFS)在通过了预演层层压测的选拔后成为快手广告推荐业务的护旗手,以100%的可用性护航了快手春节红包活动。本文是腾讯云高级工程师陈宏亮在「云加社区沙龙online」的分享整理,为大家带来应对单文件大吞吐高并发的存储架构设计方案! 点击视频,查看完整直播回放 一、快手红包案例背景 2020年的春节,想必大家都印象深刻,除了新冠肺炎疫情,就是春晚各大APP的红包大战,让不少用户“薅”到了羊毛。 大年三十看春晚,多年来已成为中国人的过年传统之一。春晚是覆盖全国各线城市和广大乡村的超过10亿观众的超级流量入口,可以迅速帮助互联网巨头们实现下沉、导流和拉新。 事实上,红包早已不是单纯的红包,已经成为超级流量入口和新的强大增长引擎。在“红包”发放和领取的背后,包括大数据、云计算、支付结算等一系列的变革。 过去五年来,央视春晚的舞台一直都是BAT的天下。但今年快手在竞标过程中PK掉了阿里、拼多多和字节跳动后,成功竞标成为央视春晚独家合作伙伴。而其他公司虽然没有竞标到春晚的独家合作,但是在2020年春节那个疯狂的除夕夜,他们依然投入了巨资,加入了春节红包这场混战。 一场围绕着春节、民俗和亲情的全民红包大战已经成为各互联网巨头每年农历年底最重磅的营销活动。 而最终的战果,根据快手官方披露的 “春节 10 亿现金红包” 活动成果数据显示:春晚期间,快手红包互动总量高达

How to get files metadata, when retrieving data from HDFS?

不羁的心 提交于 2020-08-18 08:00:19
问题 I requested data from HDFS, and I would like to get the metadata of the files from which they were read. This will allow me to build reports which will look like based on available data at the given moment. I found the solution which is to use org.apache.hadoop.fs.FileSystem to get a listing of all files. I know the partitioning rule, and I can build mapping row -> meta , based on the received listing. But this decision seems difficult to implement and support. Maybe there are simpler ways to

Hadoop大数据存算分离下,如何解决新旧存储共存?

断了今生、忘了曾经 提交于 2020-08-18 05:31:00
在传统的Apache Hadoop集群系统中,计算和存储资源是紧密耦合的,HDFS为大数据存储带来便利的同时,也面临着一些挑战: 当存储空间或计算资源不足时,只能同时对两者进行扩容。假设用户对存储资源的需求远大于对计算资源的需求,那么同时扩容计算和存储后,新扩容的计算资源就被浪费了,反之,存储资源被浪费。 这导致扩容的经济效率较低,额外增加成本。而独立扩展的计算和存储则更加灵活,同时可显著降低成本。 现在Hadoop采用存算分离的架构的趋势越来越明显。 XSKY HDFS Client是为XEOS存储集群和Hadoop计算集群量身打造的连接器。通过XSKY HDFS Client,Hadoop应用可以访问存储在XEOS中的所有数据。 但是,在引入XEOS存储后,会出现原有HDFS与XEOS共存的情况,如何将两套存储集群都利用起来是需要解决的问题。 1 数据跨集群拷贝 一般情况下,计算应用需要访问的数据,如果保存在不同的集群中,那么应该将其中一个集群的数据拷贝到另一个集群上。一般情况下使用Hadoop自带的DistCp工具,对数据进行跨集群的拷贝。 这种方式虽然在一定程度上可以解决数据合并的问题,但如果数据量比较大,并且机房带宽有限制的情况下,可能拷贝数据的时间会非常长。还有一个就是在拷贝过程中原始数据发生改动,就还需要考虑增量同步的问题。 2 联邦HDFS和ViewFS

快速看懂文件存储 HDFS创建权限组

别说谁变了你拦得住时间么 提交于 2020-08-17 16:49:28
云栖号快速入门: 【点击查看更多云产品快速入门】 不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 通过权限组对文件系统的权限进行管理,在使用文件存储HDFS之前,需要创建权限组并配置相关参数。 背景信息 在文件存储HDFS中,权限组是一个白名单机制,通过向权限组添加规则,来允许指定的IP或网段访问文件系统,并可以给不同的IP或网段授予不同级别的访问权限。 操作步骤 1.登录 文件存储HDFS控制台 。 2.单击左侧的 权限组 ,然后单击 创建权限组 。 3.在 创建权限组页面 ,配置以下各项参数。 各参数说明如下: 4.单击 确定 ,完成权限组的创建。 本文来自 阿里云文档中心 文件存储 HDFS 创建权限组 【云栖号在线课堂】每天都有产品技术专家分享! 课程地址: https://yqh.aliyun.com/zhibo 立即加入社群,与专家面对面,及时了解课程最新动态! 【云栖号在线课堂 社群】 https://c.tb.cn/F3.Z8gvnK 来源: oschina 链接: https://my.oschina.net/u/4385225/blog/4304776

Hadoop基本介绍(2)

大兔子大兔子 提交于 2020-08-17 16:22:33
Hadoop基本介绍2 HDFS 特性 HDFS缺点: HDFS高级命令 HDFS安全模式 Fsimage Edits Fsimage Edits作用: 查看Fsimage Edits SecondaryNamenode工作原理 前提: 目标: 意义: 什么时候进行文件拷贝合并 HDFS 特性 1、海量数据存储: HDFS可横向扩展,其存储的文件可以支持PB级别数据。 2、高容错性:节点丢失,系统依然可用,数据保存多个副本,副本丢失后自动恢复。 可构建在廉价(与小型机大型机比)的机器上,实现线性扩展(随着节点数量的增加,集群的存储能力,计算能力随之增加)。 3、大文件存储:DFS采用数据块的方式存储数据,将一个大文件切分成多个小文件,分布存储。 HDFS缺点: 1、 不能做到低延迟数据访问: HDFS 针对一次性读取大量数据继续了优化,牺牲了延迟性。 2、不适合大量的小文件存储 : A:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。 B:每个文件、目录和数据块的存储信息大约占150字节。 由于以上两个原因,所以导致HDFS不适合大量的小文件存储 3、文件的修改; 不适合多次写入,一次读取(少量读取) 4、不支持多用户的并行写 HDFS高级命令 HDFS上的某一个特定的目录存储的数据副本 、数据量

AI 时代,还不了解大数据?

寵の児 提交于 2020-08-17 12:25:23
如果要问最近几年,IT行业哪个技术方向最火?一定属于ABC,即AI + Big Data + Cloud,也就是人工智能、大数据和云计算。 这几年,随着互联网大潮走向低谷,同时传统企业纷纷进行数字化转型,基本各个公司都在考虑如何进一步挖掘数据价值,提高企业的运营效率。在这种趋势下,大数据技术越来越重要。所以,AI时代,还不了解大数据就真的OUT了! 相比较AI和云计算,大数据的技术门槛更低一些,而且跟业务的相关性更大。我个人感觉再过几年,大数据技术将会像当前的分布式技术一样,变成一项基本的技能要求。 前几天,我在团队内进行了一次大数据的技术分享,重点是对大数据知识做一次扫盲,同时提供一份学习指南。这篇文章,我基于分享的内容再做一次系统性整理,希望对大数据方向感兴趣的同学有所帮助,内容分成以下5个部分: 1、大数据的发展历史 2、大数据的核心概念 3、大数据平台的通用架构和技术体系 4、大数据的通用处理流程 5、大数据下的数仓体系架构 01 大数据的发展历史 在解释「大数据」这个概念之前,先带大家了解下大数据将近30年的发展历史,共经历了5个阶段。那在每个阶段中,大数据的历史定位是怎样的?又遇到了哪些痛点呢? 1.1 启蒙阶段:数据仓库的出现 20世纪90年代,商业智能(也就是我们熟悉的BI系统)诞生,它将企业已有的业务数据转化成为知识,帮助老板们进行经营决策。比如零售场景中

【HDFS篇03】HDFS客户端操作 --- 开发环境准备

試著忘記壹切 提交于 2020-08-17 09:20:08
存储越困难,提取越容易 HDFS客户端操作---开发环境准备 步骤一:编译对应HadoopJar包,配置Hadoop变量 步骤二:创建Maven工程,导入pom依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.2</version> </dependency>

Python --深入浅出Apriori关联分析算法(一)

半城伤御伤魂 提交于 2020-08-17 04:34:55
在美国有这样一家奇怪的超市, 它将啤酒与尿布这样两个奇怪的东西放在一起进行销售,并且最终让啤酒与尿布这两个看起来没有关联的东西的销量双双增加 。这家超市的名字叫做沃尔玛。 你会不会觉得有些不可思议?虽然事后证明这个案例确实有根据,美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。但这毕竟是事后分析, 我们更应该关注的,是在这样的场景下,如何找出物品之间的关联规则 。接下来就来介绍下如何使用Apriori算法,来找到物品之间的关联规则吧。 一. Apriori关联分析概述 选择物品间的关联规则也就是要寻找物品之间的潜在关系。要寻找这种关系,有两步,以超市为例 找出频繁一起出现的物品集的集合,我们称之为 频繁项集 。比如一个超市的频繁项集可能有{{啤酒,尿布},{鸡蛋,牛奶},{香蕉,苹果}} 在 频繁项集 的基础上,使用 关联规则 算法找出其中物品的 关联结果 。 简单点说,就是先找频繁项集,再根据关联规则找关联物品。 为什么要先找频繁项集呢?还是以超市为例,你想想啊,我们找物品关联规则的目的是什么,是为了提高物品的销售额。如果一个物品本身购买的人就不多,那么你再怎么提升,它也不会高到哪去。所以从效率和价值的角度来说,肯定是优先找出那些人们频繁购买的物品的关联物品。 既然要找出物品的关联规则有两步,那我们也一步一步来

hadoop 1.0.1 安装详解-新手必备

落花浮王杯 提交于 2020-08-17 04:34:00
Hadoop 安装详解--新手必备 准备: 这次学习,我使用的是虚拟机vmware,安装了3台虚拟机,系统为centos 5(其它版本亦可),主机名依次命名为hdfs1、hdfs2、hdfs3,ip地址一次为:172.16.16.1、172.16.16.10、172.16.16.11 通过配置/etc/sysconfig/network 修改主机名 通过修改/etc/sysconfig/network-scripts/ifcfg-eth0 ,配置ip等信息 将主机hdfs1作为hadoop作为分布式文件系统HDFS的namenode节点和MapReduce 运行过程中的 Job Tracker 结点,我们将 hdfs1 称之为主结点。其它两台机器 (hdfs2, hdfs3) 作为 HDFS 的 Data Node 以及 MapReduce 运行过程中的 Task Tracker 结点,这些结点可统称为从结点。如你需要部署更多的机器,也是很容易的,将新加入的机器作为 Data Node 以及 Task Tracker 结点即可,其配置过程在您看完本文后就会了。 步骤一: vi /etc/hosts 172.16.16.10 hdfs2 172.16.16.11 hdfs3 172.16.16.1 hdfs1 先保证每一台主机都能ping通其他主机,ping 通其他任意节点的主机名

Presto性能调优的五大技巧

放肆的年华 提交于 2020-08-17 03:36:43
概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。 Presto的架构分为: Coodinator: 解析SQL语句,生成执行计划,分发执行任务给Worker节点执行。 Discovery Server: Worker节点启动后向Discovery Server服务注册,Coordinator从Discovery Server获得可以正常工作的Worker节点。 Worker: 负责执行实际查询任务,访问底层存储系统。 存储 :Presto的数据可以存储在HDFS/OBS,推荐热数据存储在HDFS,冷数据存储在OBS。 内存调优 内存管理原理 Presto有三种内存池,分别为GENERAL_POOL、RESERVED_POOL、SYSTEM_POOL。 GENERAL_POOL:用于普通查询的physical operators。GENERAL_POOL值为 总内存(Xmx值)- 预留的(max-memory-per-node)- 系统的(0.4 * Xmx)。 SYSTEM_POOL:系统预留内存,用于读写buffer,worker初始化以及执行任务必要的内存。大小由config.properties里的resources.reserved-system-memory指定。默认值为JVM max