Hive

Set parquet snappy output file size is hive?

北城以北 提交于 2021-01-27 08:02:33
问题 I'm trying to split parquet/snappy files created by hive INSERT OVERWRITE TABLE... on dfs.block.size boundary as impala issues a warning when a file in a partition is larger then block size. impala logs the following WARNINGS: Parquet files should not be split into multiple hdfs-blocks. file=hdfs://<SERVER>/<PATH>/<PARTITION>/000000_0 (1 of 7 similar) Code: CREATE TABLE <TABLE_NAME>(<FILEDS>) PARTITIONED BY ( year SMALLINT, month TINYINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\037'

Set parquet snappy output file size is hive?

若如初见. 提交于 2021-01-27 08:00:23
问题 I'm trying to split parquet/snappy files created by hive INSERT OVERWRITE TABLE... on dfs.block.size boundary as impala issues a warning when a file in a partition is larger then block size. impala logs the following WARNINGS: Parquet files should not be split into multiple hdfs-blocks. file=hdfs://<SERVER>/<PATH>/<PARTITION>/000000_0 (1 of 7 similar) Code: CREATE TABLE <TABLE_NAME>(<FILEDS>) PARTITIONED BY ( year SMALLINT, month TINYINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\037'

Error creating transactional connection factory during running Spark on Hive project in IDEA

一笑奈何 提交于 2021-01-27 04:51:34
问题 I am trying to setup a develop environment for a Spark Streaming project which requires write data into Hive. I have a cluster with 1 master, 2 slaves and 1 develop machine (coding in Intellij Idea 14). Within the spark shell, everything seems working fine and I am able to store data into default database in Hive via Spark 1.5 using DataFrame.write.insertInto("testtable") However when creating a scala project in IDEA and run it using same cluster with same setting, Error was thrown when

Error creating transactional connection factory during running Spark on Hive project in IDEA

…衆ロ難τιáo~ 提交于 2021-01-27 04:49:52
问题 I am trying to setup a develop environment for a Spark Streaming project which requires write data into Hive. I have a cluster with 1 master, 2 slaves and 1 develop machine (coding in Intellij Idea 14). Within the spark shell, everything seems working fine and I am able to store data into default database in Hive via Spark 1.5 using DataFrame.write.insertInto("testtable") However when creating a scala project in IDEA and run it using same cluster with same setting, Error was thrown when

postgresql也很强大,为何mysql成为主流?

痞子三分冷 提交于 2021-01-26 19:02:55
今天在知乎上看到一个问题的告赞回答,觉得说的挺好的,转发一下。 作者:大宽宽 链接:https://www.zhihu.com/question/31955622/answer/1625152059 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 mysql和postgres的早期完全是两个极端。mysql更像是个“基本上满足关系数据库语法的大号KV”,对关系型数据库的高级功能支持的很不好。我入行时接触的MySQL 5.1和MyISAM存储引擎,不支持ACID,但有如下几点在当时的互联网公司看来是非常合适: 互联网公司为了扩展,长期的经验是,仅仅把数据库当作是一个“存储”,而非存储+核心数据逻辑的计算节点。大量的计算都在业务服务器上进行,而业务服务器可以无限水平扩展,而无需担心有状态的数据迁移问题; 因为没有提供很多高级功能和数据一致性的保障,mysql对于简单的sql支持的反而更加直接,在速度上有很大的优势; 对于OLTP,完全不需要复杂的数据处理功能。简单的select ... from ... where id = xxx; insert into xxx;update xxx set xxx=xxx where id = xxxx是OLTP的主流功能。基于这些功能的ORM的出现大大的提高了生产效率;对于OLAP

Flink 1.11 新特性

