Impala查询 - HDFS缓存数据

HDFS缓存数据命令

  • 查看缓存池信息
hdfs cacheadmin -listPools -stats
  • 查看已缓存的数据信息
hdfs cacheadmin -listDirectives -stats
  • Impala表卸载缓存数据
alter table dw_crawler.bsl_zhongda_weibo_article_hive set uncached;
  • 创建缓存池
hdfs cacheadmin -addPool article_pool2 -owner impala
  • 显示表状态
show table stats bsl_zhongda_weibo_article_hive;
  • 将表加入缓存
alter table dw_crawler.bsl_zhongda_weibo_article_hive set cached in 'article_pool3';
  • 指定分区将表加入缓存
alter table dw_crawler.bsl_zhongda_weibo_article_hive partition(pt_created_date=20180101) set cached in 'article_pool3';

性能测试结果:

是否缓存

数据条数

数据量

处理时间(并发1)

处理时间(并发3)

处理时间(并发5)

-

116.5G

8s

20s

29s

-

116.5G

68.17

136

240

-

72.7G

8.38

20.6

30.3

-

72.7G

80s

165s

235s

 

异常处理

1.hdfs缓存池空间不足

 

[fwqzx002.zh:21000] ods_crawler> alter table  xxx partition (pt_created_date='201811') set cached in 'article_pool';
Query: alter table  xxx partition (pt_created_date='201811') set cached in 'article_pool'
ERROR: ImpalaRuntimeException: Caching path /user/hive/warehouse/xxxx/pt_created_date=201811 of size 24274436556 bytes at replication 1 would exceed pool article_pool's remaining capacity of 20450868109 bytes.at org.apache.hadoop.hdfs.server.namenode.CacheManager.checkLimit(CacheManager.java:405)at org.apache.hadoop.hdfs.server.namenode.CacheManager.addDirective(CacheManager.java:531)at org.apache.hadoop.hdfs.server.namenode.FSNDNCacheOp.addCacheDirective(FSNDNCacheOp.java:45)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.addCacheDirective(FSNamesystem.java:6782)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addCacheDirective(NameNodeRpcServer.java:1883)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addCacheDirective(ClientNamenodeProtocolServerSideTranslatorPB.java:1265)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:991)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:869)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:815)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1685)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2675)CAUSED BY: InvalidRequestException: Caching path /user/hive/warehouse/xxxx/pt_created_date=201811 of size 24274436556 bytes at replication 1 would exceed pool article_pool's remaining capacity of 20450868109 bytes.at org.apache.hadoop.hdfs.server.namenode.CacheManager.checkLimit(CacheManager.java:405)at org.apache.hadoop.hdfs.server.namenode.CacheManager.addDirective(CacheManager.java:531)at org.apache.hadoop.hdfs.server.namenode.FSNDNCacheOp.addCacheDirective(FSNDNCacheOp.java:45)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.addCacheDirective(FSNamesystem.java:6782)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addCacheDirective(NameNodeRpcServer.java:1883)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addCacheDirective(ClientNamenodeProtocolServerSideTranslatorPB.java:1265)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:991)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:869)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:815)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1685)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2675)CAUSED BY: RemoteException: Caching path /user/hive/warehouse/xxxx/pt_created_date=201811 of size 24274436556 bytes at replication 1 would exceed pool article_pool's remaining capacity of 20450868109 bytes.at org.apache.hadoop.hdfs.server.namenode.CacheManager.checkLimit(CacheManager.java:405)at org.apache.hadoop.hdfs.server.namenode.CacheManager.addDirective(CacheManager.java:531)at org.apache.hadoop.hdfs.server.namenode.FSNDNCacheOp.addCacheDirective(FSNDNCacheOp.java:45)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.addCacheDirective(FSNamesystem.java:6782)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addCacheDirective(NameNodeRpcServer.java:1883)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addCacheDirective(ClientNamenodeProtocolServerSideTranslatorPB.java:1265)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:991)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:869)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:815)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1685)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2675)

原因是创建时指定-limit 40000000000,即大小为40000000000 字节 ≈ 37.25GB,而我缓存的数据是18.21(已成功缓存分区)+22.61(缓存异常分区) 大于

之前创建缓存池命令

hdfs cacheadmin -addPool article_pool -owner impala -limit 40000000000

 解决方法:修改缓存池大小为自己可用值,默认为不限制

2.HDFS未全部缓存分区数据

明显看出数据Size 大小与BytesCached大小不相同

[fwqzx002.zh:21000] ods_crawler> show table stats tableName ;
Query: show table stats tableName 
+-----------------+-------+--------+---------+--------------+-------------------+---------+-------------------+-------------------------------------------------------------------------------------------------------------+
| pt_created_date | #Rows | #Files | Size    | Bytes Cached | Cache Replication | Format  | Incremental stats | Location                                                                                                    |
+-----------------+-------+--------+---------+--------------+-------------------+---------+-------------------+-------------------------------------------------------------------------------------------------------------+
| 201810          | -1    | 75     | 18.21GB | 5.36GB       | 1                 | PARQUET | false             | hdfs://nameservice1/user/hive/warehouse/tableName /pt_created_date=201810 |
| 201811          | -1    | 94     | 22.61GB | 55.35MB      | 1                 | PARQUET | false             | hdfs://nameservice1/user/hive/warehouse/tableName /pt_created_date=201811 |
| 201812          | -1    | 141    | 33.70GB | 33.22GB      | 1                 | PARQUET | false             | hdfs://nameservice1/user/hive/warehouse/tableName /pt_created_date=201812 |
| Total           | -1    | 310    | 74.51GB | 38.63GB      |                   |         |                   |                                                                                                             |
+-----------------+-------+--------+---------+--------------+-------------------+---------+-------------------+-------------------------------------------------------------------------------------------------------------+

 查看hdfs,发现需要缓存大小(BYTES_NEEDED)与实际缓存(BYTES_CACHED)的大小不相同

[hdfs@fwqzx002 root]$ hdfs cacheadmin -listDirectives -stats
Found 4 entriesID POOL            REPL EXPIRY  PATH                                                      BYTES_NEEDED  BYTES_CACHED  FILES_NEEDED  FILES_CACHED20 article_pool3      1 never   /user/hive/warehouse/tableName/pt_created_date=201812    36183104282   35666895768           141           13921 article_pool3      1 never   /user/hive/warehouse/tableName                                     0             0             0             022 article_pool3      1 never   /user/hive/warehouse/tableName/pt_created_date=201810    19549131891    5751122434            75            2223 article_pool3      1 never   /user/hive/warehouse/tableName/pt_created_date=201811    24274436556      58042919            94             1

实际操作中未报异常,猜测HDFS缓存达到上限,去查看下HDFS配置

查看HDFS “dfs.datanode.max.locked.memory”参数,发现为4G,集群中有10个DataNode节点,一共加起来最多缓存40G,上面实际缓存大小≈38G左右已基本达到上限(因为数据并非绝对的平均存储,可能部分节点数据超过4G就会达到缓存上限)

 

尝试修改“dfs.datanode.max.locked.memory”为50G(根据个人服务器适当调整),结果全部缓存成功

 

  • 注:show table stats bsl_zhongda_weibo_article_hive 与 hdfs cacheadmin -listDirectives -stats 区别在于,show table stats bsl_zhongda_weibo_article_hive 未完成Bytes Cached显示为-1 ;后者是计算分配的空间,即后者非实际缓存完。

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html怎样实现数据列表的下拉效果

目前支持浏览器&#xff1a;火狐、欧朋。。 谷歌不支持 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>hello</title> </head> <body> <form action"testform.php"method&q…

Java 调用 Impala - JDBC 调用Impala

java通过JDBC 调用Impala服务 Maven项目中 pom.xml引用<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.1</version></dependency><dependency><groupId>…

html中怎样实现在输入框中出现提示

<!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>hello</title> </head> <body> <form action"testform.php"method"get"> 请输入网址&#xff1a;<input ty…

HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递

目录 WorkFlow传静态参数 Schedule 传动态参数 oozie常用的系统常量 场景&#xff1a;HUE执行任务需要从外部传入参数&#xff0c;不能在脚本写死&#xff0c;比较麻烦 WorkFlow传静态参数 执行的脚本代码如下 CREATE EXTERNAL TABLE ${hivevar:database}.${hivevar:table…

函数调用过程简单分析

C/C函数调用过程分析 这里以一个简单的C语言代码为例&#xff0c;来分析函数调用过程 代码&#xff1a; 1 #include <stdio.h>2 3 int func(int param1 ,int param2,int param3)4 {5 int var1 param1;6 int var2 param2;7 int var3 param3;8 …

HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)

在启动Schedule 时需要设置开始时间&#xff0c;结束时间不用讨论&#xff0c;开始时间设置时尽量为当前时间 因为开始时间设置如果小于今天&#xff0c;比如设置为2019-01-01&#xff0c;定时器是每天1:29分启动&#xff0c;则会将日期之前的次数执行了&#xff0c;即执行开始…

Kafka(六)Kafka基本客户端命令操作

转载自&#xff1a;https://blog.51cto.com/littledevil/2147950 主题管理 创建主题 如果配置了auto.create.topics.enabletrue&#xff08;这也是默认值&#xff09;这样当生产者向一个没有创建的主题发送消息就会自动创建&#xff0c;其分区数量和副本数量也是有默认配置来…

linux平台C++开发基本知识

最近工作中&#xff0c;需要在linux上开发C程序。有了下面的问题。 1&#xff0c;linux平台C开发和win32 C开发有什么区别呢&#xff1f; 2&#xff0c;除了C语言&#xff0c;数据结构等必须的知识外&#xff0c;还需要些了解什么呢&#xff1f; 3&#xff0c;如何在linux平台开…

Impala 调用Hbase 报错 LeaseException

impala调用Hbase表数据操作时&#xff0c;提示 LeaseException 异常&#xff0c;主要原因是hbase数据过大&#xff0c;调用期间没有汇报心跳导致 WARNINGS: LeaseException: org.apache.hadoop.hbase.regionserver.LeaseException: lease -8355984789923245890 does not exist…

mitmproxy 中间人代理工具,抓包工具,linux抓包工具 mitmproxy 使用

mitmproxy是一个支持HTTP和HTTPS的抓包程序&#xff0c;类似Fiddler、Charles的功能&#xff0c;可以在linux以命令行形式的展示抓包信息 mitmdump&#xff1a;它是mitmproxy的命令行接口&#xff0c;利用它我们可以对接Python脚本&#xff0c;用Python实现监听后的处理。 mitm…

Ajax学习总结+案例

一、AJAX简介 1、Asynchronous JavaScript And XML指异步 JavaScript 及 XML 2、老技术新用法。是基于JavaScript、XML、HTML、CSS新用法 二、同步和异步&#xff08;理解&#xff09; 三、第一个异步请求案例&#xff08;熟悉编码步骤&#xff09; 四、XmlHttpRequest&…

Spark 运行内存不足Not enough space to cache rdd in memory,Container killed by YARN for exceeding memory

日志报错&#xff08;WARN类型最后执行成功可以忽略&#xff09;&#xff1a; 19/04/15 12:35:37 INFO memory.MemoryStore: Will not store rdd_2_5119/04/15 12:35:37 WARN memory.MemoryStore: Not enough space to cache rdd_2_51 in memory! (computed 1109.7 MB so far)…

Spark 某两个节点数据分析速度慢 - hbase数据删除(分裂) 元信息未删除导致 There is an overlap in the region chain.

基于Hbase2.0&#xff0c;Spark2.2 问题描述 执行Spark处理Hbase数据时&#xff0c;遇到某两个Excutor处理速度特别慢&#xff0c;如图 正常速度10多分钟 左右处理完成&#xff0c; 一个多小时有另外一个处理完成&#xff0c;还有一个在处理中。 分析原因 1.查看hbase数据分…

在MFC程序中增加控制台窗口

MFC程序中&#xff0c;如果想要输出调试信息&#xff0c;我们一般都是TRACE或者使用LOG文件&#xff0c;都不是很方便&#xff0c;第一个需要我们在调试状态下&#xff0c;第二个也要配置麻烦而且不直观。而使用Console来显示调试信息应该是更好的选择。下面介绍几种在MFC程序中…

mysql配置

MySQL5.6.11安装步骤&#xff08;Windows7 64位&#xff09; http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html1. 下载MySQL Community Server 5.6.21&#xff0c;注意选择系统类型&#xff08;32位/64位&#xff09; 2. 解压MySQL压缩包 将以下载的MySQL压缩包…

大数据技术讲解

HDFS的体系架构 整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持&#xff0c;并通过MR来实现对分布式并行任务处理的程序支持。 HDFS采用主从&#xff08;Master/Slave&#xff09;结构模型&#xff0c;一个HDFS集群是由一个NameNode和若干个DataNode组…

Hbase快照Snapshot 数据备份、恢复与迁移

场景 hbase数据迁移时我们需要统计迁移时的数据量&#xff0c;以确保迁移后的数据的完成&#xff0c;但是如果hbase表数据持续增加的话&#xff0c;迁移时无法统计出准确的数据量&#xff0c;此时我们使用快照的方式进行数据迁移&#xff0c;以确保迁移的数量可以和某一时间节点…

HUE 打开 WorkFlow异常 Operation category READ is not supported in state standby

异常&#xff1a;在hue上配置的一些定时任务突然停止执行。 1.打开页面HUE->WorkFlow 发现页面异常&#xff0c;无法进入WorkFlow&#xff0c;如下图 2.查看HUE日志 查看到WebHdfsException异常&#xff0c;访问HDFS文件浏览器报错&#xff0c; [26/Jun/2019 09:29:55 080…

Hbase Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory

新启动测试环境Hbase报错&#xff0c;报错日志如下 # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 31715688448 bytes for committing reserved memory. # An error report file with mo…

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置

日常工作中会涉及到各种资源分配等问题&#xff0c;跨部门&#xff0c;跨业务等等&#xff0c;这里介绍基于CDH版本的Yarn 公平调度&#xff08;实际使用DRF调度&#xff09; 不同时间配置不同资源参考&#xff08;计划模式&#xff09;&#xff1a;https://datamining.blog.cs…