hive select count(*) 报错,帮忙看看 3C

select count(*) from db_hive.student;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
Query ID = root_20171012025616_0d673cbd-6c2b-421b-bffc-98e2c4d8d676
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=
In order to set a constant number of reducers:
set mapreduce.job.reduces=
Starting Job = job_1507801793754_0002, Tracking URL = http://192.168.163.130:8088/proxy/application_1507801793754_0002/
Kill Command = /usr/hadoop/bin/hadoop job -kill job_1507801793754_0002
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2017-10-12 02:56:29,615 Stage-1 map = 0%, reduce = 0%
2017-10-12 02:56:36,331 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.15 sec
2017-10-12 02:56:42,700 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 2.64 sec
MapReduce Total cumulative CPU time: 2 seconds 640 msec
java.io.IOException: java.lang.OutOfMemoryError: PermGen space
at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:338)
at org.apache.hadoop.mapred.ClientServiceDelegate.getTaskCompletionEvents(ClientServiceDelegate.java:390)
at org.apache.hadoop.mapred.YARNRunner.getTaskCompletionEvents(YARNRunner.java:583)
at org.apache.hadoop.mapreduce.Job$5.run(Job.java:680)
at org.apache.hadoop.mapreduce.Job$5.run(Job.java:677)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1692)
at org.apache.hadoop.mapreduce.Job.getTaskCompletionEvents(Job.java:677)
at org.apache.hadoop.mapred.JobClient$NetworkedJob.getTaskCompletionEvents(JobClient.java:349)
at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.computeReducerTimeStatsPerJob(HadoopJobExecHelper.java:612)
at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:570)
at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:424)
at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:151)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:199)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2182)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1838)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1525)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1236)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1226)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
at java.lang.Class.getMethod0(Class.java:2866)
at java.lang.Class.getMethod(Class.java:1676)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.getReturnProtoType(ProtobufRpcEngine.java:293)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:258)
at com.sun.proxy.$Proxy72.getTaskAttemptCompletionEvents(Unknown Source)
at org.apache.hadoop.mapreduce.v2.api.impl.pb.client.MRClientProtocolPBClientImpl.getTaskAttemptCompletionEvents(MRClientProtocolPBClientImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:324)
at org.apache.hadoop.mapred.ClientServiceDelegate.getTaskCompletionEvents(ClientServiceDelegate.java:390)
at org.apache.hadoop.mapred.YARNRunner.getTaskCompletionEvents(YARNRunner.java:583)
at org.apache.hadoop.mapreduce.Job$5.run(Job.java:680)
at org.apache.hadoop.mapreduce.Job$5.run(Job.java:677)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1692)
Ended Job = job_1507801793754_0002 with exception 'java.io.IOException(java.lang.OutOfMemoryError: PermGen space)'
FAILED: Hive Internal Error: java.lang.OutOfMemoryError(PermGen space)
java.lang.OutOfMemoryError: PermGen space

MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 2.64 sec HDFS Read: 7728 HDFS Write: 101 SUCCESS
Total MapReduce CPU Time Spent: 2 seconds 640 msec
AsyncLogger error handling event seq=105, value='[ERROR calling class org.apache.logging.log4j.core.async.RingBufferLogEvent.toString(): java.lang.NullPointerException]':
java.lang.OutOfMemoryError: PermGen space
Exception in thread "main" java.lang.OutOfMemoryError: PermGen space

0

2个回答

在hive中暂不支持select count(_*) from table这种写法, 可以改写成select count(1) from table ,效果一样

0