亡梦爱人 提交于 2021-01-26 10:30:20
数仓架构 离线数仓 传统的离线数仓是由 Hive 加上 HDFS 的方案,Hive 数仓有着成熟和稳定的大数据分析能力,结合调度和上下游工具,构建一个完整的数据处理分析平台,流程如下: Flume 把数据导入 Hive 数仓 调度工具,调度 ETL 作业进行数据处理 在 Hive 数仓的表上,可以进行灵活的 Ad-hoc 查询 调度工具,调度聚合作业输出到BI层的数据库中 这个流程下的问题是: 导入过程不够灵活,这应该是一个灵活 SQL 流计算的过程 基于调度作业的级联计算,实时性太差 ETL 不能有流式的增量计算 实时数仓 针对离线数仓的特点,随着实时计算的流行,越来越多的公司引入实时数仓,实时数仓基于 Kafka + Flink streaming,定义全流程的流计算作业,有着秒级甚至毫秒的实时性。 但是,实时数仓的一个问题是历史数据只有 3-15 天,无法在其上做 Ad-hoc 的查询。如果搭建 Lambda 的离线+实时的架构,维护成本、计算存储成本、一致性保证、重复的开发会带来很大的负担。 Hive 实时化 Flink 1.11 为解决离线数仓的问题,给 Hive 数仓带来了实时化的能力,加强各环节的实时性的同时,又不会给架构造成太大的负担。 Hive streaming sink 实时数据导入 Hive 数仓,你是怎么做的?Flume、Spark Streaming

HikariCP 数据源配置使用

一曲冷凌霜 提交于 2021-01-26 10:28:14
使用场景 HikariCP 这个数据源号称是最快的数据源。 其实个人认为 性能肯定还是在SQL语句和数据库。而且 这个数据源功能其实并不多。 个人不喜欢使用 将其作为主数据源。 druid 数据源对比 但是 如果将 HikariCP 作为读取 读取第三方 数据库 也就是多数据源来 使用,个人认为是非常适合的。 多数据源配置 package com.door.remote.dataSource; import cn.hutool.cache.CacheUtil; import cn.hutool.cache.impl.TimedCache; import cn.hutool.db.Db; import com.door.common.constants.DbConst; import com.door.common.constants.biz.dr.DbSetType; import com.door.entity.dr.AcDrDbSource; import com.door.utils.db.CfsDatabase; import com.zaxxer.hikari.HikariDataSource; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import

20张图带你到HBase的世界遨游

[亡魂溺海] 提交于 2021-01-25 15:37:51
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨SoWhat1412 来源丨sowhat1412 1 HBase 浅析 1.1 HBase 是啥 HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库。它的理论原型是 Google 的 BigTable 论文。你可以认为 HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 HBase 的存储是基于 HDFS 的, HDFS 有着高容错性的特点,被设计用来部署在低廉的硬件上,基于 Hadoop 意味着 HBase 与生俱来的超强的 扩展性 和 吞吐量 。 HBase 采用的时 key/value 的存储方式,这意味着,即使随着数据量的增大,也几乎不会导致查询性能的下降。 HBase 又是一个 面向列 存储的数据库,当表的字段很多时,可以把其中几个字段独立出来放在一部分机器上,而另外几个字段放到另一部分机器上,充分分散了负载的压力。如此 复杂的存储结构和分布式的存储方式 ,带来的代价就是即便是 存储很少的数据,也不会很快 。 HBase 并不是足够快,只是数据量很大的时候慢的不明显。HBase主要用在以下两种情况: 单表数据量超过千万,而且并发量很大。 数据分析需求较弱,或者不需要那么实时灵活

Iterate though Columns of a Spark Dataframe and update specified values

我怕爱的太早我们不能终老 提交于 2021-01-24 21:23:37
问题 To iterate through columns of a Spark Dataframe created from Hive table and update all occurrences of desired column values, I tried the following code. import org.apache.spark.sql.{DataFrame} import org.apache.spark.sql.functions._ import org.apache.spark.sql.functions.udf val a: DataFrame = spark.sql(s"select * from default.table_a") val column_names: Array[String] = a.columns val required_columns: Array[String] = column_names.filter(name => name.endsWith("_date")) val func = udf((value:

Iterate though Columns of a Spark Dataframe and update specified values

淺唱寂寞╮ 提交于 2021-01-24 21:13:13
问题 To iterate through columns of a Spark Dataframe created from Hive table and update all occurrences of desired column values, I tried the following code. import org.apache.spark.sql.{DataFrame} import org.apache.spark.sql.functions._ import org.apache.spark.sql.functions.udf val a: DataFrame = spark.sql(s"select * from default.table_a") val column_names: Array[String] = a.columns val required_columns: Array[String] = column_names.filter(name => name.endsWith("_date")) val func = udf((value: