[ 
https://issues.apache.org/jira/browse/CARBONDATA-2956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kunal Kapoor resolved CARBONDATA-2956.
--------------------------------------
    Resolution: Fixed

> CarbonReader can't support use configuration to read S3 data
> ------------------------------------------------------------
>
>                 Key: CARBONDATA-2956
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-2956
>             Project: CarbonData
>          Issue Type: Bug
>          Components: other
>    Affects Versions: 1.5.0
>            Reporter: xubo245
>            Assignee: xubo245
>            Priority: Major
>             Fix For: 1.5.0
>
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Test code:
> {code:java}
> package org.apache.carbondata.examples.sdk;
> import org.apache.carbondata.common.logging.LogService;
> import org.apache.carbondata.common.logging.LogServiceFactory;
> import org.apache.carbondata.core.metadata.datatype.DataTypes;
> import org.apache.carbondata.core.scan.expression.ColumnExpression;
> import org.apache.carbondata.core.scan.expression.LiteralExpression;
> import 
> org.apache.carbondata.core.scan.expression.conditional.EqualToExpression;
> import org.apache.carbondata.sdk.file.*;
> import org.apache.hadoop.conf.Configuration;
> import static org.apache.hadoop.fs.s3a.Constants.ACCESS_KEY;
> import static org.apache.hadoop.fs.s3a.Constants.ENDPOINT;
> import static org.apache.hadoop.fs.s3a.Constants.SECRET_KEY;
> /**
>  * Example for testing CarbonWriter on S3
>  */
> public class SDKS3Example {
>     public static void main(String[] args) throws Exception {
>         LogService logger = 
> LogServiceFactory.getLogService(SDKS3Example.class.getName());
>         if (args == null || args.length < 3) {
>             logger.error("Usage: java CarbonS3Example: <access-key> 
> <secret-key>"
>                 + "<s3-endpoint> [table-path-on-s3] [rows]");
>             System.exit(0);
>         }
>         String path = "s3a://sdk/WriterOutput";
>         if (args.length > 3) {
>             path=args[3];
>         }
>         int num = 3;
>         if (args.length > 4) {
>             num = Integer.parseInt(args[4]);
>         }
>         Configuration conf = new Configuration();
>         conf.set(ACCESS_KEY,args[0]);
>         conf.set(SECRET_KEY,args[1]);
>         conf.set(ENDPOINT,args[2]);
> //        Field[] fields = new Field[2];
> //        fields[0] = new Field("name", DataTypes.STRING);
> //        fields[1] = new Field("age", DataTypes.INT);
> //        CarbonWriterBuilder builder = CarbonWriter.builder()
> //                .setAccessKey(args[0])
> //                .setSecretKey(args[1])
> //                .setEndPoint(args[2])
> //                .outputPath(path);
> //
> //        CarbonWriter writer = builder.buildWriterForCSVInput(new 
> Schema(fields), conf);
> //
> //        for (int i = 0; i < num; i++) {
> //            writer.write(new String[]{"robot" + (i % 10), 
> String.valueOf(i)});
> //        }
> //        writer.close();
>         // Read data
>         EqualToExpression equalToExpression = new EqualToExpression(
>             new ColumnExpression("name", DataTypes.STRING),
>             new LiteralExpression("robot1", DataTypes.STRING));
>         CarbonReader reader = CarbonReader
>             .builder(path, "_temp")
>             .projection(new String[]{"name", "age"})
>             .filter(equalToExpression)
>             .build(conf);
>         System.out.println("\nData:");
>         int i = 0;
>         while (i < 20 && reader.hasNext()) {
>             Object[] row = (Object[]) reader.readNextRow();
>             System.out.println(row[0] + " " + row[1]);
>             i++;
>         }
>         System.out.println("\nFinished");
>         reader.close();
>     }
> }
> {code}
> Exception:
> {code:java}
> log4j:WARN No appenders could be found for logger 
> (org.apache.hadoop.util.Shell).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more 
> info.
> Exception in thread "main" com.amazonaws.AmazonClientException: Unable to 
> load AWS credentials from any provider in the chain
>       at 
> com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:117)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3521)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1031)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:994)
>       at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:297)
>       at 
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2653)
>       at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
>       at 
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
>       at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
>       at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
>       at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
>       at 
> org.apache.carbondata.core.datastore.filesystem.AbstractDFSCarbonFile.<init>(AbstractDFSCarbonFile.java:74)
>       at 
> org.apache.carbondata.core.datastore.filesystem.AbstractDFSCarbonFile.<init>(AbstractDFSCarbonFile.java:66)
>       at 
> org.apache.carbondata.core.datastore.filesystem.HDFSCarbonFile.<init>(HDFSCarbonFile.java:41)
>       at 
> org.apache.carbondata.core.datastore.filesystem.S3CarbonFile.<init>(S3CarbonFile.java:41)
>       at 
> org.apache.carbondata.core.datastore.impl.DefaultFileTypeProvider.getCarbonFile(DefaultFileTypeProvider.java:53)
>       at 
> org.apache.carbondata.core.datastore.impl.FileFactory.getCarbonFile(FileFactory.java:99)
>       at 
> org.apache.carbondata.core.metadata.schema.table.CarbonTable.buildTable(CarbonTable.java:241)
>       at 
> org.apache.carbondata.sdk.file.CarbonReaderBuilder.build(CarbonReaderBuilder.java:191)
>       at 
> org.apache.carbondata.examples.sdk.SDKS3Example.main(SDKS3Example.java:91)
> Process finished with exit code 1
> {code}
> if configure like:
> {code:java}
>  CarbonReader reader = CarbonReader
>             .builder(path, "_temp")
>             .projection(new String[]{"name", "age"})
>             .filter(equalToExpression)
>             .setAccessKey(args[0])
>             .setSecretKey(args[1])
>             .setEndPoint(args[2])
>             .build(new Configuration(false));
> {code}
>    
> Exception2:
> {code:java}
> log4j:WARN No appenders could be found for logger 
> (org.apache.hadoop.util.Shell).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more 
> info.
> Exception in thread "main" com.amazonaws.AmazonClientException: Unable to 
> execute HTTP request: sdk.obs.cn-north-1.myhwclouds.com: nodename nor 
> servname provided, or not known
>       at 
> com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:454)
>       at 
> com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3528)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1031)
>       at 
> com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:994)
>       at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:297)
>       at 
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2653)
>       at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
>       at 
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
>       at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
>       at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
>       at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
>       at 
> org.apache.carbondata.core.datastore.filesystem.AbstractDFSCarbonFile.<init>(AbstractDFSCarbonFile.java:74)
>       at 
> org.apache.carbondata.core.datastore.filesystem.AbstractDFSCarbonFile.<init>(AbstractDFSCarbonFile.java:66)
>       at 
> org.apache.carbondata.core.datastore.filesystem.HDFSCarbonFile.<init>(HDFSCarbonFile.java:41)
>       at 
> org.apache.carbondata.core.datastore.filesystem.S3CarbonFile.<init>(S3CarbonFile.java:41)
>       at 
> org.apache.carbondata.core.datastore.impl.DefaultFileTypeProvider.getCarbonFile(DefaultFileTypeProvider.java:53)
>       at 
> org.apache.carbondata.core.datastore.impl.FileFactory.getCarbonFile(FileFactory.java:99)
>       at 
> org.apache.carbondata.core.metadata.schema.table.CarbonTable.buildTable(CarbonTable.java:241)
>       at 
> org.apache.carbondata.sdk.file.CarbonReaderBuilder.build(CarbonReaderBuilder.java:191)
>       at 
> org.apache.carbondata.examples.sdk.SDKS3Example.main(SDKS3Example.java:91)
> Caused by: java.net.UnknownHostException: sdk.obs.cn-north-1.myhwclouds.com: 
> nodename nor servname provided, or not known
>       at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
>       at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
>       at 
> java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
>       at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
>       at java.net.InetAddress.getAllByName(InetAddress.java:1192)
>       at java.net.InetAddress.getAllByName(InetAddress.java:1126)
>       at 
> org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
>       at 
> org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:278)
>       at 
> org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:162)
>       at 
> org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
>       at 
> org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:641)
>       at 
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
>       at 
> com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:384)
>       ... 20 more
> Process finished with exit code 1
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to