Hadoop

节约60%成本!虎牙直播云端大数据是怎么做到的?

荒凉一梦 提交于 2020-08-14 13:38:43
引言 虎牙是中国第一家上市的游戏直播公司,旗下产品包括知名游戏直播平台虎牙直播、风靡东南亚和南美的游戏直播平台NimoTV等,产品覆盖PC、Web、移动三端。其中,游戏直播平台虎牙直播月活达1.5亿。 如何借助于海量业务数据将全平台的优质内容与终端用户更智能、高效地连接起来,为公司运营和业务发展提供更为有效的数据能力支撑,是虎牙大数据团队(下面简称虎牙)过去和未来一直需要深入思考和探索的重要使命。为了达成以上愿景,虎牙选择与腾讯云EMR团队合作,接入大数据云端解决方案。 本文将通过案例解读,带大家深入了解虎牙云端大数据实践。 一、虎牙直播大数据分析场景 1. 背景介绍 虎牙是中国第一家上市的游戏直播公司,旗下产品包括知名游戏直播平台虎牙直播、风靡东南亚和南美的游戏直播平台NimoTV等,产品覆盖PC、Web、移动三端。其中,游戏直播平台虎牙直播月活达1.5亿。 2. 大数据场景介绍 意识到数据对于业务的重要价值,虎牙很早就成立了近百人的专业大数据团队,这个团队拥有业内卓越的数据技术能力和业务理解力,以应对海量数据的高效存储计算、算法构建、业务价值洞察等领域化工作。 经过多年的建设,该团队围绕数据在各个领域都取得了极为显著的进展,真正让数据成为优质内容与终端用户连接的催化剂。 虎牙大数据团队基于开放Hadoop技术栈快速构建了稳健的全平台大数据平台,以支撑近百P规模的离线

【Hadoop篇05】Hadoop配置集群时间同步

久未见 提交于 2020-08-14 11:07:44
做任何事都要经受得挫折,要有恒心和毅力,满怀信心坚持到底 Hadoop配置集群事件同步 时间同步方式 找一台机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间 配置时间同步步骤 1.时间服务器配置(必须root用户) rpm -qa|grep ntp 2.修改ntp配置文件 vi /etc/ntp.conf 修改内容如下 a)修改1(授权192.168.1.0网段上的所有机器可以从这台机器上查询和同步时间) 打开限制 #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap b)修改2(集群在局域网中,不使用其他的网络时间) server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst为 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2

hive hbase关联表,增量导入的方式的实战

拥有回忆 提交于 2020-08-14 10:30:53
1.创建hbase表 create 'lyj:lyja','cf1' 2.写入数据 put 'lyj:lyja','1','cf1:name','zhangsan' put 'lyj:lyja','1','cf1:age','lisi' 3.查询hbase 表权限 (**给hive授权hbase表的操作权限否则不能操作hbase中的数据**) user_permission 'lyj:lyja' 4 . 在hbase中先授权给hive用户 su hbase hbase shell grant 'hive','RWXCA','lyja' 5.创建hive hbase 外部表 CREATE EXTERNAL TABLE lyja( key string, name string, age string ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:name,cf1:age") TBLPROPERTIES("hbase.table.name" = "lyja"); 6.准备数据 2,wangwu2,320 3,lisi2,110 7.上传数据到hdfs hdfs dfs -put test

Apache Spark 3.0 中的向量化执行

橙三吉。 提交于 2020-08-14 09:20:41
R 是数据科学中最流行的计算机语言之一,专门用于统计分析和一些扩展,如用于数据处理和机器学习任务的 RStudio addins 和其他 R 包。此外,它使数据科学家能够轻松地可视化他们的数据集。 通过在 Apache Spark 中使用 Spark R,可以很容易地扩展 R 代码。要交互式地运行作业,可以通过运行 R shell 轻松地在分布式集群中运行 R 的作业。 当 Spark R 不需要与 R 进程交互时,其性能实际上与 Scala、Java 和 Python 等其他语言 API 相同。但是,当 SparkR 作业与本机 R 函数或数据类型交互时,会性能显著下降。 如果在 Spark 和 R 之间使用 Apache Arrow 来进行数据交换,其性能会有很大的提升。这篇博客文章概述了 SparkR 中 Spark 和 R 的交互,并对比了没有向量化执行和有向量化执行的性能差异。 文章目录 1 Spark 和 R 交互 2 原始实现(Native implementation) 3 向量化执行(Vectorized implementation) 4 基准测试结果 Spark 和 R 交互 SparkR 不仅支持丰富的 ML 和类似 SQL 的 API 集合,而且还支持用于直接与 R 代码进行交互的一组 API。例如,Spark DataFrame 和 R

QingStor 对象存储架构设计及最佳实践

送分小仙女□ 提交于 2020-08-14 08:48:09
对象存储概念及特性 在介绍 QingStor®️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用。 对象存储本质上是一款存储产品,与其他的存储,如文件存储、块存储,功能是类似的,主要的功能都是数据的读和写。最大的不同在于对象存储是把数据作为对象进行管理,这是它最主要的特征,所有的数据在这里面都当做一个对象处理。 对象存储有一些非常鲜明的特点: 它的结构是扁平的,不像文件存储那样有目录层级,在读写数据时不需要对目录进行层层查找和打开。 对象存储具备海量数据存储的能力,这里的海量指的是不仅仅是几百 GB 的量,而是说几百 T 甚至上 PB 的级别。 对象存储适用于非结构化数据的存储,非结构化具体指的是不对数据的类型和格式做任何假设,不管是简单的文本,还是图片、视频、音频都可以存在对象存储里,当做对象来处理。 对象存储通过 Restful 接口对外提供服务,也就是 HTTP 协议,这使得对象存储的访问非常方便,随时随地可以进行数据的上传和下载。 QingStor®️对象存储核心优势 ![0_1591683403636_1.png]( https://community.qingcloud.com/assets/uploads/files/1591683404995-1-resized.png

Java字节码角度分析条件判断指令 ——提升硬实力3

[亡魂溺海] 提交于 2020-08-14 08:14:31
在前面的文章中,有详细地介绍java字节码相关的知识,有兴趣的可以提前了解一下。 1. Java字节码的一段旅行经历——提升硬实力1 2. Java字节码角度分析a++ ——提升硬实力2 下面将详细介绍一下java是if 条件判断是如何通过字节码来实现判读的。以下是java条件判断对应的字节码: 指令 助记符 含义 0x99 ifeq 判断是否 == 0 0x9a ifne 判断是否 != 0 0x9b iflt 判断是否 < 0 0x9c ifge 判断是否 >= 0 0x9d ifgt 判断是否 > 0 0x9e ifle 判断是否 <= 0 0x9f if_icmpeq 两个int 是否 == 0xa0 if_icmpne 两个int 是否 != 0xa1 if_icmplt 两个int 是否 < 0xa2 if_icmpge 两个int 是否 >= 0xa3 if_icmpgt 两个int 是否 > 0xa4 if_icmple 两个int 是否 <= 0xa5 if_acmpeq 两个引用是否 == 0xa6 if_acmpne 两个引用是否 != 0xc6 ifnull 判断是否 == null 0xc7 ifnonnull 判断是否 != null 几点说明: byte,short,char 都会按int比较,因为操作数栈都是4字节 goto

IDEA 运行和远程提交 MapReduce 程序

╄→гoц情女王★ 提交于 2020-08-14 03:46:11
项目依赖管理这里使用 Gradle,Maven 只需要添加所需依赖即可。 所需软件:Hadoop、JDK、Idea 前提:已经设置好 JAVA_HOME 环境变量和安装好 Idea。 1、Idea 本地独立模式运行 MapReduce 1.1、解压 Hadoop 和设置环境变量 将 Hadoop 解压本地目录,例如 C:\Hadoop 设置环境变量: HADOOP_HOME 指向 Hadoop 解压目录 HADOOP_USER_NAME : 用户名,Hadoop 运行的用户名(下一节 远程提交需要,跟 HDFS 集群所用的一样) PATH:添加指向 HADOOP_HOME\bin 和 HADOOP_HOME\sbin 的值 重要:Windows 系统 :Windows 运行 Hadoop 需要 winutils.exe 和 hadoop.dll 这两个文件: https://github.com/cdarlint/winutils 下载对应 Hadoop 版本的 hadoop.dll 复制到 C:\Windows\System32 winutils.exe 复制到 HADOOP_HOME\bin 1.2、新建项目 示例项目在 src/hadoop 选择 Gradle 或者 Maven 等构建工具,添加如下依赖:version 对应 Hadoop 的版本。 // https:/

深入理解数砖的 Delta Engine

故事扮演 提交于 2020-08-14 03:12:30
在 Spark AI Summit 的第一天会议中,数砖重磅发布了 Delta Engine。这个引擎 100% 兼容 Apache Spark 的向量化查询引擎,并且利用了现代化的 CPU 架构,优化了 Spark 3.0 的查询优化器和缓存功能。这些特性显著提高了 Delta Lake 的查询性能。当然,这个引擎目前只能在 Databricks Runtime 7.0 中使用。 文章目录 1 数砖研发 Delta Engine 的目的 2 Delta Engine:高性能的查询引擎 3 Photon:原生向量化执行引擎 3.1 String 优化 数砖研发 Delta Engine 的目的 过去十年,存储的速度从 50MB/s(HDD)提升到 16GB/s(NvMe);网络的速度从 1Gbps 提升到 100Gbps;但是 CPU 的主频从 2010 年的 3GHz 到现在基本不变。 如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号: iteblog_hadoop NVM Express(NVMe),或称非易失性内存主机控制器接口规范(英语:Non-Volatile Memory Host Controller Interface Specification,缩写:NVMHCIS),是一个逻辑设备接口规范。它是与 AHCI 类似的

大数据实践解析(下):Spark的读写流程分析

旧巷老猫 提交于 2020-08-14 01:57:30
导读: 众所周知,在大数据/数据库领域,数据的存储格式直接影响着系统的读写性能。spark是一种基于内存的快速、通用、可扩展的大数据计算引擎,适用于新时代的数据处理场景。在“ 大数据实践解析(上):聊一聊spark的文件组织方式 ”中,我们分析了spark的多种文件存储格式,以及分区和分桶的设计。接下来,本文通过简单的例子来分析在Spark中的读写流程,主要聚焦于Spark中的高效并行读写以及在写过程中如何保证事务性。 1、文件读 如何在Spark中做到高效的查询处理呢?这里主要有两个优化手段: 1)减少不必要的数据处理。数据处理涉及文件的IO以及计算,它们分别需要耗费大量的IO带宽和CPU计算。在实际的生产环境中,这两类资源都是有限的,同时这些操作十分耗时,很容易成为瓶颈,所以减少不必要的数据处理能有效提高查询的效率; 以下面的查询为例: spark.read.parquet("/data/events") .where("year = 2019") .where("city = 'Amsterdam'") .select("timestamp") 由于在events表中按照year字段做了分区,那么首先通过 year 字段我们就可以过滤掉所有year字段不为 2019 的分区: 因为文件是parquet的文件格式,通过谓词下推可以帮助我们过滤掉 city 字段不是

ambari大数据集群+HIVE安装配置

三世轮回 提交于 2020-08-13 23:03:43
源码安装对于新手来说往往费时费力,搭建好hadoop环境之后,再搭建hadoop生态中其他工具就更具挑战;此外,搭建好之后对于生态工具的管理以及监控也是不小的挑战,因此ambari及CDH并应运而生。ambari及CDH的诞生极大简化了大数据集群的配置安装及监控管理。这篇文章以ambari大数据集群的安装配置为例,记录整个过程。 PS: 本文中用到的安装包均可从百度网盘获取: https://pan.baidu.com/s/1povy3VrUgNyd2ezWHbxFKA 提取密码: ufqd 前提假设: 1. 基础系统环境Centos 7.x,预备3台物理机或虚拟机或docker容器 //由于ambari安装比源码更耗资源,建议每台主机内存不少于4G,如果要加装其他工具,建议分配更大 由于资源有限,本次示例以docker容器方式安装,分别规划了master(172.18.0.251), worker1(172.18.0.252), worker2(172.18.0.253)三个容器 容器快速入门可参考地址: https://blog.51cto.com/taoismli/category8.html 2. 每台主机(容器)已配置好JDK centos配置JDK可参考地址: https://blog.51cto.com/taoismli/1963896 3. 每台主机(容器