blob: b8d40202f55173933ff5d2cfed14ca511c4b35fb [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Test ability to wire together shell spouts/bolts
---
# topology definition
# name to be used when submitting
name: "hdfs-topology"
# Components
# Components are analagous to Spring beans. They are meant to be used as constructor,
# property(setter), and builder arguments.
#
# for the time being, components must be declared in the order they are referenced
components:
- id: "syncPolicy"
className: "org.apache.storm.hdfs.bolt.sync.CountSyncPolicy"
constructorArgs:
- 1000
- id: "rotationPolicy"
className: "org.apache.storm.hdfs.bolt.rotation.TimedRotationPolicy"
constructorArgs:
- 30
- SECONDS
- id: "fileNameFormat"
className: "org.apache.storm.hdfs.bolt.format.DefaultFileNameFormat"
configMethods:
- name: "withPath"
args: ["${hdfs.write.dir}"]
- name: "withExtension"
args: [".txt"]
- id: "recordFormat"
className: "org.apache.storm.hdfs.bolt.format.DelimitedRecordFormat"
configMethods:
- name: "withFieldDelimiter"
args: ["|"]
- id: "rotationAction"
className: "org.apache.storm.hdfs.common.rotation.MoveFileAction"
configMethods:
- name: "toDestination"
args: ["${hdfs.dest.dir}"]
# spout definitions
spouts:
- id: "spout-1"
className: "org.apache.storm.testing.TestWordSpout"
parallelism: 1
# ...
# bolt definitions
bolts:
- id: "bolt-1"
className: "org.apache.storm.hdfs.bolt.HdfsBolt"
configMethods:
- name: "withConfigKey"
args: ["hdfs.config"]
- name: "withFsUrl"
args: ["${hdfs.url}"]
- name: "withFileNameFormat"
args: [ref: "fileNameFormat"]
- name: "withRecordFormat"
args: [ref: "recordFormat"]
- name: "withRotationPolicy"
args: [ref: "rotationPolicy"]
- name: "withSyncPolicy"
args: [ref: "syncPolicy"]
- name: "addRotationAction"
args: [ref: "rotationAction"]
parallelism: 1
# ...
- id: "bolt-2"
className: "org.apache.storm.flux.wrappers.bolts.LogInfoBolt"
parallelism: 1
streams:
- name: "" # name isn't used (placeholder for logging, UI, etc.)
from: "spout-1"
to: "bolt-1"
grouping:
type: SHUFFLE
- name: "" # name isn't used (placeholder for logging, UI, etc.)
from: "spout-1"
to: "bolt-2"
grouping:
type: SHUFFLE