Skip to content

Commit f7c59bc

Browse files
authored
Merge pull request #80 from RADAR-base/release-1.1.2
Release 1.1.2
2 parents 98982ce + 473e545 commit f7c59bc

30 files changed

+102
-67
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ When upgrading to version 0.6.0 from version 0.5.x or earlier, please follow the
6161

6262
This package is available as docker image [`radarbase/radar-output-restructure`](https://hub.docker.com/r/radarbase/radar-output-restructure). The entrypoint of the image is the current application. So in all the commands listed in usage, replace `radar-output-restructure` with for example:
6363
```shell
64-
docker run --rm -t --network hadoop -v "$PWD/output:/output" radarbase/radar-output-restructure:1.1.1-hdfs -n hdfs-namenode -o /output /myTopic
64+
docker run --rm -t --network hadoop -v "$PWD/output:/output" radarbase/radar-output-restructure:1.1.2-hdfs -n hdfs-namenode -o /output /myTopic
6565
```
6666
if your docker cluster is running in the `hadoop` network and your output directory should be `./output`.
6767

@@ -171,7 +171,7 @@ This package requires at least Java JDK 8. Build the distribution with
171171
and install the package into `/usr/local` with for example
172172
```shell
173173
sudo mkdir -p /usr/local
174-
sudo tar -xzf build/distributions/radar-output-restructure-1.1.1.tar.gz -C /usr/local --strip-components=1
174+
sudo tar -xzf build/distributions/radar-output-restructure-1.1.2.tar.gz -C /usr/local --strip-components=1
175175
```
176176

177177
Now the `radar-output-restructure` command should be available.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
group 'org.radarbase'
12-
version '1.1.1'
12+
version '1.1.2'
1313
mainClassName = 'org.radarbase.output.Application'
1414

1515
sourceCompatibility = '1.8'

restructure.yml

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,49 @@ service:
77
# Source data resource
88
# @since: 0.7.0
99
source:
10-
type: s3 # hdfs or s3
10+
type: s3 # hdfs, azure or s3
1111
s3:
1212
endpoint: http://localhost:9000 # using AWS S3 endpoint is also possible.
1313
bucket: radar
1414
accessToken: minioadmin
1515
secretKey: minioadmin
16+
azure:
17+
endpoint: https://MyBlobStorageAccount.blob.core.windows.net
18+
# when using personal login
19+
#username: User
20+
#password: Password
21+
# when using shared access tokens
22+
#accountName: MyBlobStorageAccount
23+
#accountKey: MyLongToken
24+
# when using a specially made SAS token
25+
#sasToken: MyLongToken
26+
# if no credentials are supplied, this only works with a publicly writable blob storage
27+
container: MySourceContainer
1628
# only actually needed if source type is hdfs
1729
hdfs:
1830
nameNodes: [hdfs-namenode-1, hdfs-namenode-2]
1931

2032
# Target data resource
2133
# @since: 0.7.0
2234
target:
23-
type: s3 # s3 or local
35+
type: s3 # s3, azure or local
2436
s3:
2537
endpoint: http://localhost:9000
2638
bucket: out
2739
accessToken: minioadmin
2840
secretKey: minioadmin
41+
azure:
42+
endpoint: https://MyBlobStorageAccount.blob.core.windows.net
43+
# when using personal login
44+
#username: User
45+
#password: Password
46+
# when using shared access tokens
47+
#accountName: MyBlobStorageAccount
48+
#accountKey: MyLongToken
49+
# when using a specially made SAS token
50+
#sasToken: MyLongToken
51+
# if no credentials are supplied, this only works with a publicly writable blob storage
52+
container: MyTargetContainer
2953
# only actually needed if target type is local
3054
local:
3155
userId: 1000 # write as regular user, use -1 to use current user (default).
@@ -102,7 +126,7 @@ paths:
102126
# Output directory in target
103127
output: /output
104128
# Output path construction factory
105-
factory: org.radarbase.output.path.MonthlyObservationKeyPathFactory
129+
#factory: org.radarbase.output.path.MonthlyObservationKeyPathFactory
106130
# Additional properties
107131
# properties: {}
108132

src/integrationTest/java/org/radarbase/output/accounting/RedisRemoteLockManagerTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package org.radarbase.output.accounting
22

33
import org.hamcrest.MatcherAssert.assertThat
4-
import org.hamcrest.Matchers.*
4+
import org.hamcrest.Matchers.not
5+
import org.hamcrest.Matchers.nullValue
56
import org.junit.jupiter.api.AfterEach
67
import org.junit.jupiter.api.BeforeEach
78
import org.junit.jupiter.api.Test

src/main/java/org/radarbase/output/Application.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,29 @@ package org.radarbase.output
1919
import com.beust.jcommander.JCommander
2020
import com.beust.jcommander.ParameterException
2121
import org.radarbase.output.accounting.*
22+
import org.radarbase.output.cleaner.SourceDataCleaner
2223
import org.radarbase.output.compression.Compression
2324
import org.radarbase.output.config.CommandLineArgs
2425
import org.radarbase.output.config.RestructureConfig
2526
import org.radarbase.output.format.RecordConverterFactory
27+
import org.radarbase.output.path.RecordPathFactory
2628
import org.radarbase.output.source.SourceStorage
2729
import org.radarbase.output.source.SourceStorageFactory
28-
import org.radarbase.output.path.RecordPathFactory
2930
import org.radarbase.output.target.TargetStorage
3031
import org.radarbase.output.target.TargetStorageFactory
3132
import org.radarbase.output.util.ProgressBar.Companion.format
33+
import org.radarbase.output.util.TimeUtil.durationSince
3234
import org.radarbase.output.util.Timer
3335
import org.radarbase.output.worker.FileCacheStore
34-
import org.radarbase.output.cleaner.SourceDataCleaner
35-
import org.radarbase.output.util.TimeUtil.durationSince
3636
import org.radarbase.output.worker.RadarKafkaRestructure
3737
import org.slf4j.LoggerFactory
3838
import redis.clients.jedis.JedisPool
3939
import java.io.IOException
4040
import java.nio.file.Files
4141
import java.text.NumberFormat
42-
import java.time.Duration
4342
import java.time.Instant
4443
import java.time.LocalDateTime
4544
import java.time.format.DateTimeFormatter
46-
import java.time.temporal.Temporal
4745
import java.util.concurrent.Executors
4846
import java.util.concurrent.TimeUnit
4947
import kotlin.system.exitProcess

src/main/java/org/radarbase/output/FileStoreFactory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616

1717
package org.radarbase.output
1818

19-
import java.io.IOException
2019
import org.radarbase.output.accounting.Accountant
2120
import org.radarbase.output.accounting.OffsetPersistenceFactory
2221
import org.radarbase.output.accounting.RemoteLockManager
23-
import org.radarbase.output.config.RestructureConfig
2422
import org.radarbase.output.compression.Compression
23+
import org.radarbase.output.config.RestructureConfig
2524
import org.radarbase.output.format.RecordConverterFactory
26-
import org.radarbase.output.source.SourceStorage
2725
import org.radarbase.output.path.RecordPathFactory
26+
import org.radarbase.output.source.SourceStorage
2827
import org.radarbase.output.target.TargetStorage
2928
import org.radarbase.output.worker.FileCacheStore
3029
import redis.clients.jedis.JedisPool
30+
import java.io.IOException
3131

3232
/** Factory for all factory classes and settings. */
3333
interface FileStoreFactory {

src/main/java/org/radarbase/output/accounting/HdfsRemoteLockManager.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import org.apache.hadoop.fs.FSDataOutputStream
44
import org.apache.hadoop.fs.FileSystem
55
import org.apache.hadoop.fs.Path
66
import org.slf4j.LoggerFactory
7-
import java.lang.Exception
87

98
class HdfsRemoteLockManager(
109
private val fileSystem: FileSystem,

src/main/java/org/radarbase/output/accounting/OffsetRangeSet.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.radarbase.output.accounting
1818

19+
import com.fasterxml.jackson.annotation.JsonIgnore
1920
import org.radarbase.output.util.FunctionalValue
2021
import org.radarbase.output.util.LockedFunctionalValue
2122
import org.radarbase.output.util.ReadOnlyFunctionalValue
@@ -164,6 +165,7 @@ class OffsetRangeSet {
164165

165166

166167
data class Range(val from: Long, val to: Long?, val lastProcessed: Instant = Instant.now()) {
168+
@JsonIgnore
167169
val size: Long? = to?.let { it - from + 1 }
168170
fun ensureToOffset(): Range = if (to == null) copy(to = from) else this
169171
override fun toString() = "($from - $to, $lastProcessed)"

src/main/java/org/radarbase/output/accounting/OffsetRedisPersistence.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package org.radarbase.output.accounting
1818

1919
import com.fasterxml.jackson.databind.ObjectReader
2020
import com.fasterxml.jackson.databind.ObjectWriter
21+
import com.fasterxml.jackson.databind.SerializationFeature
2122
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
2223
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
2324
import org.radarbase.output.util.PostponedWriter
@@ -95,8 +96,10 @@ class OffsetRedisPersistence(
9596
val ranges: List<OffsetRangeSet.Range>)
9697

9798
private val logger = LoggerFactory.getLogger(OffsetRedisPersistence::class.java)
98-
private val mapper = jacksonObjectMapper()
99-
.registerModule(JavaTimeModule())
99+
private val mapper = jacksonObjectMapper().apply {
100+
registerModule(JavaTimeModule())
101+
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
102+
}
100103
val redisOffsetWriter: ObjectWriter = mapper.writerFor(RedisOffsetRangeSet::class.java)
101104
val redisOffsetReader: ObjectReader = mapper.readerFor(RedisOffsetRangeSet::class.java)
102105
}

src/main/java/org/radarbase/output/accounting/TopicPartition.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package org.radarbase.output.accounting
1818

19-
import java.util.Objects
19+
import java.util.*
2020

2121
@Suppress("EqualsOrHashCode")
2222
data class TopicPartition(val topic: String, val partition: Int) : Comparable<TopicPartition> {

0 commit comments

Comments
 (0)