The demo project is used spring cloud stream binding framework to interact with AWS kinesis.
-
Build a kinesis stream and s3 bucket by cloudFormation.
-
Send protobuf into kinesis stream.
-
Consume protobuf from kinesis stream and then transform it into parquet file and put it on s3.
-
Download parquet file from s3 and read it.
When we set credential by AWS-CLI, then we don't need to write sensitive information
in application.yml. For example:
cloud:
aws:
credentials:
profile-name: default
#access-key: not necessary if you have set by AWS-CLI
#secret-key: not necessary if you have set by AWS-CLI
region:
static: ap-northeast-1
stack:
auto: false
- Build parent pom
Protobuf class will be generated when we builded pom every time.
<build>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
<configuration>
<protocExecutable>protoc</protocExecutable>
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
<clearOutputDirectory>false</clearOutputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- Run kinesis-consumer, kinesis-producer, parquet-reader application
- Parquet-mr doesn't work.
HADOOP_HOME and hadoop.home.dir are unset. Problems running Hadoop on Windows
AWS Configuration And Credential File Settings