impala+hdfs+csv格式文件
[创建目录]
hdfs dfs -mkdir -p /user/hdfs/sample_data/csv/device
hdfs dfs -mkdir -p /user/hdfs/sample_data/csv/metrics
[赋予权限]
sudo -u hdfs hadoop fs -chown -R impala:supergroup /user/hdfs/sample_data
[删除目录]
hdfs dfs -rm -r /user/hdfs/sample_data/csv
[上传文件]
hdfs dfs -put -f device.csv /user/hdfs/sample_data/csv/device
hdfs dfs -put -f metrics.csv /user/hdfs/sample_data/csv/metrics
[查看文件]
hdfs dfs -ls /user/hdfs/sample_data/csv/device
[impala建表]
DROP TABLE IF EXISTS device;
CREATE EXTERNAL TABLE device
(
deviceId STRING,
deviceName STRING,
orgId INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/hdfs/sample_data/csv/device';
DROP TABLE IF EXISTS metrics;
CREATE EXTERNAL TABLE metrics
(
deviceId STRING,
reading INT,
time STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/hdfs/sample_data/csv/metrics';
[查询数据]
select
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`),
sum(T_3C75F1.`reading`),
count(1)
from (select device.deviceId,reading,metrics.time as time from device,metrics where device.deviceId=metrics.deviceId) as `T_3C75F1`
group by
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`);
耗时:device表1000条,metrics表1亿条(3.7GB)执行上面的查询语句,耗时平均180秒,
[刷新数据]
refresh device;
refresh metrics;
[问题]
1、执行查询时抛异常:
Memory limit exceeded: The memory limit is set too low to initialize spilling operator (id=2). The minimum required memory to spill this operator is 136.00 MB.
Error occurred on backend cdh4:22000 by fragment 5140dddc4be44c9e:5cccbfe200000004
Memory left in process limit: 384.00 KB
Process: Limit=256.00 MB Total=255.62 MB Peak=264.16 MB
RequestPool=root.root: Total=162.28 MB Peak=162.42 MB
Query(5140dddc4be44c9e:5cccbfe200000000): Total=162.28 MB Peak=162.42 MB
Fragment 5140dddc4be44c9e:5cccbfe200000006: Total=2.30 MB Peak=2.74 MB
AGGREGATION_NODE (id=6): Total=2.28 MB Peak=2.28 MB
Exprs: Total=4.00 KB Peak=4.00 KB
EXCHANGE_NODE (id=5): Total=0 Peak=0
DataStreamRecvr: Total=0 Peak=0
DataStreamSender (dst_id=7): Total=3.12 KB Peak=3.12 KB
CodeGen: Total=2.22 KB Peak=451.50 KB
Block Manager: Limit=156.00 MB Total=104.50 MB Peak=104.50 MB
Fragment 5140dddc4be44c9e:5cccbfe200000004: Total=132.81 MB Peak=132.95 MB
Runtime Filter Bank: Total=1.00 MB Peak=1.00 MB
AGGREGATION_NODE (id=3): Total=1.29 MB Peak=1.29 MB
Exprs: Total=8.00 KB Peak=8.00 KB
HASH_JOIN_NODE (id=2): Total=113.12 MB Peak=113.12 MB
Hash Join Builder (join_node_id=2): Total=113.02 MB Peak=113.02 MB
HDFS_SCAN_NODE (id=0): Total=0 Peak=0
EXCHANGE_NODE (id=4): Total=0 Peak=0
DataStreamRecvr: Total=17.37 MB Peak=28.05 MB
DataStreamSender (dst_id=5): Total=6.23 KB Peak=6.23 KB
CodeGen: Total=14.88 KB Peak=2.08 MB
Fragment 5140dddc4be44c9e:5cccbfe200000001: Total=27.18 MB Peak=43.25 MB
HDFS_SCAN_NODE (id=1): Total=27.13 MB Peak=43.20 MB
DataStreamSender (dst_id=4): Total=6.91 KB Peak=6.91 KB
CodeGen: Total=1.38 KB Peak=178.00 KB
RequestPool=root.hue: Total=0 Peak=1.76 MB
RequestPool=root.default: Total=0 Peak=7.40 MB
Untracked Memory: Total=93.34 MB
解决方案:csv文件的体积比较大,同样是1亿条数据,csv文件需要3.7G,而parquet只有261M。如果要是用csv文件,需要调整impala的参数mem_limit,应大于数据文件的大小。
impala+hdfs+csv格式文件的更多相关文章
- impala+hdfs+parquet格式文件
[创建目录]hdfs dfs -mkdir -p /user/hdfs/sample_data/parquet [赋予权限]sudo -u hdfs hadoop fs -chown -R impal ...
- 导出CSV格式文件,用Excel打开乱码的解决办法
导出CSV格式文件,用Excel打开乱码的解决办法 1.治标不治本的办法 将导出CSV数据文件用记事本打开,然后另存为"ANSI"编码格式,再用Excel打开,乱码解决. 但是,这 ...
- Python数据写入csv格式文件
(只是传递,基础知识也是根基) Python读取数据,并存入Excel打开的CSV格式文件内! 这里需要用到bs4,csv,codecs,os模块. 废话不多说,直接写代码!该重要的内容都已经注释了, ...
- java导出csv格式文件
导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; import java.io.File; import java.io.FileIn ...
- python3 库pandas写入csv格式文件出现中文乱码问题解决方法
python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...
- 使用Spark读写CSV格式文件(转)
原文链接:使用Spark读写CSV格式文件 CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号.在本文中的CSV格 ...
- mysql导入csv格式文件
今天测试导入csv格式文件,虽然简单但是如果不注意还是会出现错误,而且mysql在某些方面做的确实对新手不是很友好,记录一下:创建一个csv格式文件:[mysql@xxx1 ycrdb]$ more ...
- MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.
MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option s ...
- 如何将EDI报文转换为CSV格式文件?
如果您对EDI项目实施有一定的了解,想必您一定知道,在正式开始EDI项目实施之前,都会有EDI顾问与您接洽,沟通EDI项目需求.其中,会包含EDI通信双方使用哪种传输协议,传输的报文是符合什么标准的, ...
随机推荐
- [CF 276C]Little Girl and Maximum Sum[差分数列]
题意: 给出n项的数列A[ ], q个询问, 询问 [ l, r ] 之间项的和. 求A的全排列中该和的最大值. 思路: 记录所有询问, 利用差分数列qd[ ], 标记第 i 项被询问的次数( 每次区 ...
- 使用ant运行testng的testng.xml并且使用testng-results.xsl美化结果
先看build.xml <?xml version="1.0" encoding="UTF-8"?> <project basedir=&qu ...
- com.android.support冲突的解决办法
All com.android.support libraries must use the exact same version specification (mixing versions can ...
- taro 创建 Tabbar
1.代码 src/app.js import '@tarojs/async-await' import Taro, { Component } from '@tarojs/taro' import H ...
- activeMq发送消息流程
1,发送消息入口 Message message = messageBean.getMessageCreator().createMessage(session); producer.send(mes ...
- 制作可以 SSH 登录的 Docker 镜像
Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作. 执行这个命令就把源地址改为阿里的: curl https://git.oschina.net/feedao/Docker_shell ...
- pip换国内源
pip换国内源 1.国内常用源 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu. ...
- LaTeX 在编译时出现 File ended while scanning use of \@writefile错误
LaTeX -在修改论文过程中,重新编译时.出现了File ended while scanning use of \@writefile错误,如以下所示: 问题出现的原因: 因为aux文件没有完整输 ...
- javascript解析器(引擎)
The JavaScript interpreter in a browser is implemented as a single thread. javascript 引擎在浏览器中作为单线程实现 ...
- crc32 根据字符串获取校验值
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text; n ...