[jira] [Commented] (HIVE-20348) Hive HCat does not create a proper 'client' on kerberos cluster without hive metastore
[ https://issues.apache.org/jira/browse/HIVE-20348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16581526#comment-16581526 ] Lefty Leverenz commented on HIVE-20348: --- [~osayankin], you named me as a reviewer on RB but I'm not qualified to review code. Perhaps someone else can handle it. https://reviews.apache.org/r/68275/ > Hive HCat does not create a proper 'client' on kerberos cluster without hive > metastore > -- > > Key: HIVE-20348 > URL: https://issues.apache.org/jira/browse/HIVE-20348 > Project: Hive > Issue Type: Bug >Reporter: Oleksiy Sayankin >Assignee: Oleksiy Sayankin >Priority: Major > Attachments: HIVE-20348.1.patch > > > *STEPS TO REPRODUCE:* > 1. Configure Hive to use embedded Metastore (do not specify > {{hive.metastore.uris}} in {{hive-site.xml}}); > 2. Create a database and a table in MySQL: > {code:java} > mysql -uroot -p123456 -e "CREATE DATABASE test;CREATE TABLE test.test (id > INT);INSERT INTO test.test VALUES (1),(2),(3)" > {code} > 3. Create a table in Hive: > {code:java} > hive -e "CREATE TABLE default.test (id INT)" > {code} > 4. Run Sqoop import command: > {code:java} > sqoop import --connect 'jdbc:mysql://localhost:3306/test' --username root > --password 123456 --table test --hcatalog-database "default" > --hcatalog-table "test" --verbose -m 1 > {code} > *ACTUAL RESULT:* > Sqoop import command fails with an exception: > {code:java} > 18/08/08 01:07:09 ERROR tool.ImportTool: Encountered IOException running > import job: org.apache.hive.hcatalog.common.HCatException : 2001 : Error > setting output information. Cause : java.lang.NullPointerException > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:220) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:70) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:361) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureImportOutputFormat(SqoopHCatUtilities.java:783) > at > org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:98) > at > org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259) > at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:689) > at > org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:498) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:606) > at org.apache.sqoop.Sqoop.run(Sqoop.java:143) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) > at org.apache.sqoop.Sqoop.main(Sqoop.java:236) > Caused by: java.lang.NullPointerException > at org.apache.hadoop.security.token.Token.decodeWritable(Token.java:256) > at > org.apache.hadoop.security.token.Token.decodeFromUrlString(Token.java:275) > at > org.apache.hive.hcatalog.common.HCatUtil.extractThriftToken(HCatUtil.java:351) > at > org.apache.hive.hcatalog.mapreduce.Security.handleSecurity(Security.java:139) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:214) > ... 15 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HIVE-20348) Hive HCat does not create a proper 'client' on kerberos cluster without hive metastore
[ https://issues.apache.org/jira/browse/HIVE-20348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574715#comment-16574715 ] Hive QA commented on HIVE-20348: Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12934931/HIVE-20348.1.patch {color:red}ERROR:{color} -1 due to no test(s) being added or modified. {color:red}ERROR:{color} -1 due to 1 failed/errored test(s), 14867 tests executed *Failed tests:* {noformat} TestMiniDruidCliDriver - did not produce a TEST-*.xml file (likely timed out) (batchId=193) [druidmini_dynamic_partition.q,druidmini_test_ts.q,druidmini_expressions.q,druidmini_test_alter.q,druidmini_test_insert.q] {noformat} Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/13121/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/13121/console Test logs: http://104.198.109.242/logs/PreCommit-HIVE-Build-13121/ Messages: {noformat} Executing org.apache.hive.ptest.execution.TestCheckPhase Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.YetusPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase Tests exited with: TestsFailedException: 1 tests failed {noformat} This message is automatically generated. ATTACHMENT ID: 12934931 - PreCommit-HIVE-Build > Hive HCat does not create a proper 'client' on kerberos cluster without hive > metastore > -- > > Key: HIVE-20348 > URL: https://issues.apache.org/jira/browse/HIVE-20348 > Project: Hive > Issue Type: Bug >Reporter: Oleksiy Sayankin >Assignee: Oleksiy Sayankin >Priority: Major > Attachments: HIVE-20348.1.patch > > > *STEPS TO REPRODUCE:* > 1. Configure Hive to use embedded Metastore (do not specify > {{hive.metastore.uris}} in {{hive-site.xml}}); > 2. Create a database and a table in MySQL: > {code:java} > mysql -uroot -p123456 -e "CREATE DATABASE test;CREATE TABLE test.test (id > INT);INSERT INTO test.test VALUES (1),(2),(3)" > {code} > 3. Create a table in Hive: > {code:java} > hive -e "CREATE TABLE default.test (id INT)" > {code} > 4. Run Sqoop import command: > {code:java} > sqoop import --connect 'jdbc:mysql://localhost:3306/test' --username root > --password 123456 --table test --hcatalog-database "default" > --hcatalog-table "test" --verbose -m 1 > {code} > *ACTUAL RESULT:* > Sqoop import command fails with an exception: > {code:java} > 18/08/08 01:07:09 ERROR tool.ImportTool: Encountered IOException running > import job: org.apache.hive.hcatalog.common.HCatException : 2001 : Error > setting output information. Cause : java.lang.NullPointerException > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:220) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:70) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:361) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureImportOutputFormat(SqoopHCatUtilities.java:783) > at > org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:98) > at > org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259) > at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:689) > at > org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:498) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:606) > at org.apache.sqoop.Sqoop.run(Sqoop.java:143) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) > at org.apache.sqoop.Sqoop.main(Sqoop.java:236) > Caused by: java.lang.NullPointerException > at org.apache.hadoop.security.token.Token.decodeWritable(Token.java:256) > at > org.apache.hadoop.security.token.Token.decodeFromUrlString(Token.java:275) > at > org.apache.hive.hcatalog.common.HCatUtil.extractThriftToken(HCatUtil.java:351) > at > org.apache.hive.hcatalog.mapreduce.Security.handleSecurity(Security.java:139) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:214) > ... 15 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HIVE-20348) Hive HCat does not create a proper 'client' on kerberos cluster without hive metastore
[ https://issues.apache.org/jira/browse/HIVE-20348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574677#comment-16574677 ] Hive QA commented on HIVE-20348: | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 8m 29s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 23s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{color} | {color:green} master passed {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 0m 37s{color} | {color:blue} hcatalog/core in master has 31 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 14s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 24s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 21s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 21s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 12s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 44s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 15s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 14s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 12m 31s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Optional Tests | asflicense javac javadoc findbugs checkstyle compile | | uname | Linux hiveptest-server-upstream 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux | | Build tool | maven | | Personality | /data/hiveptest/working/yetus_PreCommit-HIVE-Build-13121/dev-support/hive-personality.sh | | git revision | master / 873d31f | | Default Java | 1.8.0_111 | | findbugs | v3.0.0 | | modules | C: hcatalog/core U: hcatalog/core | | Console output | http://104.198.109.242/logs//PreCommit-HIVE-Build-13121/yetus.txt | | Powered by | Apache Yetushttp://yetus.apache.org | This message was automatically generated. > Hive HCat does not create a proper 'client' on kerberos cluster without hive > metastore > -- > > Key: HIVE-20348 > URL: https://issues.apache.org/jira/browse/HIVE-20348 > Project: Hive > Issue Type: Bug >Reporter: Oleksiy Sayankin >Assignee: Oleksiy Sayankin >Priority: Major > Attachments: HIVE-20348.1.patch > > > *STEPS TO REPRODUCE:* > 1. Configure Hive to use embedded Metastore (do not specify > {{hive.metastore.uris}} in {{hive-site.xml}}); > 2. Create a database and a table in MySQL: > {code:java} > mysql -uroot -p123456 -e "CREATE DATABASE test;CREATE TABLE test.test (id > INT);INSERT INTO test.test VALUES (1),(2),(3)" > {code} > 3. Create a table in Hive: > {code:java} > hive -e "CREATE TABLE default.test (id INT)" > {code} > 4. Run Sqoop import command: > {code:java} > sqoop import --connect 'jdbc:mysql://localhost:3306/test' --username root > --password 123456 --table test --hcatalog-database "default" > --hcatalog-table "test" --verbose -m 1 > {code} > *ACTUAL RESULT:* > Sqoop import command fails with an exception: > {code:java} > 18/08/08 01:07:09 ERROR tool.ImportTool: Encountered IOException running > import job: org.apache.hive.hcatalog.common.HCatException : 2001 : Error > setting output information. Cause : java.lang.NullPointerException > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:220) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:70) > at
[jira] [Commented] (HIVE-20348) Hive HCat does not create a proper "client" on kerberos cluster without hive metastore
[ https://issues.apache.org/jira/browse/HIVE-20348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574428#comment-16574428 ] Oleksiy Sayankin commented on HIVE-20348: - *ROOT-CAUSE* Class {{org.apache.hive.hcatalog.mapreduce.Security}} executes: {code} hiveToken = HCatUtil.extractThriftToken(client.getDelegationToken(ugi.getUserName(), ugi.getUserName()), tokenSignature); {code} So {{HCatUtil.extractThriftToken()}} expects delegation token not to be {{null}} here. Consider {{client.getDelegationToken()}}: {code} @Override public String getDelegationToken(String owner, String renewerKerberosPrincipalName) throws MetaException, TException { // This is expected to be a no-op, so we will return null when we use local metastore. if (localMetaStore) { return null; } return client.get_delegation_token(owner, renewerKerberosPrincipalName); } {code} We see that there is no delegation token when HMS is in local mode ({{getDelegationToken()}} returns {{null}}) and this causes NPE. *SOLUTION* Request for delegation token only if HMS not in local mode: {code} if (hiveToken == null && !client.isLocalMetaStore()) { {code} > Hive HCat does not create a proper "client" on kerberos cluster without hive > metastore > -- > > Key: HIVE-20348 > URL: https://issues.apache.org/jira/browse/HIVE-20348 > Project: Hive > Issue Type: Bug >Reporter: Oleksiy Sayankin >Assignee: Oleksiy Sayankin >Priority: Major > Attachments: HIVE-20348.1.patch > > > *STEPS TO REPRODUCE:* > 1. Configure Hive to use embedded Metastore (do not specify > {{hive.metastore.uris}} in {{hive-site.xml}}); > 2. Create a database and a table in MySQL: > {code:java} > mysql -uroot -p123456 -e "CREATE DATABASE test;CREATE TABLE test.test (id > INT);INSERT INTO test.test VALUES (1),(2),(3)" > {code} > 3. Create a table in Hive: > {code:java} > hive -e "CREATE TABLE default.test (id INT)" > {code} > 4. Run Sqoop import command: > {code:java} > sqoop import --connect 'jdbc:mysql://localhost:3306/test' --username root > --password 123456 --table test --hcatalog-database "default" > --hcatalog-table "test" --verbose -m 1 > {code} > *ACTUAL RESULT:* > Sqoop import command fails with an exception: > {code:java} > 18/08/08 01:07:09 ERROR tool.ImportTool: Encountered IOException running > import job: org.apache.hive.hcatalog.common.HCatException : 2001 : Error > setting output information. Cause : java.lang.NullPointerException > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:220) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:70) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:361) > at > org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureImportOutputFormat(SqoopHCatUtilities.java:783) > at > org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:98) > at > org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259) > at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:689) > at > org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:498) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:606) > at org.apache.sqoop.Sqoop.run(Sqoop.java:143) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) > at org.apache.sqoop.Sqoop.main(Sqoop.java:236) > Caused by: java.lang.NullPointerException > at org.apache.hadoop.security.token.Token.decodeWritable(Token.java:256) > at > org.apache.hadoop.security.token.Token.decodeFromUrlString(Token.java:275) > at > org.apache.hive.hcatalog.common.HCatUtil.extractThriftToken(HCatUtil.java:351) > at > org.apache.hive.hcatalog.mapreduce.Security.handleSecurity(Security.java:139) > at > org.apache.hive.hcatalog.mapreduce.HCatOutputFormat.setOutput(HCatOutputFormat.java:214) > ... 15 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)