Hive

基于docker的spark-hadoop分布式集群之一: 环境搭建

南楼画角 提交于 2020-08-15 04:21:49
一、软件准备 1、基础docker镜像:ubuntu,目前最新的版本是18 2、需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7.3.tar.gz (3) apache-hive-2.3.2-bin.tar.gz (4) jdk-8u101-linux-x64.tar.gz (5) mysql-5.5.45-linux2.6-x86_64.tar.gz、mysql-connector-java-5.1.37-bin.jar (6) scala-2.11.8.tgz (7) zeppelin-0.8.0-bin-all.tgz 二、ubuntu镜像准备 1、获取官方的镜像: docker pull ubuntu 2、因官方镜像中的apt源是国外资源,后续扩展安装软件包时较麻烦。先修改为国内源: (1)启动ubuntu容器,并进入容器中的apt配置目录 docker run -it -d ubuntu docker exec -it ubuntu /bin/bash cd /etc/apt (2)先将原有的源文件备份: mv sources.list sources.list.bak (3)换为国内源,这里提供阿里的资源。因官方的ubuntu没有艰装vi等软件,使用echo指令写入。需注意一点,资源必须与系统版本匹配

系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL

回眸只為那壹抹淺笑 提交于 2020-08-15 03:24:14
本文目录CONTENTS ☞ ETL同步之道 [ Sqoop、DataX、Kettle、Canal、StreamSets ] ☞ ETL之技术栈 [ 重工具 vs 开发语言 ] ☞ ETL加载策略 [ Merge、Delta、拉链 ] ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 ETL工具或类ETL的数据集成同步工具或语言,企业生产中工具也非常之多,主流的etl工具有Sqoop、DataX、Canal、flume、Logstash、kettle、DataStage、Informatica、Talend等,语言有强悍的SQL、Shell、Python、Java、Scala等。而数据源多为业务系统,埋点日志,离线文件,第三方数据等。 数据同步之道 01. sqoop Sqoop,SQL-to-Hadoop 即 “SQL到Hadoop和Hadoop到SQL”。 是Apache开源的一款在Hadoop和关系数据库服务器之间传输数据的工具。主要用于在Hadoop与关系型数据库之间进行数据转移,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。

数仓面试|四个在工作后才知道的SQL密技

不打扰是莪最后的温柔 提交于 2020-08-15 02:48:02
SQL是大数据从业者的必备技能,大部分的大数据技术框架也都提供了SQL的解决方案。可以说SQL是一种经久不衰、历久弥新的编程语言。尤其是在数仓领域,使用SQL更是家常便饭。本文会分享四个在面试和工作中常用的几个使用技巧,具体包括: 日期与期间的使用 临时表与Common Table Expression (WITH) Aggregation 与CASE WHEN的结合使用 Window Function的其他用途 数仓?不就是写写SQL吗… 第一:日期与期间的使用 日期与时间段的筛选在工作中是经常被用到的,因为在拉取报表、仪表板和各种分析时,周、月、季度、年度的表现往往是分析需要考量的重点。 时间区段的提取:Extract 语法 -- field可以是day、hour、minute, month, quarter等等 -- source可以是date、timestamp类型 extract(field FROM source) 使用 SELECT extract(year FROM '2020-08-05 09:30:08'); -- 结果为 2020 SELECT extract(quarter FROM '2020-08-05 09:30:08'); -- 结果为 3 SELECT extract(month FROM '2020-08-05 09:30:08'); --

Kettle巧用公式轻松实现数据抽取

家住魔仙堡 提交于 2020-08-14 22:49:05
1.前言 数据清洗过程需要对数据进行转换拼装计算,Kettle提供“公式步骤”供用户使用,下面将介绍如何在kettle中使用公式。 2.公式步骤帮助手册介绍 打开kettle工具, 在左侧找到“公式步骤”(核心对象->脚本->公式),主要包含“新字段”(计算后产生的新字段)、“替换值”(用计算获得的值替换原有的值,“替换值”优先级高于“新字段”),计算公式,点击公式输入框会弹出帮助手册,此处重点介绍公式基本使用方法。 (1)基本计算介绍(Basic computation) 点击左上角小三角形,自动展开,右侧框内会有描述和示例。在上面的编辑框内输入公式,下面会同步进行校验,如果输入正确,则下方编辑框内不存在任何提示。 下面这里是几个简单示例,字段需要用[]括起来,如果存在多运算符采用()决定先后运算顺序。 (2)比较计算介绍(Comparisons) 比较两个值的大小,返回为boolean值 (3)日期/时间计算介绍(Date/Time) 日期函数比较多,这里介绍通用的四个函数,具体说明如下所示: (4)信息计算介绍(Information) 日期函数比较多,这里介绍通用的四个函数,具体说明如下所示: (5)逻辑计算介绍(Logical) 逻辑函数比较多,这里介绍通用的三个函数,具体说明如下所示: (6)数学计算介绍(Math) 数学函数比较多,这里介绍通用的四个函数

Spark 3.0 新特性 之 自适应查询与分区动态裁剪

我的梦境 提交于 2020-08-14 22:39:47
Spark憋了一年半的大招后,发布了3.0版本,新特性主要与Spark SQL和Python相关。这也恰恰说明了大数据方向的两大核心:BI与AI。下面是本次发布的主要特性,包括性能、API、生态升级、数据源、SQL兼容、监控和调试等方面的升级。 本次主要整理了性能方面的优化,包括了自适应查询与动态分区裁剪。 1 自适应查询 AQE,Adaptive Query Execution,说的简单点就是让Spark在运行中根据搜集到的信息灵活采取优化手段,提升性能。 说起这个可以先回想下Spark的发展历史,在1.x时代Spark通过RDD的编程形成DAG图,这个阶段可以说没啥优化完全是按照规则来执行;在2.x时代,引入了代价计算,Spark会通过提前进行代价计算,选择代价最小的查询计划(跟大部分的数据库类似,代价计算依赖于数据本身的统计,如数据量、文件大小、分区数等,由于Spark是存储与计算分离的模式,因此这些统计信息有时候会缺失或者不准确,那么得到的查询代价自然也就不准确了);在3.x时代,引入自适应查询,即在运行的过程中可以根据得到的缓存数据信息动态调整分区策略、join策略等。这样就保证了刚开始表的统计信息不准,可能查询计划不是最高效的,但是随着查询的执行,可以动态优化整个查询计划。 那么到底自适应都可以做什么呢? 1.1 动态分区合并 在Spark的经典优化策略里

Flink 1.11 SQL 十余项革新大揭秘,哪些演变在便捷你的使用体验?

不问归期 提交于 2020-08-14 12:19:30
简介: SQL 作为 Flink 中公认的核心模块之一,对推动 Flink 流批一体功能的完善至关重要。在 1.11 中,Flink SQL 也进行了大量的增强与完善,开发大功能 10 余项,不仅扩大了应用场景,还简化了流程,上手操作更简单。 作者 | 李劲松,Apache Flink Committer,阿里巴巴技术专家 7 月 6 日,Apache Flink 1.11 正式发布。从 3 月初进行功能规划到 7 月初正式发版,1.11 用将近 4 个月的时间重点优化了 Flink 的易用性问题,提升用户的生产使用体验。 SQL 作为 Flink 中公认的核心模块之一,对推动 Flink 流批一体功能的完善至关重要。在 1.11 中,Flink SQL 也进行了大量的增强与完善,开发大功能 10 余项,不仅扩大了应用场景,还简化了流程,上手操作更简单。 其中,值得注意的改动包括: 默认 Planner 已经切到 Blink planner 上。 引入了对 CDC(Change Data Capture,变动数据捕获)的支持,用户仅用几句简单的 SQL 即可对接 Debezium 和 Canal 的数据源。 离线数仓实时化,用户可方便地使用 SQL 将流式数据从 Kafka 写入 Hive 等。 Flink SQL 演变 随着流计算的发展,挑战不再仅限于数据量和计算量

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

[源码解析]Oozie来龙去脉之内部执行

微笑、不失礼 提交于 2020-08-14 03:20:30
[源码解析]Oozie来龙去脉之内部执行 目录 [源码解析]Oozie来龙去脉之内部执行 0x00 摘要 0x01 Oozie阶段 1.1 ActionStartXCommand 1.2 HiveActionExecutor 0x2 旧版本LauncherMapper 0x3 新版本Yarn Application Master 3. 1 YARN简介 3.2 ApplicationMaster 3.3 LauncherAM 0x4 Hive on Yarn 0x5 Tez计算框架 5.1 DAGAppMaster 5.2 与Resource Manager交互 0x6 Java on Yarn 0x7 Yarn job 执行结束 7.1 检查任务机制 7.2 回调机制 7.3 异步执行 7.3.1 CallableQueueService 7.3.3 PriorityDelayQueue 7.3.3 PollablePriorityDelayQueue 7.4 跳转下一个操作 0xFF 参考 0x00 摘要 Oozie由Cloudera公司贡献给Apache的基于工作流引擎的开源框架,是用于Hadoop平台的开源的工作流调度引擎,用来管理Hadoop作业,进行。本文是系列的第二篇,介绍Oozie的内部执行阶段。 前文 [源码解析]Oozie的来龙去脉 --- (1)提交任务阶段

真正让你明白Hive调优系列3:笛卡尔乘积,小表join大表,Mapjoin等问题

≡放荡痞女 提交于 2020-08-14 03:17:13
0.Hive中的优化分类 真正想要掌握Hive的优化,要熟悉相关的MapReduce,Yarn,hdfs底层源码,明晰Hive的底层执行流程。真正让你明白Hive调优系列,会征对下面分类逐一分析演示。 大类1:参数优化 文件输入前看是否需要map前合并小文件 控制map个数,根据实际需求确认每个map的数据处理量,split的参数等 Map输出是否需要启动压缩,减少网络传输,OOM处理等 控制redcue个数,控制每个reduce的吞吐量,OOM处理等 是否将common-join转换成map-join处理策略 文件输出是否需要启动小文件合并策略 其他相关参数的配置:如严格模式,JVM重用,列剪切等 大类2:开发中优化 数据倾斜,这个是Hive优化的重头戏。出现的原因是因为出现了数据的重新分发和分布,启动了redcue。Hive中数据倾斜分类:group by ,count(distinct)以及join产生的数据倾斜(当然一些窗口函数中用了partition by一会造成数据倾斜) j oin相关的优化 :分类大表join大表,小表join大表的优化 代码细节优化分类 : 比如去重用group by替代distinct ; 多表关联,先进行子查询后再进行关联 ;表关联时一定要在子查询里过滤掉NULL值,避免数据倾斜; 不要对一个表进行重复处理,多使用临时表