Cannot connect to S3 Service with a null path

anybody has the problem?
deepStorageType=S3, and segments put to S3 success , but historical load failed with the exception…

the same problem link:****https://groups.google.com/forum/#!topic/druid-user/11qoebpkmXM

exception info:

2018-11-15T06:58:19,265 INFO [ZkCoordinator] io.druid.server.coordination.ZkCoordinator - New request[LOAD: ibu.hotel.order_2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z_2018-11-14T17:08:04.769Z] with zNode[/druid/loadQueue/10.5.111.107:8083/ibu.hotel.order_2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z_2018-11-14T17:08:04.769Z].

2018-11-15T06:58:19,265 INFO [ZkCoordinator] io.druid.server.coordination.SegmentLoadDropHandler - Loading segment ibu.hotel.order_2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z_2018-11-14T17:08:04.769Z

2018-11-15T06:58:19,265 INFO [ZkCoordinator] io.druid.storage.s3.S3DataSegmentPuller - Pulling index at path[s3://ibu_plt_druid_data/druid/segments/ibu.hotel.order/2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z/2018-11-14T17:08:04.769Z/0/index.zip] to outDir[var/druid/segment-cache/ibu.hotel.order/2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z/2018-11-14T17:08:04.769Z/0]

2018-11-15T06:58:19,337 ERROR [ZkCoordinator] io.druid.segment.loading.SegmentLoaderLocalCacheManager - Failed to load segment in current location /home/druid/imply/data/var/druid/segment-cache, try next location if any: {class=io.druid.segment.loading.SegmentLoaderLocalCacheManager, exceptionType=class io.druid.segment.loading.SegmentLoadingException, exceptionMessage=org.jets3t.service.S3ServiceException: Cannot connect to S3 Service with a null path, location=/home/druid/imply/data/var/druid/segment-cache}

io.druid.segment.loading.SegmentLoadingException: org.jets3t.service.S3ServiceException: Cannot connect to S3 Service with a null path

at io.druid.storage.s3.S3DataSegmentPuller.getSegmentFiles(S3DataSegmentPuller.java:234) ~[?:?]

at io.druid.storage.s3.S3LoadSpec.loadSegment(S3LoadSpec.java:60) ~[?:?]

at io.druid.segment.loading.SegmentLoaderLocalCacheManager.loadInLocation(SegmentLoaderLocalCacheManager.java:205) ~[druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.segment.loading.SegmentLoaderLocalCacheManager.loadInLocationWithStartMarker(SegmentLoaderLocalCacheManager.java:193) ~[druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.segment.loading.SegmentLoaderLocalCacheManager.loadSegmentWithRetry(SegmentLoaderLocalCacheManager.java:151) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.segment.loading.SegmentLoaderLocalCacheManager.getSegmentFiles(SegmentLoaderLocalCacheManager.java:133) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.segment.loading.SegmentLoaderLocalCacheManager.getSegment(SegmentLoaderLocalCacheManager.java:108) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.SegmentManager.getAdapter(SegmentManager.java:196) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.SegmentManager.loadSegment(SegmentManager.java:157) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.coordination.SegmentLoadDropHandler.loadSegment(SegmentLoadDropHandler.java:261) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.coordination.SegmentLoadDropHandler.addSegment(SegmentLoadDropHandler.java:307) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.coordination.SegmentChangeRequestLoad.go(SegmentChangeRequestLoad.java:47) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.server.coordination.ZkCoordinator$1.childEvent(ZkCoordinator.java:118) [druid-server-0.12.3-iap9.jar:0.12.3-iap9]

at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:520) [curator-recipes-4.0.0.jar:4.0.0]

at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:514) [curator-recipes-4.0.0.jar:4.0.0]

at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:93) [curator-framework-4.0.0.jar:4.0.0]

at org.apache.curator.shaded.com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:296) [curator-client-4.0.0.jar:?]

at org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:85) [curator-framework-4.0.0.jar:4.0.0]

at org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:512) [curator-recipes-4.0.0.jar:4.0.0]

at org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35) [curator-recipes-4.0.0.jar:4.0.0]

at org.apache.curator.framework.recipes.cache.PathChildrenCache$9.run(PathChildrenCache.java:771) [curator-recipes-4.0.0.jar:4.0.0]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_121]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_121]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_121]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_121]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_121]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_121]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]

Caused by: java.lang.RuntimeException: org.jets3t.service.S3ServiceException: Cannot connect to S3 Service with a null path

at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-16.0.1.jar:?]

at io.druid.storage.s3.S3DataSegmentPuller$2.openStream(S3DataSegmentPuller.java:198) ~[?:?]

at io.druid.java.util.common.CompressionUtils$1.call(CompressionUtils.java:170) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.CompressionUtils$1.call(CompressionUtils.java:166) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.RetryUtils.retry(RetryUtils.java:63) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.RetryUtils.retry(RetryUtils.java:81) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.CompressionUtils.unzip(CompressionUtils.java:164) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.storage.s3.S3DataSegmentPuller.getSegmentFiles(S3DataSegmentPuller.java:203) ~[?:?]

… 27 more

Caused by: org.jets3t.service.S3ServiceException: Cannot connect to S3 Service with a null path

at org.jets3t.service.impl.rest.httpclient.RestS3Service.setupConnection(RestS3Service.java:278) ~[jets3t-0.9.4.jar:0.9.4]

at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRestHead(RestStorageService.java:1043) ~[jets3t-0.9.4.jar:0.9.4]

at org.jets3t.service.impl.rest.httpclient.RestStorageService.getObjectImpl(RestStorageService.java:2264) ~[jets3t-0.9.4.jar:0.9.4]

at org.jets3t.service.impl.rest.httpclient.RestStorageService.getObjectDetailsImpl(RestStorageService.java:2193) ~[jets3t-0.9.4.jar:0.9.4]

at org.jets3t.service.StorageService.getObjectDetails(StorageService.java:1120) ~[jets3t-0.9.4.jar:0.9.4]

at org.jets3t.service.StorageService.getObjectDetails(StorageService.java:575) ~[jets3t-0.9.4.jar:0.9.4]

at io.druid.storage.s3.S3DataSegmentPuller.buildFileObject(S3DataSegmentPuller.java:67) ~[?:?]

at io.druid.storage.s3.S3DataSegmentPuller$2.openStream(S3DataSegmentPuller.java:190) ~[?:?]

at io.druid.java.util.common.CompressionUtils$1.call(CompressionUtils.java:170) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.CompressionUtils$1.call(CompressionUtils.java:166) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.RetryUtils.retry(RetryUtils.java:63) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.RetryUtils.retry(RetryUtils.java:81) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.java.util.common.CompressionUtils.unzip(CompressionUtils.java:164) ~[java-util-0.12.3-iap9.jar:0.12.3-iap9]

at io.druid.storage.s3.S3DataSegmentPuller.getSegmentFiles(S3DataSegmentPuller.java:203) ~[?:?]

… 27 more

2018-11-15T06:58:19,343 INFO [ZkCoordinator] io.druid.segment.loading.SegmentLoaderLocalCacheManager - Deleting directory[var/druid/segment-cache/ibu.hotel.order/2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z/2018-11-14T17:08:04.769Z/0]

2018-11-15T06:58:19,343 INFO [ZkCoordinator] io.druid.segment.loading.SegmentLoaderLocalCacheManager - Deleting directory[var/druid/segment-cache/ibu.hotel.order/2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z/2018-11-14T17:08:04.769Z]

2018-11-15T06:58:19,343 INFO [ZkCoordinator] io.druid.segment.loading.SegmentLoaderLocalCacheManager - Deleting directory[var/druid/segment-cache/ibu.hotel.order/2018-11-14T17:00:00.000Z_2018-11-14T18:00:00.000Z]

2018-11-15T06:58:19,344 INFO [ZkCoordinator] io.druid.segment.loading.SegmentLoaderLocalCacheManager - Deleting directory[var/druid/segment-cache/ibu.hotel.order]

My Config Info:

1: common.runtime.properties

Extensions

Problem Solved !

because of my s3 bucket name contains underscores(’_’)

in java.net.URI hostname can’t contain underscores, if contains , uri.getHost will return null ,so exceptionMessage “Cannot connect to S3 Service with a null path”

in druid when download segments from s3,the uri=s3://bucketName/key…(which use http rest api)

so when get bucketName(uri.getHost) ,return null

best wishes

在 2018年11月15日星期四 UTC+8下午3:25:40,Fenlon Xiong写道: