You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by -张衡 <27...@qq.com> on 2019/05/28 14:27:46 UTC
I have a problem when using PostgreSQL as a jdbc datasource, errors are encountered when build cube during step NO.1. Sqoop To Flat Hive Table.
I have established a database(first) in postgresql, and a table(t_bike) in the database. The table name and field name are all lowercase. By default, they are under the schema of public. I also modified the configuration of the data source in kylin.properties and created $KYLIN_HOEM/conf/datasource/postgresql.xml. The configuration is as follows pictures;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This is a error I have encountered:
19/05/28 21:03:21 INFO manager.SqlManager: Executing SQL statement: SELECT "T_BIKE"."ID" AS "T_BIKE_ID", "T_BIKE"."STATUS" AS "T_BIKE_STATUS"
FROM "PUBLIC"."T_BIKE" AS "T_BIKE"
WHERE 1 = 1 AND (1 = 0)
19/05/28 21:03:21 ERROR manager.SqlManager: Error executing statement: org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
Position: 80
org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
-------------------------------------------------------------------------------------------------------------------------------------------------------
The fellow is the logs of errors;
java.io.IOException: OS command error exit with return code: 1, error message: Warning: /root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/apps/hadoop-2.8.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/apps/hbase-1.2.1/lib/slf4j-log4j12-1.7.5.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.slf4j.impl.Log4jLoggerFactory]
19/05/28 21:03:20 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
19/05/28 21:03:20 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
19/05/28 21:03:20 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
19/05/28 21:03:20 INFO manager.SqlManager: Using default fetchSize of 1000
19/05/28 21:03:20 INFO tool.CodeGenTool: Beginning code generation
19/05/28 21:03:21 INFO manager.SqlManager: Executing SQL statement: SELECT "T_BIKE"."ID" AS "T_BIKE_ID", "T_BIKE"."STATUS" AS "T_BIKE_STATUS"
FROM "PUBLIC"."T_BIKE" AS "T_BIKE"
WHERE 1 = 1 AND (1 = 0)
19/05/28 21:03:21 ERROR manager.SqlManager: Error executing statement: org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
Position: 80
org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
Position: 80
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:143)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:106)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:777)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:786)
at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:289)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:260)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForQuery(SqlManager.java:253)
at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:336)
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1872)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1671)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:501)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
19/05/28 21:03:21 ERROR tool.ImportTool: Import failed: java.io.IOException: No columns to generate for ClassWriter
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1677)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:501)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
The command is:
/root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/bin/sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true -Dmapreduce.job.queuename=default --connect "jdbc:postgresql://kylin-master:5432/first" --driver org.postgresql.Driver --username postgres --password postgres --query "SELECT \"T_BIKE\".\"ID\" AS \"T_BIKE_ID\", \"T_BIKE\".\"STATUS\" AS \"T_BIKE_STATUS\"
FROM \"PUBLIC\".\"T_BIKE\" AS \"T_BIKE\"
WHERE 1 = 1 AND \$CONDITIONS" --target-dir hdfs://kylin-master:9000/kylin/kylin_metadata/kylin-3b69c678-a4e5-f553-ffd6-d6e2e4dd4f48/kylin_intermediate_project6_test1_bb974a70_4e15_8bdc_e9ad_d6d970027e7a --split-by \"T_BIKE\".\"ID\" --boundary-query "SELECT MIN(\"T_BIKE\".\"ID\"), MAX(\"T_BIKE\".\"ID\")
FROM \"public\".\"T_BIKE\" AS \"T_BIKE\"" --null-string '' --fields-terminated-by '|' --num-mappers 4
at org.apache.kylin.common.util.CliCommandExecutor.execute(CliCommandExecutor.java:96)
at org.apache.kylin.source.jdbc.sqoop.SqoopCmdStep.sqoopFlatHiveTable(SqoopCmdStep.java:59)
at org.apache.kylin.source.jdbc.sqoop.SqoopCmdStep.doWork(SqoopCmdStep.java:70)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:166)
at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:71)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:166)
at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:114)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
-------------------------------------------------------------------------------------------------------------------------------------------------------
finally,In the process of modification, I also found that when deleting default.xml file in libkylin-job-2.6.1.jar, the program will report an error.
I don’t know whether kylin read $KYLIN_HOEM/conf/datasource/postgresql.xml?
In the use of PostgreSQL as a data source, some dialect adaptation problems encountered, I hope experts can give an answer, thank you very much!
Re: I have a problem when using PostgreSQL as a jdbc datasource, errors are encountered when build cube during step NO.1. Sqoop To Flat Hive Table.
Posted by Khalil Mejdi <kh...@gmail.com>.
Hi there,
This happened to me once, I think because it’s sensitive to uppercase.
Cordialement
Khalil,
Manager at ISTIC-Devspace
> On May 28, 2019, at 3:27 PM, -张衡 <27...@qq.com> wrote:
>
> I have established a database(first) in postgresql, and a table(t_bike) in the database. The table name and field name are all lowercase. By default, they are under the schema of public. I also modified the configuration of the data source in kylin.properties and created $KYLIN_HOEM/conf/datasource/postgresql.xml. The configuration is as follows pictures;
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> This is a error I have encountered:
>
> 19/05/28 21:03:21 INFO manager.SqlManager: Executing SQL statement: SELECT "T_BIKE"."ID" AS "T_BIKE_ID", "T_BIKE"."STATUS" AS "T_BIKE_STATUS"
>
> FROM "PUBLIC"."T_BIKE" AS "T_BIKE"
>
> WHERE 1 = 1 AND (1 = 0)
>
> 19/05/28 21:03:21 ERROR manager.SqlManager: Error executing statement: org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
>
> Position: 80
>
> org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
>
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
> The fellow is the logs of errors;
>
> java.io.IOException: OS command error exit with return code: 1, error message: Warning: /root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog does not exist! HCatalog jobs will fail.
>
> Please set $HCAT_HOME to the root of your HCatalog installation.
>
> Warning: /root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/../accumulo does not exist! Accumulo imports will fail.
>
> Please set $ACCUMULO_HOME to the root of your Accumulo installation.
>
> SLF4J: Class path contains multiple SLF4J bindings.
>
> SLF4J: Found binding in [jar:file:/root/apps/hadoop-2.8.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>
> SLF4J: Found binding in [jar:file:/root/apps/hbase-1.2.1/lib/slf4j-log4j12-1.7.5.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.slf4j.impl.Log4jLoggerFactory]
>
> 19/05/28 21:03:20 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
>
> 19/05/28 21:03:20 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
>
> 19/05/28 21:03:20 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
>
> 19/05/28 21:03:20 INFO manager.SqlManager: Using default fetchSize of 1000
>
> 19/05/28 21:03:20 INFO tool.CodeGenTool: Beginning code generation
>
> 19/05/28 21:03:21 INFO manager.SqlManager: Executing SQL statement: SELECT "T_BIKE"."ID" AS "T_BIKE_ID", "T_BIKE"."STATUS" AS "T_BIKE_STATUS"
>
> FROM "PUBLIC"."T_BIKE" AS "T_BIKE"
>
> WHERE 1 = 1 AND (1 = 0)
>
> 19/05/28 21:03:21 ERROR manager.SqlManager: Error executing statement: org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
>
> Position: 80
>
> org.postgresql.util.PSQLException: ERROR: relation "PUBLIC.T_BIKE" does not exist
>
> Position: 80
>
> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
>
> at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
>
> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
>
> at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
>
> at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
>
> at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:143)
>
> at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:106)
>
> at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:777)
>
> at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:786)
>
> at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:289)
>
> at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:260)
>
> at org.apache.sqoop.manager.SqlManager.getColumnTypesForQuery(SqlManager.java:253)
>
> at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:336)
>
> at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1872)
>
> at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1671)
>
> at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)
>
> at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:501)
>
> at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
>
> at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
>
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
>
> at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
>
> at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
>
> 19/05/28 21:03:21 ERROR tool.ImportTool: Import failed: java.io.IOException: No columns to generate for ClassWriter
>
> at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1677)
>
> at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)
>
> at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:501)
>
> at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
>
> at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
>
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
>
> at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
>
> at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
>
>
>
> The command is:
>
> /root/newapps/sqoop-1.4.7.bin__hadoop-2.6.0/bin/sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true -Dmapreduce.job.queuename=default --connect "jdbc:postgresql://kylin-master:5432/first" --driver org.postgresql.Driver --username postgres --password postgres --query "SELECT \"T_BIKE\".\"ID\" AS \"T_BIKE_ID\", \"T_BIKE\".\"STATUS\" AS \"T_BIKE_STATUS\"
>
> FROM \"PUBLIC\".\"T_BIKE\" AS \"T_BIKE\"
>
> WHERE 1 = 1 AND \$CONDITIONS" --target-dir hdfs://kylin-master:9000/kylin/kylin_metadata/kylin-3b69c678-a4e5-f553-ffd6-d6e2e4dd4f48/kylin_intermediate_project6_test1_bb974a70_4e15_8bdc_e9ad_d6d970027e7a --split-by \"T_BIKE\".\"ID\" --boundary-query "SELECT MIN(\"T_BIKE\".\"ID\"), MAX(\"T_BIKE\".\"ID\")
>
> FROM \"public\".\"T_BIKE\" AS \"T_BIKE\"" --null-string '' --fields-terminated-by '|' --num-mappers 4
>
> at org.apache.kylin.common.util.CliCommandExecutor.execute(CliCommandExecutor.java:96)
>
> at org.apache.kylin.source.jdbc.sqoop.SqoopCmdStep.sqoopFlatHiveTable(SqoopCmdStep.java:59)
>
> at org.apache.kylin.source.jdbc.sqoop.SqoopCmdStep.doWork(SqoopCmdStep.java:70)
>
> at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:166)
>
> at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:71)
>
> at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:166)
>
> at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:114)
>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>
> at java.lang.Thread.run(Thread.java:748)
>
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
> finally,In the process of modification, I also found that when deleting default.xml file in libkylin-job-2.6.1.jar, the program will report an error.
>
> I don’t know whether kylin read $KYLIN_HOEM/conf/datasource/postgresql.xml?
> In the use of PostgreSQL as a data source, some dialect adaptation problems encountered, I hope experts can give an answer, thank you very much!
>
>
>
>
>
>
>
>
>
>
>
> <error.PNG>
> <kylin.properties>
> <kylinweb_serverconfig.PNG>
> <kylinweb_serverconfig.txt>
> <postgresql.xml>
> <t_bike.PNG>