@Sruthi: You'll have to implement your own factory. If you include the
mentioned dependency, e.g. if you use Gradle:

  runtimeOnly
"org.apache.flink:flink-statebackend-rocksdb_2.11:$flink_version"

Then create the factory:

  options.setStateBackend(o -> new RocksDBStateBackend("file://..."));

Alternatively, you can configure the Flink cluster to use RocksDB as the
default.

@Ismael: Good idea. I think we ought to make it easier to use a
different state backend. Since the setup is quite minimal. Tracked here:
https://jira.apache.org/jira/browse/BEAM-9855

-Max

On 28.04.20 13:38, Ismaël Mejía wrote:
> Max would it make sense to make the rocksdb runtime only at the runner
> level just to hint its use. I assume that most Flink users might want
> to have RocksDB as the default state backend?
> 
>     runtimeOnly
> "org.apache.flink:flink-statebackend-rocksdb_2.11:$flink_version"
> 
> 
> On Tue, Apr 28, 2020 at 1:14 PM Sruthi Sree Kumar
> <sruthisreekumar2...@gmail.com> wrote:
>>
>> Hello,
>>
>> I have looked the Beam code. The statebackend that we pass should be an 
>> instance of  FlinkStateBackendFactory . But there is no implementation for 
>> the Interface.
>> None of the FlinkStateBackend Implements this interface.
>>
>> So even when I try to pass the default MemoryStateBackend as an argument, it 
>> throws an error.
>>
>> But I could manage to specify the statebackend (filesystem) using the config 
>> file in the config directory specified by the env variable 
>> ENV_FLINK_CONF_DIR.
>>
>> Regards,
>> Sruthi
>>
>> On Tue, Apr 28, 2020 at 11:35 AM Maximilian Michels <m...@apache.org> wrote:
>>>
>>> Hi Sruthi,
>>>
>>> Not possible out-of-the-box at the moment. You'll have to add the
>>> RocksDB Flink dependency in flink_runner.gradle, e.g.:
>>>
>>>   compile "org.apache.flink:flink-statebackend-rocksdb_2.11:$flink_version"
>>>
>>> Also in the Flink config you have to set
>>>
>>>   state.backend: rocksdb
>>>
>>> Then you can run Nexmark against the cluster, e.g.
>>>
>>> ./gradlew :sdks:java:testing:nexmark:run \
>>>     -Pnexmark.runner=":runners:flink:1.10" \
>>>     -Pnexmark.args="
>>>         --runner=FlinkRunner
>>>         --flinkMaster=<flink_master:8081>
>>>         --streaming=true
>>>         --shutdownSourcesOnFinalWatermark=true
>>>         --query=12
>>>         --suite=SMOKE
>>>         --manageResources=false
>>>         --monitorJobs=true
>>>         --enforceEncodability=true
>>>         --enforceImmutability=true"
>>>
>>>
>>> Admittedly, this is a bit complicated. We could make that easier without
>>> much work.
>>>
>>> Cheers,
>>> Max
>>>
>>> On 28.04.20 10:26, Sruthi Sree Kumar wrote:
>>>> Hello,
>>>>
>>>> Is it possible to run the nexmark queries by specifying a
>>>> state-backed(Ex: RocksDB) ?
>>>>
>>>>
>>>> Regards,
>>>> Sruthi

Reply via email to