hive在版本0.6后已经加入了对count( * )支持的patch,很明显题主的语句并没有报编译的错误。
根据提供的信息:FAILED: Hive Internal Error: java.lang.OutOfMemoryError(PermGen space)
java.lang.OutOfMemoryError: PermGen space
应该是内存泄漏的问题。
可以从下面几点找一下问题:
1. 给每个进程JVM分配的内存大小是否过小
2. 是否在跑这个查询的同时,还有其他命令在执行
3. 是否这个表真的过大

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hive count表提交mapreduce任务报错。
今天使用hive时发现用select * 查询单表,查询正常。rn使用select 字段名 ,select count(*) ,及关联表查询时发生如下异常错误:rnCaused by: java.net.URISyntaxException: Illegal character in scheme name at index 0:      file:///service/cdh/hive/lib
时间不同步问题导致hive 只能select* 不能select count(*)select 某个字段 ,是因
时间不同步问题导致hive 只能select* 不能select count(*)select 某个字段 ,是因为select *不调用mr select单个字段或者count(*)调用mrrnrnrn时间不同步问题导致hive 只能select* 不能select count(*)select 某个字段 ,是因为select *不调用mr select单个字段或者count(*)调用mr
hive中执行了select count(1) from table 后,一直无反应
https://www.oschina.net/question/1386516_2148428
Hive中select * 没有数据,而select count(*)有数据解决方法
刚接触Hive,之前建表都是 external 表,这种表就是基于有外部.csv数据文件的,只要在建表时指明location,然后再将数据文件放到该路径就OK,今天建了一张普通表,发现这里面的数据不正常,我用select * from table_name没有数据,但是select count(*)明明有300行数据,从头检查到尾,发现我建普通表的时候,竟然加上了location! n我是这样写的(
hive报错
FAILED: SemanticException Unable to determine if hdfs://s201/user/hive/warehouse/emp is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://s201/user/hive/warehouse/emp, expected: hdfs://n...
Hive查询count(*)有数据,但是select * 没有数据
若发生将一个使用LZO压缩过的表数据导入一个没有被压缩过表内,nn类似于如下两个表:nn图一:LZO压缩nnnn图二未压缩nnn查询将出现这种状况,hdfs目录下明明有数据,count(*)有数据总量,但是select就是查询不出来,n具体原因:n表的结构是未压缩过的,但是数据是压缩过的,通过select(此处查询的方法跟表的结构有关系)查询压缩过的结果,肯定不会显示,nn具体解决办法:n使用se...
Hive分区表count(*)不起mapreduce的真相
问题背景: n在对Hive求count(*)时,发现有些表会启mapreduce计算、返回 结果,比较耗时,有的表1秒之内返回结果 n刚开始以为刚刚执行过一次count()后会对结果进行缓存,不用再去跑mapreduce,但经进一步实验发现大多数表每次执行count()操作都会跑mapreduce,于是猜测的结论不成立。 n后在必应查找原因,大部分的结果都指向了:‘hive从1.0开始采用Fetch
hive count(*) 获得0行数据
配置hive支持事务操作,在hive-site.xml里添加以配置:rnrn          hive.support.concurrencyrn          truern  rn  rn          hive.enforce.bucketingrn          truern  rn  rn          hive.exec.dynamic.partition.modern
hive统计parquet表报错
hue执行:nSELECT count(*) FROM tt_sales_order;nnn首先查看表源数据:nnparquet列式存储格式,所以优先统计某一列:nSELECT count(salesorder_id) FROM tt_sales_order;nnn
hive中count(*)、count(1)、count(某字段)的区别
最近看到某公司面试题有这个,顺便查了一下。count(*):所有行进行统计,包括NULL行count(1):所有行进行统计,包括NULL行count(column):对column中非Null进行统计我在集群找了一个表试了一下,结果差距不是很大,因为执行时间会受集群资源的影响,所以看下具体的执行步骤先看结果,count(*)执行时间26sselect count(*)nfrom ods.baseo...
问题解决:Hive中双count(distinct)过慢的问题
这里说的双count(distinct)是指类似下面的语句rnrnselect day,count(distinct session_id),count(distinct rnuser_id) from log a group by day;rn如果要执行这样的语句,前提必须设置参数:set hive.groupby.skewindata=true;rnrnrnrn我们可以用“空间换时间”的思路解
Hive查询count(*)和count(1)显示为0,但表中存在数据
进入hive shell,输入set hive.compute.query.using.stats=false,然后运行下查询语句,发现正常。nn对应Ambari中Hive组件的配置参数:nnnn修改后可能对查询性能稍微有点影响...
hive中关于SUM(COUNT(1))的用法实践测试用例
SELECT * FROM temp.tmp_20181026 T;n+------------+-----------+-----------+----------+--+n| t.classes | t.name | t.course | t.score |n+------------+-----------+-----------+----------+--+n| a1 ...
Hive_查询优化 计算不同数据的总个数 count(distinct id)
这是一种 Hive 非常常见的问题, 下面让我们学习下 如何优化nnnn需求, 统计 明细表 里面有多少不同的明细 idnn数据规模 : 全量抽取的 MySQL 数据表,按天分区,每天存储所有的MySQL 记录。nn所选分区在 2亿 左右的数据量, 大小在 40 GB 规模。nnnnnn我们使用最常见的 SQL 进行统计nnnselect count(distinct detail_...
使用hive、java api两种方式实现wordcount功能、及个人感悟
使用hive、java api两种方式实现wordcount功能、及个人感悟
Hive之distinct多字段中出现null问题
在使用Hive以多个字段作为唯一性依据进行统计时,如果某个字段出现大量null值,会发生统计结果不准确问题,解决办法可以使用coalesce函数对空值进行替换。n假设原来是以及A,B两个字段去重后统计结果:nselect count(distinct A,B) from tableName where xxx;nn在实践中发现A,B都可能为空值,而且B值出现空值的概率非常大,在这种情况下,发现统计...
HIVE点滴:选择两个字段时distinct位置的影响
当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢?n先说结论:如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果;而如果将distinct放在后一个字段之前,则会报错。
关于hive中的count与group by的总结
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 nn注意:group by 是先排序后分组; nncount :.nn1、 并不是说group by和count()操作不能同时使用,只是说查出来的东西不一样,每个都有其应用的情况,如本例:最开始方法查出来的就...
hiveshell不能执行select语句问题
最近碰到一个很玄学的问题,就是我的CDH集群中部署的hive,在hue上可以执行hive查询语句,但是到hiveshell中不能执行!废话不多说直接看报错图吧rn rn 猛的一看以为缺啥jar包,但是想想不应该啊,我用cludera CDH部署的,然后带着这个问题去问度娘,度娘告诉我说不hive版本与hadoop版本不一致,我当时是崩溃的,不应该啊,我cdh、 rn部署不存在这个问题的。然后各种求教
hive表有数据,但count(*)返回0
解决办法:nnset hive.compute.query.using.stats=false ; 然后再跑一下。n
Hive-为什么没有启动MapReduce任务
Hive-fetch task 优化nhive.fetch.task.conversionnhive.fetch.task.aggrnhive.fetch.task.conversion.threshold
Hive基础学习
目录nn1.Hive基本概念nn2.Hive架构nn3.Hive安装部署nn4.Hive使用方式nn5.Hive建库建表与数据导入nn6.hive查询语法nn7.hive函数使用nn 8 综合查询案例nn1.Hive基本概念nn1.1 Hive简介nn1.1.1 什么是HivennHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。nn1...
HQL中select count(*)与fetch使用出错
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list
Hive 操作数据库语句总结
1、创建一个表,字段之间用 \t 分隔;nn        hive>create  table  student (id  int,  name  string) row  format  delimited  fields  terminated  by '\t' ;nnn2、将本地一个数据提交到hive里去nn        hive>load data local inpat
hql不能在distinct,group by结果集上使用count的问题,报语法错误
hql有如下两个限制:nnHQL(SQL)不支持select count(distinct x, y) from xx;nnHQL不支持select count(*) from (select distinct x, y from xx);nn即:HQL不支持from语句中的子查询。nnnnnPS:hql不能在distinct,group by结果集上使用count的问题 !
Hive针对distinct的优化(一)
hive针对count(distinct xxx)只产生一个reduce的优化。nnn0x00 造成的原因nnn 由于使用了distinct,导致在map端的combine无法合并重复数据;对于这种count()全聚合操作时,即使设定了reduce task个数,set mapred.reduce.tasks=100;hive也只会启动一个reducer。这就造成了所有map端传来的数据都在一个
hibernate中关于对count(*)的查询
今天做项目中,有个统计在线人数的列子,需要从数据库中拿到状态为1的用户数量,所以开始使用count(*)这个函数,但是初学hibernate,犯了好多错误,特此记录下来。public int showCount() {n String hql = "select count(*) from users where loginstatus=1";n int count =
Hive 处理count distinct 产生数据倾斜处理
Hive Multiple count distinct .
hive实验
利用Hive对某网站的用户数据进行分析。nn1.创建dblab数据库nn 命令:create database dblab;nn2. 在dblab数据库下创建bigdata_user表,该表中的各种属性如下:nnn 字段名 n n n 类型n n n idn n n intn n n uidn n n stringn ...
hive常见语法错误分组聚合
一、hive常见语法错误rn rnrn                               图 1.1rn当我们在用hive进行数据表的操作时 我们会用得到group by函数那么如图1.1所示假如按照 name 和 month 进行分组rnSELECTrn tl.name ,tl.monthrn,max(tl.amount) ASmonth_amountrn,sum(tr.amount)
select count(*) 查询结果 赋值到一个long类型变量中
List db = 。。。。。。rnlong nn = ((java.math.BigDecimal)db.get(0)).longValue();rnrn注意强制转换为java.math.BigDecimal,如果转成Integet或者String都不行
hive中调用函数一直处于卡顿状态
    博主遇到过调用函数count等时sql一直卡顿,不调用mr,一直处于job创建的状态,后来经博主多次测试发现,该问题出现在yarn上面。job创建完成后无法调用mapreduce,挨个主机检查,nodemanager正常,但未找到resourcemanager,所以,对该集群进行yarn重启,重启完毕后resourcemanager恢复,hive可以正常调用函数,可以正常调用mapredu...
HIVE点滴:group by和distinct语句的执行顺序
同一条语句之中,如果同时有group by和distinct语句,是先group by后distinct,还是先distinct后group by呢?n先说结论:先group by后distinct。
hive使用count等聚合函数忘记起别名怎么办?
举个例子,如果你建了个表,里面使用到了聚合函数,但是忘记起别名了该怎么办?ncreate table table_b asnselect id,count(1) from table_angroup by id;n这个时候,出现的列名为 id和 _c2,但是_c2又没办法直接使用,重新起名又比较比较费时,怎么办呢?n1.以前比较傻,都是重新建个新表然后在重新导入,ncreate table if ...
mysql查询count(*)时注意的问题
select COUNT(*) from spu_goods where category_id=333 and ext1='no'nn结果为:nncount(*)n 0n 但是,在加上group by 之后,如:nnselect COUNT(*) from spu_goods where category_id=333 and ext1='no' group by shop_idnn结果为:...
查询数量 简单分析count(1) count(*)以及count(column)的区别
count(*) count(1) 是表示整个结果集有多少条记录不论是否为空rnrn1就是一个固定值,查询有多少符合条件的行数,*一般代指,所以一般查询时会再翻译一下,但总的来说差别不太大rncount(column) 是表示结果集中有多少个column字段不为空的记录rnrn一般查询时,count(1)比count(*)快;rn但 主键作为count的参数时,count(主键)比count(1)
分组函数
分组函数是对表中一组记录进行操作,每组值返回一个结果,即首先要对表记录进行分组,然后再进对表记录进行分组,然后在进行操作汇总,每组返回一个结果,分组是可能是整个表分为一个组,也可能根据条件分成多组。分组函数常用到的函数:MINMAXSUMAVGCOUNT使用分组函数:SELECT [column,] group_function(column)FROM TABLEWHERE [condition]...
使用嵌套子查询优化hive的SQL
[Author]: kwu nn使用子查询优化hive的SQL
SQL Cookbook 系列 - 高级查找
给结果集分页n 跳过表中n行n 在外联接中使用or逻辑n 确定哪些行是彼此互换的n 选择前n个记录n 找到包含最大值最小值的记录n 存取“未来”行n 轮换行值n 给结果分等级n 抑制重复n nn1.给结果集分页nndb2/oracle/sqlserver:nnselect sal from (nnselect row_number() over(order by sal) as rn,salnnf...
执行hive时 mapreduce报错
hive> select count(*) from testkkk; rnTotal jobs = 1rnLaunching Job 1 out of 1rnNumber of reduce tasks determined at compile...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据hive学习 hive大数据教程