[
https://issues.apache.org/jira/browse/HIVE-26213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jingxuan Fu reassigned HIVE-26213:
----------------------------------
> "hive.limit.pushdown.memory.usage" better not be equal to 1.0, otherwise it
> will raise an error
> -----------------------------------------------------------------------------------------------
>
> Key: HIVE-26213
> URL: https://issues.apache.org/jira/browse/HIVE-26213
> Project: Hive
> Issue Type: Bug
> Affects Versions: 3.1.2
> Environment: Hive 3.1.2
> os.name=Linux
> os.arch=amd64
> os.version=5.4.0-72-generic
> java.version=1.8.0_162
> java.vendor=Oracle Corporation
> Reporter: Jingxuan Fu
> Assignee: Jingxuan Fu
> Priority: Major
>
> In hive-default.xml.template
>
>
>
>
> {code:java}
> <property> <name>hive.limit.pushdown.memory.usage</name> <value>0.1</value>
> <description> Expects value between 0.0f and 1.0f. The fraction of available
> memory to be used for buffering rows in Reducesink operator for limit
> pushdown optimization. </description> </property>
> {code}
>
>
> Based on the description of hive-default.xml.template,
> hive.limit.pushdown.memory.usage expects a value between 0.0 and 1.0, setting
> hive.limit.pushdown.memory.usage to 1.0 means that it expects the available
> memory of all buffered lines for the limit pushdown optimization, and
> successfully start hiveserver2.
> Then, call the java api to write a program to establish a jdbc connection as
> a client to access hive, using JDBCDemo as an example.
>
> {code:java}
> import demo.utils.JDBCUtils; public class JDBCDemo{ public static void
> main(String[] args) throws Exception { JDBCUtils.init();
> JDBCUtils.createDatabase(); JDBCUtils.showDatabases();
> JDBCUtils.createTable(); JDBCUtils.showTables(); JDBCUtils.descTable();
> JDBCUtils.loadData(); JDBCUtils.selectData(); JDBCUtils.countData();
> JDBCUtils.dropDatabase(); JDBCUtils.dropTable(); JDBCUtils.destory(); } }
> {code}
> After running the client program, both the client and the hiveserver throw
> exceptions.
>
> {code:java}
> 2022-05-09 19:05:36: Starting HiveServer2 SLF4J: Class path contains multiple
> SLF4J bindings. SLF4J: Found binding in
> [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in
> [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
> explanation. SLF4J: Actual binding is of type
> [org.apache.logging.slf4j.Log4jLoggerFactory] Hive Session ID =
> 67a6db8d-f957-4d5d-ac18-28403adab7f3 Hive Session ID =
> f9f8772c-5765-4c3e-bcff-ca605c667be7 OK OK OK OK OK OK OK Loading data to
> table default.emp OK FAILED: SemanticException Invalid memory usage value 1.0
> for hive.limit.pushdown.memory.usage{code}
>
>
>
> {code:java}
> liky@ljq1:~/hive_jdbc_test$ ./startJDBC_0.sh SLF4J: Class path contains
> multiple SLF4J bindings. SLF4J: Found binding in
> [jar:file:/home/liky/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.17.1/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in
> [jar:file:/home/liky/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
> explanation. SLF4J: Actual binding is of type
> [org.apache.logging.slf4j.Log4jLoggerFactory] Running: drop database if
> exists hive_jdbc_test Running: create database hive_jdbc_test Running: show
> databases default hive_jdbc_test Running: drop table if exists emp Running:
> create table emp( empno int, ename string, job string, mgr int, hiredate
> string, sal double, comm double, deptno int ) row format delimited fields
> terminated by '\t' Running: show tables emp Running: desc emp empno int ename
> string job string mgr int hiredate string sal double comm double deptno int
> Running: load data local inpath '/home/liky/hiveJDBCTestData/data.txt'
> overwrite into table emp Running: select * from emp Exception in thread
> "main" org.apache.hive.service.cli.HiveSQLException: Error while compiling
> statement: FAILED: SemanticException Invalid memory usage value 1.0 for
> hive.limit.pushdown.memory.usage at
> org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:380) at
> org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:366) at
> org.apache.hive.jdbc.HiveStatement.runAsyncOnServer(HiveStatement.java:354)
> at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:293) at
> org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:509) at
> demo.utils.JDBCUtils.selectData(JDBCUtils.java:98) at
> demo.test.JDBCDemo.main(JDBCDemo.java:19){code}
>
>
> Setting hive.limit.pushdown.memory.usage to 0.0 has no exception.
> So, setting hive.limit.pushdown.memory.usage to 1.0 is not desirable,
> *hive-default.xml.template is not clear enough for the description of the
> boundary of the value, it is better to use the interval to indicate the value
> that is [0.0,1.0).*
--
This message was sent by Atlassian Jira
(v8.20.7#820007)