impala

Impala: How to query against multiple parquet files with different schemata

纵饮孤独 提交于 2019-12-06 01:41:07
in Spark 2.1 I often use something like df = spark.read.parquet(/path/to/my/files/*.parquet) to load a folder of parquet files even with different schemata. Then I perform some SQL queries against the dataframe using SparkSQL. Now I want to try Impala because I read the wiki article , which containing sentences like: Apache Impala is an open source massively parallel processing (MPP) SQL query engine for data stored in a computer cluster running Apache Hadoop [...]. Reads Hadoop file formats, including text, LZO, SequenceFile, Avro, RCFile, and Parquet. So it sounds like it could also fit to

Impala 架构探索与实战

跟風遠走 提交于 2019-12-05 18:31:12
要好好使用 Impala 就得好好梳理一下他得结构以及他存在得一些问题或者需要注意得地方。本篇博客主要想记录一下对 Impala 架构梳理以及使用上的 workaround。 Impala 简介 首先我们来了解一下在 Impala Guide 中 Impala 对自己的定位 Impala is an addition to tools available for querying big data. Impala does not replace the batch processing frameworks built on MapReduce such as Hive. Hive and other frameworks built on MapReduce are best suited for long running batch jobs, such as those involving batch processing of Extract, Transform, and Load (ETL) type jobs. Impala 认为自己是大数据查询工具的补充,对于长时间的 batch work 还是推荐使用基于 mapreduce 的方式来处理超大量数据。因为那更稳定可靠。 Impala 目前已经从 Apache 孵化项目中毕业,由 Cloudera 公司捐赠后

python 链接impala执行SQL

一笑奈何 提交于 2019-12-05 14:27:47
项目中用python来链接impala数据库最常见,一个简单的链接,获取结果。 #!/usr/bin/python # -*- coding:utf-8 -*- from impala.dbapi import connect import sys reload(sys) sys.setdefaultencoding("utf8") def impala_conn_exec(sql): conn = connect(host='192.168.x.xx', port=21050) cur = conn.cursor() cur.execute(sql) data_list=cur.fetchall() return data_list sql = "select pk_value,send from intf_trade_log t where pk_value='00033015017DC9F468FF0E9ABD8A582C'" now_num = impala_conn_exec(sql) print now_num 可以对结果做加工,取出来自己想要的格式。 来源: https://www.cnblogs.com/hello-wei/p/11927598.html

Kudu与Impala在字符串处理上与其他DB的迥异

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-05 09:33:02
Kudu的时间戳类型,在Impala建表上用的是timestamp, 有2个与众不同的地方。 1. 在Kudu里它存的时间戳是纳秒级别,所以你普通的时间戳存进去需要*1000。 2. 另外,Kudu的时间戳里面存的是,UTC时间。所以存进去的时间需要自己转换时区。 2. Impala在读取时间戳的时候,会根据配置项,使用系统的本地时区。 配置了如下: -use_local_tz_for_unix_timestamp_conversions 从而导致数据加载异常。建议有条件的同学,使用字符串替代时间戳。 来源: oschina 链接: https://my.oschina.net/dacoolbaby/blog/3137199

Kudu与Impala在字符串处理上与其他DB的迥异

两盒软妹~` 提交于 2019-12-05 09:31:41
Kudu的时间戳类型,在Impala建表上用的是timestamp, 有2个与众不同的地方。 1. 在Kudu里它存的时间戳是纳秒级别,所以你普通的时间戳存进去需要*1000。 2. 另外,Kudu的时间戳里面存的是,UTC时间。所以存进去的时间需要自己转换时区。 2. Impala在读取时间戳的时候,会根据配置项,使用系统的本地时区。 配置了如下: -use_local_tz_for_unix_timestamp_conversions 从而导致数据加载异常。建议有条件的同学,使用字符串替代时间戳。 来源: oschina 链接: https://my.oschina.net/dacoolbaby/blog/3137199

大数据时代快速SQL引擎-Impala

送分小仙女□ 提交于 2019-12-05 07:02:33
随着大数据时代的到来,Hadoop在过去几年以接近统治性的方式包揽的ETL和数据分析查询的工作,大家也无意间的想往大数据方向靠拢,即使每天数据也就几十、几百M也要放到Hadoop上作分析,只会适得其反,但是当面对真正的Big Data的时候,Hadoop就会暴露出它对于数据分析查询支持的弱点。 背景 甚至出现《MapReduce: 一个巨大的倒退》此类极端的吐槽,这也怪不得Hadoop,毕竟它的设计就是为了批处理,使用用MR的编程模型来实现SQL查询,性能肯定不如意。所以通常我也只是把Hive当做能够提供将SQL语义转换成MR任务的工具,尤其在做ETL的时候。 在Dremel论文发表之后,开源社区涌现出了一批基于MPP架构的SQL-on-Hadoop(HDFS)查询引擎,典型代表有Apache Impala、Presto、Apache Drill、Apache HAWQ等,看上去这些查询引擎提供的功能和实现方式也都大同小异,本文将基于Impala的使用和实现介绍日益发展的基于HDFS的MPP数据查询引擎。 Impala介绍 Apache Impala是由Cloudera开发并开源的一款基于HDFS/Hbase的MPP SQL引擎,它拥有和Hadoop一样的可扩展性、它提供了类SQL(类Hsql)语法,在多用户场景下也能拥有较高的响应速度和吞吐量。它是由Java和C++实现的

yum安装CDH5.5 hive、impala

喜夏-厌秋 提交于 2019-12-05 07:02:20
一、安装hive 组件安排如下: 172.16.57.75 bd-ops-test-75 mysql-server 172.16.57.77 bd-ops-test-77 Hiveserver2 HiveMetaStore 1.安装hive 在77上安装hive : # yum install hive hive-metastore hive-server2 hive-jdbc hive-hbase -y 在其他节点上可以安装客户端: # yum install hive hive-server2 hive-jdbc hive-hbase -y 2.安装mysql yum方式安装mysql: # yum install mysql mysql-devel mysql-server mysql-libs -y 启动数据库 : # 配置开启启动 # chkconfig mysqld on # service mysqld start 安装jdbc驱动: # yum install mysql-connector-java # ln -s /usr/share/java/mysql-connector-java.jar /usr/lib/hive/lib/mysql-connector-java.jar 设置mysql初始密码为bigdata: # mysqladmin -uroot

Dropping multiple partitions in Impala/Hive

╄→гoц情女王★ 提交于 2019-12-05 04:03:54
问题 1- I'm trying to delete multiple partitions at once, but struggling to do it with either Impala or Hive. I tried the following query, with and without ' : ALTER TABLE cz_prd_corrti_st.s1mme_transstats_info DROP IF EXISTS PARTITION (pr_load_time='20170701000317') PARTITION (pr_load_time='20170701000831') The error I'm getting is as follow: AnalysisException: Syntax error in line 3: PARTITION (pr_load_time='20170701000831') ^ Encountered: PARTITION Expected: CACHED, LOCATION, PURGE, SET,

python连接impala时,执行SQL报错expecting list of size 2 for struct args

孤街浪徒 提交于 2019-12-05 02:49:42
这个错误困扰了好久,因为集群有多台,暂放到其他几台机器上执行了SQL操作,一直在找解决方法,无意间得到真传,喜出望外啊 报错信息: Traceback (most recent call last): File "b.py", line 3, in <module> cur=conn.cursor() File "/usr/local/python2.7/lib/python2.7/site-packages/impyla-v0.14.0-py2.7.egg/impala/hiveserver2.py", line 125, in cursor session = self.service.open_session(user, configuration) File "/usr/local/python2.7/lib/python2.7/site-packages/impyla-v0.14.0-py2.7.egg/impala/hiveserver2.py", line 995, in open_session resp = self._rpc('OpenSession', req) File "/usr/local/python2.7/lib/python2.7/site-packages/impyla-v0.14.0-py2.7.egg/impala/hiveserver2

使用impala连接hive踩坑过程

半城伤御伤魂 提交于 2019-12-04 23:19:09
一、打包镜像出错   docker build总是出错,如果你用的是python3.7,可以考虑使用python3.6版本  并且注意:选择thrift-sasl==0.2.1,否则会出现: AttributeError: 'TSocket' object has no attribute 'isOpen' 二、auth_mechanism from impala.dbapi import connect host='your_hive_ip' username='your_username' password='your_password' port=21050 data_base_name='your_database_name' db_connection = connect(host=host, port=port, user=username, password=password, database=data_base_name, auth_mechanism='LDAP') # 首先不加auth_mechanism时,该行不会报错,但是下面的cursor会报错 # 加上auth_mechanism参数,会出现下面的错误 cursor = db_connection.cursor() thriftpy.transport.TTransportException: