Hive

Sqoop--源数据含有默认换行符导致的数据不正确

那年仲夏 提交于 2020-08-10 01:47:15
问题描述 使用sqoop导数导到hdfs中,使用Hive查询发现数据多了,并且有数据错位的现象。 原因 源数据中有’\n’换行符,导致被hive识别为换行符。所以出现了记录多并且数据错位的现象。 解决方法 使用sqoop命令时加入: –hive-drop-import-delims 例如: sqoop import \ --connect ${CONNECT} \ --username ${USER} \ --password " ${PASSWD} " \ --query " select ${impala_fields} from ${MYSQL_TABLE} where \ $CONDITIONS " \ --where '1=1' \ --fields-terminated-by '\001' \ --hive-drop-import-delims \ --target-dir ${HDFS_DIR} / ${HIVE_DB} .db/ ${HIVE_TABLE} /part_key = ${HOST} \ --delete-target-dir \ --outdir ${PROGRAM_HOME} /java \ --null-string '\\N' \ --null-non-string "\0" \ -m ${NUMMAPPERS} 来源: oschina 链接:

sqoop安装

↘锁芯ラ 提交于 2020-08-09 16:05:33
1、 下载并解压 下载地址:https://mirror.bit.edu.cn/apache/sqoop/1.4.7/ 上传安装包sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz到虚拟机中 解压sqoop安装包到指定目录,如: $ tar -zxf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 2、修改配置文件 Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。 cp sqoop-env-template.sh sqoop-env.sh 修改配置文件 vim /usr/local/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf/sqoop-env.sh export HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-2.7.7 export HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-2.7.7 export HIVE_HOME=/usr/local/hadoop/hive-2.3.7 3、拷贝JDBC驱动 链接:https://pan.baidu.com/s/1T_trw5X10a8ehraoVx12yg 提取码:gnfz mysql-connector-java-5.1.46

Kettle最新版本8.X详解

◇◆丶佛笑我妖孽 提交于 2020-08-09 15:55:51
该课程总共22讲,分为五个部分。第一部分是课程介绍,对该课程需要使用的工具和课程规划进行一个简单的介绍。第二部分主要介绍kettle工具的安装和相关概念的介绍,并通过一个kettle小案例带领大家入门。第三部分主要讲解kettle工具各种控件的使用。第四部分则讲解kettle工具的一些高阶应用功能。第五部分给大家讲解kettle的实战综合案例。每次课程都是通过案例进行讲解,并提供详细的教案文档。整个讲解深入浅出,通俗易懂。 第一章:kettle课程介绍 0、Kettle最新版本8.X课程整体介绍 第二章:kettle简单介绍和示例 1、Kettle安装及基本介绍 2、第一个Kettle小例子(oracle2oracle) 第三章:kettle简单案例分享 3、Kettle实现文本文件抽取及输出 4、Kettle实现Xml文件抽取及输出 5、Kettle实现Excel文件抽取及输出 6、Kettle实现Hadoop文件数据抽取及输出 7、Kettle实现Hive数据库抽取及输出 8、Kettle实现HBase数据库抽取及输出 9、Kettle实现调用WebService服务返回Json和xml数据 10、Kettle实现调用Restful服务返回Json和xml数据 第四章:kettle高阶应用讲解 11、Kettle参数、变量使用简介 12、Kettle排序、去重和分组 13

WeBank/Schedulis

瘦欲@ 提交于 2020-08-09 15:55:25
简介 Schedulis 是一个基于 LinkedIn 的开源项目 Azkaban 开发的工作流任务调度系统。该调度系统具备高性能,高可用(去中心化多调度中心和多执行器)和多租户资源隔离等金融级特性;现已被集成到数据应用开发门户 DataSphere Studio 。 Schedulis 支持常规的 Command Shell 和 Linkis(HadoopMR、 Hive、Spark、Sqoop、 Python)大数据任务;同时还支持特色的数据检查和工作流之间的依赖任务;支持完善的告警和工作流执行策略;提供多种类型的参数设置,动态全局变量和简单易用的 UI。 与 DataSphere Studio 和 Linkis 的对接 DataSphere Studio 可以将编辑好的工作流一键发布到 Schedulis 进行调度,而 Schedulis 也实现了 Linkis 插件,用于向 Linkis 提交任务,这样使得 Schedulis 与 DataSphere Studio 和 Linkis 能够无缝衔接,从而实现数据应用开发全流程的连贯顺滑用户体验。 与业界现有调度系统的比较 下面将 Schedulis 和业界现有的调度系统做了个对比,包括:Azkaban, Dolphin, Airflow 和 Xxl-job 模块 描述 Schedulis Azkaban Dolphin

关于HIVE增量同步的思考

不羁的心 提交于 2020-08-09 12:56:44
方案一、如果业务库没有删除操作,并且更新时间完整,使用更新时间做增量同步,sqoop只同步更新时间变化的数据,合并到ODS层表 方案二、如果业务库有删除操作,可以先解析数据库操作日志,存到hdfs,T+1同步数据后,对增删改做一次merge操作即可,可能需要代码实现。 来源: oschina 链接: https://my.oschina.net/u/4301845/blog/4332170

Spark Packages寻宝(一):简单易用的数据准备工具Optimus

夙愿已清 提交于 2020-08-09 12:45:55
作者: 李呈祥,花名司麟 ,阿里云智能EMR团队高级技术专家,Apache Hive Committer, Apache Flink Committer,目前主要专注于EMR产品中开源计算引擎的优化工作。 Spark社区在 Spark Packages 网站中索引了许多第三方库,这些第三方库由不同的开发者贡献,作为Spark生态圈的一部分,扩充了Spark的使用范围和使用场景,其中很多对于我们日常的使用可能有帮助,我们准备开启一个系列文章介绍Spark Packages中一些有意思的第三方库,作为系列的第一篇,本文主要介绍Optimus,一个基于PySpark的简单易用的数据准备工具。 本文的部分内容源自Optimus官网和相关介绍文章,原文链接参考文末引用部分。 在Spark(Pyspark)的支持下,Optimus允许用户使用自己的或一组 来源: oschina 链接: https://my.oschina.net/u/4324558/blog/4310289

【赵强老师】在Hive中使用Load语句加载数据

元气小坏坏 提交于 2020-08-09 12:25:13
一、Hive中load语句的语法说明 Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址。语法格式如下: LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename \ [PARTITION (partcol1=val1, partcol2=val2 ...)] LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename \ [PARTITION (partcol1=val1, partcol2=val2 ...)] \ [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later) 几点说明: 如果命令中带有LOCAL,说明从本地文件系统加载数据,文件路径可以是相对路径,也可以是绝对路径。在这种情况下,首先将文件从本地复制到hdfs相应的位置,然后移动到hive表格中,这个时候原始数据文件是存在于Hive表之下的路径下。 如果不包含LOCAL关键字,则移动HDFS文件到目标表中。 filepath 可以是一个相对路径,也可以是一个绝对路径。可以是一个文件,也可以是一个文件夹目录。如果是一个目录

Reducer Selection in Hive

吃可爱长大的小学妹 提交于 2020-08-09 08:54:09
问题 I have following record set to process like 1000, 1001, 1002 to 1999, 2000, 2001, 2002 to 2999, 3000, 3001, 3002 to 3999 And I want to process the following record set using HIVE in such a way so that reducer-1 will process data 1000 to 1999 and reducer-2 will process data 2000 to 2999 and reducer-3 will process data 3000 to 3999.Please help me to solve above problem. 回答1: Use DISTRIBUTE BY , mappers output is being grouped according to the distribute by clause to be transferred to reducers

某二手交易平台大数据平台从 0 到 1 演进与实践

≡放荡痞女 提交于 2020-08-09 08:53:52
在人口流量红利不再,获客成本越来越高的时代,精益创业、MVP 的概念已经深入人心,精细化运营也是大势所趋,而这些背后本质上都依赖数据化运营,那如何根据现有业务,快速从 0 开始打造一个契合业务的数据产品呢?本文将以某二手交易平台业务为基础,讲述整个数据平台从 0 到 1 的演进与实践,希望对大家能有所启发。 1、背景 在某二手交易平台开始大数据平台建设之前,整个数据从需求提出到研发流程再到数据报表、数据产品,也是经历过一段非常混沌的时期,而且效率和质量往往很难得到保障,主要表现为以下几个方面: (1)可用性差 比如经常出现计算延迟、异常,数据指标也常常数据对不上,很多相似的指标不清楚具体差异在哪,即使同一个指标也可能不同的同学开发的而对不上。另外数据波动无感知,比如日志格式出错,结果第二天才发现有问题。 (2)维护成本高 成百上千的日志模块,不知从何维护,出了问题也不知道从哪里可以追溯到源头和负责人。 (3)业务快速迭代,精细化、数据化运营需求和研发资源之间的矛盾 2、目标与方案 (1)目标 数据可管理、可维护、可扩展、高可用 及时、准确、直观的呈现业务数据与问题 降低使用门槛,提升使用效率 (2)方案 数据仓库化 数据平台化 3、数据仓库建设 结构化 层次化 主题化 模型化:用户模型/事件模型 ETL ETL 是整个数据仓库的核心,正如业界流传的一句话:Garbage In,

记一个压缩格式的问题

寵の児 提交于 2020-08-09 05:46:09
问题描述 Hive ORC table常规小文件过多问题,于是用Spark写了一个Application来自动的Merge分区数据,思路很简单 大概就是 insert overwrite table partition (分区 XXX) select * from table where (分区 XXX) 当然已经把该dataframe repartition到想要的目标并发度,来控制最终分区下的文件个数 但是发现生成的文件个数虽然是对的,但是最后整个分区的Size竟然几乎翻倍。 排查过程以及结论 怀疑是Spark SQL没有压缩或者压缩格式不对 https://stackoverflow.com/questions/48759909/how-to-check-if-zlib-compression-is-enabled-in-hive-tables 用这个链接的方式自查一下 发现 hive 生成的文件默认是zlib 而spark生成的文件默认是snappy 这个导致了最终文件大小相差较大 来源: oschina 链接: https://my.oschina.net/u/4303818/blog/4287399