Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Install Samza
- apt-get install openjdk-7-jdk openjdk-7-jre git maven curl
- cd /opt
- git clone http://git-wip-us.apache.org/repos/asf/samza.git
- cd samza
- ./gradlew clean build
- Install YARN
- wget http://apache.rediris.es/hadoop/common/current/hadoop-2.6.0.tar.gz
- tar -xvf hadoop-2.6.0.tar.gz
- export HADOOP_YARN_HOME=$(pwd)
- mkdir conf
- export HADOOP_CONF_DIR=$HADOOP_YARN_HOME/conf
- cd hadoop-2.6.0
- cp ./etc/hadoop/yarn-site.xml conf
- vi conf/yarn-site.xml
- <configuration>
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>samza01</value>
- </property>
- </configuration>
- curl http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/resources/capacity-scheduler.xml?view=co > conf/capacity-scheduler.xml
- cd /tmp
- curl http://www.scala-lang.org/files/archive/scala-2.10.4.tgz > scala-2.10.4.tgz
- tar -xvf scala-2.10.4.tgz
- cp /tmp/scala-2.10.4/lib/scala-compiler.jar $HADOOP_YARN_HOME/share/hadoop/hdfs/lib
- cp /tmp/scala-2.10.4/lib/scala-library.jar $HADOOP_YARN_HOME/share/hadoop/hdfs/lib
- curl -L http://search.maven.org/remotecontent?filepath=org/clapper/grizzled-slf4j_2.10/1.0.1/grizzled-slf4j_2.10-1.0.1.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/grizzled-slf4j_2.10-1.0.1.jar
- curl -L http://search.maven.org/remotecontent?filepath=org/apache/samza/samza-yarn_2.10/0.8.0/samza-yarn_2.10-0.8.0.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/samza-yarn_2.10-0.8.0.jar
- curl -L http://search.maven.org/remotecontent?filepath=org/apache/samza/samza-core_2.10/0.8.0/samza-core_2.10-0.8.0.jar > $HADOOP_YARN_HOME/share/hadoop/hdfs/lib/samza-core_2.10-0.8.0.jar
- vi $HADOOP_YARN_HOME/conf/core-site.xml
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>fs.http.impl</name>
- <value>org.apache.samza.util.hadoop.HttpFileSystem</value>
- </property>
- </configuration>
- Define samza slave nodes
- scp -r . <slaveIP>:/opt/hadoop-2.6.0
- echo <slaveIP> >> conf/slaves
- sbin/start-yarn.sh
- Create job
- This was generated in Eclipse with Maven plugin.
- Code
- package samzafroga;
- import java.util.Map;
- import org.apache.samza.config.Config;
- import org.apache.samza.system.IncomingMessageEnvelope;
- import org.apache.samza.system.OutgoingMessageEnvelope;
- import org.apache.samza.system.SystemStream;
- import org.apache.samza.task.MessageCollector;
- import org.apache.samza.task.StreamTask;
- import org.apache.samza.task.TaskContext;
- import org.apache.samza.task.TaskCoordinator;
- public class job1 implements StreamTask {
- private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "samzaout");
- public void process(IncomingMessageEnvelope envelope,
- MessageCollector collector,
- TaskCoordinator coordinator)
- {
- String msg = (String)envelope.getMessage();
- String outmsg = "-" + msg + "-SMZ";
- collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, outmsg));
- }
- }
- pom.xml
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.acio.samza</groupId>
- <artifactId>samzafroga</artifactId>
- <version>0.0.1</version>
- <name>samzafroga</name>
- <dependencies>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-core_2.10</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-log4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-shell</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-yarn_2.10</artifactId>
- <exclusions>
- <exclusion>
- <artifactId>jdk.tools</artifactId>
- <groupId>jdk.tools</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kv_2.10</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kv-rocksdb_2.10</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kafka_2.10</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka_2.10</artifactId>
- </dependency>
- <dependency>
- <groupId>org.schwering</groupId>
- <artifactId>irclib</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- <version>${jettyVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-webapp</artifactId>
- <version>${jettyVersion}</version>
- </dependency>
- </dependencies>
- <properties>
- <!-- maven specific properties -->
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <samza.version>0.8.0</samza.version>
- <jettyVersion>7.6.16.v20140903</jettyVersion>
- </properties>
- <repositories>
- <repository>
- <id>apache-releases</id>
- <url>https://repository.apache.org/content/groups/public</url>
- </repository>
- <repository>
- <id>scala-tools.org</id>
- <name>Scala-tools Maven2 Repository</name>
- <url>https://oss.sonatype.org/content/groups/scala-tools</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>scala-tools.org</id>
- <name>Scala-tools Maven2 Repository</name>
- <url>http://scala-tools.org/repo-releases</url>
- </pluginRepository>
- </pluginRepositories>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.9</version>
- <configuration>
- <excludes>
- <exclude>*.patch</exclude>
- <exclude>**/target/**</exclude>
- <exclude>*.json</exclude>
- <exclude>.vagrant/**</exclude>
- <exclude>.git/**</exclude>
- <exclude>*.md</exclude>
- <exclude>docs/**</exclude>
- <exclude>config/**</exclude>
- <exclude>bin/**</exclude>
- <exclude>.gitignore</exclude>
- <exclude>**/.cache/**</exclude>
- <exclude>deploy/**</exclude>
- <exclude>**/.project</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <!-- plugin to build the tar.gz file filled with examples -->
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.3</version>
- <configuration>
- <descriptors>
- <descriptor>src/assembly/bin.xml</descriptor>
- </descriptors>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-api</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-core_2.10</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-log4j</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-shell</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-yarn_2.10</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kv_2.10</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kv-rocksdb_2.10</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.samza</groupId>
- <artifactId>samza-kafka_2.10</artifactId>
- <version>${samza.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka_2.10</artifactId>
- <version>0.8.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.schwering</groupId>
- <artifactId>irclib</artifactId>
- <version>1.10</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.2</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.6.2</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- <version>1.8.5</version>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>2.6.0</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- </project>
- src/assembly/bin.xml
- <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>bin</id>
- <formats>
- <format>tar.gz</format>
- <format>zip</format>
- </formats>
- <fileSets>
- <fileSet>
- <directory>${project.basedir}</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>README*</include>
- <include>LICENSE*</include>
- <include>NOTICE*</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${project.build.directory}</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${project.build.directory}/site</directory>
- <outputDirectory>docs</outputDirectory>
- </fileSet>
- </fileSets>
- </assembly>
- Export as a .jar with dependencies.
- Runnign a job
- mkdir /opt/jobs
- cd /opt/jobs
- mkdir bin
- mkdir lib
- cp -P /opt/samza/samza-shell/src/main/bash/* bin/
- cd /opt/jobs
- tar -czvf samzajob1.tar.gz bin lib
- mv samzajob1.tar.gz /var/www/html/jobs/
- vi job1.properties
- task.class=samzafroga.job1
- job.name=samzafroga.job1
- job.factory.class=org.apache.samza.job.yarn.YarnJobFactory
- yarn.package.path=http://<webIP>/jobs/samzajob1.tar.gz
- systems.kafka.samza.factory=org.apache.samza.system.kafka.KafkaSystemFactory
- systems.kafka.consumer.zookeeper.connect=kfk-kafka01:2181,kfk-kafka02:2181
- systems.kafka.producer.bootstrap.servers=kfk-kafka01:9092,kfk-kafka01:9093,kfk-kafka02:9092,kfk-kafka02:9093
- systems.kafka.producer.metadata.broker.list=kfk-kafka01:9092,kfk-kafka01:9093,kfk-kafka02:9092,kfk-kafka02:909
- task.inputs=kafka.syslog
- serializers.registry.json.class=org.apache.samza.serializers.JsonSerdeFactory
- serializers.registry.string.class=org.apache.samza.serializers.StringSerdeFactory
- systems.kafka.streams.syslog.samza.msg.serde=string
- systems.kafka.streams.samzaout.samza.msg.serde=string
- bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/ job1.properties
- Job will be seen in http://<samza01IP>:8088
Advertisement
Add Comment
Please, Sign In to add comment