[ 
https://issues.apache.org/jira/browse/TEZ-4557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17848656#comment-17848656
 ] 

Raghav Aggarwal commented on TEZ-4557:
--------------------------------------

[~ayushtkn] , can you provide your inputs here?

I don't have hive4 cluster(with ranger) to test this but irrespective of that, 
I think the issue will come. My understanding is, hadoop depends on httpclient 
jar and it was shipping it with hadoop-common transitively but after exclusion 
this hadoop functionality is broken unless tez had direct dependency on 
httpclient, which is not the case.

Exclusion from tez would have made sense if there were 2 different version of 
httpclient (one coming transitively from hadoop and other from tez via direct 
dependency).

> Revert TEZ-4303, NoClassDefFoundError because of missing httpclient jar
> -----------------------------------------------------------------------
>
>                 Key: TEZ-4557
>                 URL: https://issues.apache.org/jira/browse/TEZ-4557
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Raghav Aggarwal
>            Assignee: Raghav Aggarwal
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When insert data into table located in encryption zone using Hive with tez 
> fails as the httpclient jar has been excluded from hadoop transitive 
> dependency. Same query passes with MR.
> Tez: 0.10.2,0.10.3
> Hadoop: 3.3.6
> Hive: 3.1.2
>  
> Steps to reproduce issue:
> 1. Create a encryption key using ranger keyadmin user.
> 2. hdfs crypto -createZone -keyName test_key -path /user/raghav/encrypt_zone
> 3. create table tbl(id int) location '/user/raghav/encrypt_zone';
> 4. insert into tbl values(1);
>  
> Stacktrace:
> {code:java}
> Caused by: java.lang.NoClassDefFoundError: 
> org/apache/http/client/utils/URIBuilder
>     at 
> org.apache.hadoop.crypto.key.kms.KMSClientProvider.createURL(KMSClientProvider.java:468)
>     at 
> org.apache.hadoop.crypto.key.kms.KMSClientProvider.decryptEncryptedKey(KMSClientProvider.java:823)
>     at 
> org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider$5.call(LoadBalancingKMSClientProvider.java:354)
>     at 
> org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider$5.call(LoadBalancingKMSClientProvider.java:350)
>     at 
> org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider.doOp(LoadBalancingKMSClientProvider.java:175)
>     at 
> org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider.decryptEncryptedKey(LoadBalancingKMSClientProvider.java:350)
>     at 
> org.apache.hadoop.crypto.key.KeyProviderCryptoExtension.decryptEncryptedKey(KeyProviderCryptoExtension.java:535)
>     at 
> org.apache.hadoop.hdfs.HdfsKMSUtil.decryptEncryptedDataEncryptionKey(HdfsKMSUtil.java:216)
>     at 
> org.apache.hadoop.hdfs.DFSClient.createWrappedOutputStream(DFSClient.java:1002)
>     at 
> org.apache.hadoop.hdfs.DFSClient.createWrappedOutputStream(DFSClient.java:983)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem.safelyCreateWrappedOutputStream(DistributedFileSystem.java:734)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem.access$300(DistributedFileSystem.java:149)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem$8.doCall(DistributedFileSystem.java:572)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem$8.doCall(DistributedFileSystem.java:566)
>     at 
> org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:580)
>     at 
> org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:507)
>     at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1233)
>     at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1109)
>     at 
> org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat.getHiveRecordWriter(HiveIgnoreKeyTextOutputFormat.java:81)
>     at 
> org.apache.hadoop.hive.ql.io.HiveFileFormatUtils.getRecordWriter(HiveFileFormatUtils.java:297)
>     at 
> org.apache.hadoop.hive.ql.io.HiveFileFormatUtils.getHiveRecordWriter(HiveFileFormatUtils.java:282)
>     at 
> org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketForFileIdx(FileSinkOperator.java:801)
>     at 
> org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:752)
>     at 
> org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:922)
>     at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:993)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:939)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:926)
>     at 
> org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95)
>     at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:993)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:939)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:926)
>     at 
> org.apache.hadoop.hive.ql.exec.UDTFOperator.forwardUDTFOutput(UDTFOperator.java:133)
>     at 
> org.apache.hadoop.hive.ql.udf.generic.UDTFCollector.collect(UDTFCollector.java:45)
>     at 
> org.apache.hadoop.hive.ql.udf.generic.GenericUDTF.forward(GenericUDTF.java:110)
>     at 
> org.apache.hadoop.hive.ql.udf.generic.GenericUDTFInline.process(GenericUDTFInline.java:64)
>     at 
> org.apache.hadoop.hive.ql.exec.UDTFOperator.process(UDTFOperator.java:116)
>     at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:993)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:939)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:926)
>     at 
> org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95)
>     at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:993)
>     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:939)
>     at 
> org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:125)
>     at 
> org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:154)
>     at 
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:556)
>     at 
> org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:92){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to