SlideShare una empresa de Scribd logo
1 de 25
Real-Time Weather Tracking,
    Big Data, and Camel
    Shane Kent, Ram Raju, and David Reiser
    May 16, 2012




                                             Photos: Corel, Photodisk; Photodisk; Photodisk; Comstock; DOT
1
Overview of the FAA’s SWIM Program

      System Wide Information Management
      http://www.swim.gov




2
Overview of the FAA’s ITWS Program

    Integrated Terminal Weather System




3
Our Role in SWIM & ITWS

    •   Conversion of a legacy system to a modern SOA-based system
        utilizing FuseSource.
    •   Real-time weather events distributed from sensor to external users in
        less than 1 second (average).
    •   Compressed data stream is approximately 1 Megabit per second,
        streaming constantly (approximately 9 Gigabytes per day).
    •   Data is processed and distributed by an ActiveMQ broker network.
    •   Very high throughput with ActiveMQ.
    •   All data is stored permanently.
    •   All data is accessible through HBase.




4
Integration Challenge # 1
    •   Persist streaming weather data from the incoming SWIM ITWS
        weather feed and store it in HBase Tables.
    •   Read the data from HBase Tables and display it on clients (for
        example Google Maps).
    •   Approach should be highly available, fault-tolerant, have low latency,
        and be scalable to meet fluctuating (seasonal) load.




5
Integration Solution # 1




     JMS                ActiveMQ
             STOMP                 THRIFT   HBase
     Topic                Thrift
                         Adapter            Tables




6
Integration Solution # 1 (continued)
    …
    my $stomp_in;
    eval {
    local $SIG{ ALRM} = sub { die "timed outn" };
    alarm( 10);
    $stomp_in = Net::Stomp->new( { hostname => $DATA_SRV_IP, port => '61613' } );
    $stomp_in->connect( { login => ‘*********', passcode => ‘**********' } );
    $stomp_in->subscribe({
                      destination => $DATA_TOPIC,
                            'ack' => 'client',
          'activemq.prefetchSize' => 1
      });
      };

    …
    my $frame;
    my $x;
    eval {
    local $SIG{ ALRM} = sub { die "no datan" };
    alarm( 10);
    $frame = $stomp_in->receive_frame;
    $x = $frame->body;
    alarm( 0);
    };

    …
    $COLUMN_FAMILY = $prod_type;
    $KEY = $gentime;
    my $col_start = 'itws-' . $gentime . '-' . $exptime . '-' . $tracon . '-' . $airport . '-' . $prod_type . '-' . $rectime . '-' . $srv_time . '.xml';

    my $mutation1 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.airport", value => $airport });
    my $mutation2 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.exptime", value => $exptime });
    my $mutation3 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.content", value => $x });

    my $mutations = [ $mutation1, $mutation2, $mutation3 ];

    my $date = qx/date/;
    chomp($date);
    print LOG $date . "> Adding data to HBase... ";
    $client->mutateRow($TABLE, $KEY, $mutations);
    if ($? == 0) {
       print LOG "Success.n";
       print LOG "$client->mutateRow ($TABLE, $KEY, $mutations)n";
    }
    else { print LOG "ERROR!n" }

    …




7
Integration Challenge # 2

    •   Periodically (for example every 5 minutes) check current weather
        information (for example wind speed/direction) from an external
        weather feed (for example Yahoo Weather).
    •   Translate this data into compatible data formats.
    •   Store it in an HBase table so it can be accessed by clients.




8
Integration Solution # 2




    External                Camel
               Camel AHC              Camel AHC   HBase
      Wx       Endpoint    Stargate   Endpoint
     Feed                                         Tables
                           Adapter




9
Integration Solution # 2 (continued)
     public class MyRouteBuilder extends RouteBuilder {
          @Override
          public void configure() throws Exception {
          from("timer:myTimerEvent?fixedRate=true&period=300000")
          .process(new WeatherProcessor())
          .to("ahc:get_wx")
          .convertBodyTo(String.class)
          .process(new HBaseWriter())
          .transform(simple("${in.headers.Last}"))
          .to("ahc:store_data");
          }
     }

     public class HBaseWriter implements Processor {

         public void process(Exchange exchange) throws Exception {
              SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
              String wxTime = sdf.format(new Date());
              exchange.getIn().setHeader(Exchange.HTTP_URI, "http://localhost:8080/yahoowx/"+wxTime+"/currentwx:NYC");
              exchange.getIn().setHeader(Exchange.HTTP_METHOD, ("POST"));
              exchange.getIn().setHeader(Exchange.CONTENT_TYPE, ("application/octet-stream"));
              String currentWx = exchange.getIn().getBody(String.class).replaceAll(""", "");
              exchange.getIn().setHeader("Last", currentWx);
         }
     }



     public class WeatherProcessor implements Processor {

         @Override
         public void process(Exchange exchange) throws Exception {
              exchange.getIn().setHeader(Exchange.HTTP_URI, "http://weather.yahooapis.com/forecastjson?jsoncallback=?&w=2459115");
         }
     }




10
Integration Challenge # 3

     •   Read incoming compressed data from our JMS Topics.
     •   Unzip the XML data.
     •   Store the streaming data into the HDFS file system so we can
         access it for MapReduce (with Hadoop) or from HBase.
     •   Keep a log of incoming data.




11
Integration Solution # 3




      JMS     Camel JMS   Camel
                                    Camel HDFS   HDFS
      Topic   Endpoint     HDFS     Endpoint
                          Adapter                Files




12
Integration Solution # 3

     public class ServerRoutes extends RouteBuilder {

     @Override
      public void configure() throws Exception {

      from("jms:topic:FOO.ZIP.OUT")
          .unmarshal().zip()
          .to("hdfs://ip-address/output?splitStrategy=MESSAGES:1&replication=3")
          .to("log:camel");
      }
     }




13
Summary



               Camel Rocks!
     •And so do other open source projects like ActiveMQ, ServiceMix,
     HBase, Hadoop …




14
Benefits of Using Opensource Software

     • High quality software.
     • When combined with topnotch support, creates an ideal
       programming environment.
     • Enables a “Configure, don’t code” approach.




15
Open Source Software We’re Using

     •   Apache Camel
     •   Apache ActiveMQ
     •   Apache Servicemix
     •   Apache CXF
     •   Apache Hadoop
     •   Apache HBase
     •   Apache ZooKeeper
     •   Apache Maven




16
Data Quality Assurance

     How we ensured that the legacy data translation produced correct
     results …




17
Google Maps Display of a Busy Weather Day at Miami




18
View From the Tower at JFK International Airport




19
Planes Taxiing at JFK




20
Future Concepts




21
Future Concepts (continued)




22
Google Earth API Demo




23
Very recent developments:

     If you or your organization would like to become a
        consumer of the real-time SWIM-ITWS SOA data,
        please contact:

     Tony Colon – ITWS SWIM Segment-One Capability
       (ISSC) Program Manager:
      tony.colon@dot.gov
      (617) 494-2647




24
Questions?

     Thank you.




25

Más contenido relacionado

La actualidad más candente

Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Altinity Ltd
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiInfluxData
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovAltinity Ltd
 
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBMonitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBGeoffrey Anderson
 
Altinity Cluster Manager: ClickHouse Management for Kubernetes and Cloud
Altinity Cluster Manager: ClickHouse Management for Kubernetes and CloudAltinity Cluster Manager: ClickHouse Management for Kubernetes and Cloud
Altinity Cluster Manager: ClickHouse Management for Kubernetes and CloudAltinity Ltd
 
Backing up Wikipedia Databases
Backing up Wikipedia DatabasesBacking up Wikipedia Databases
Backing up Wikipedia DatabasesJaime Crespo
 
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...Altinity Ltd
 
Webinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
Webinar slides: Adding Fast Analytics to MySQL Applications with ClickhouseWebinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
Webinar slides: Adding Fast Analytics to MySQL Applications with ClickhouseAltinity Ltd
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEOAltinity Ltd
 
Sessionization with Spark streaming
Sessionization with Spark streamingSessionization with Spark streaming
Sessionization with Spark streamingRamūnas Urbonas
 
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...DataStax
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...Altinity Ltd
 
HBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxHBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxCloudera, Inc.
 
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founderMux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founderAltinity Ltd
 
Compliance as Code with terraform-compliance
Compliance as Code with terraform-complianceCompliance as Code with terraform-compliance
Compliance as Code with terraform-complianceEmre Erkunt
 
Our Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.doOur Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.doMetehan Çetinkaya
 
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxData
 
Advanced Postgres Monitoring
Advanced Postgres MonitoringAdvanced Postgres Monitoring
Advanced Postgres MonitoringDenish Patel
 

La actualidad más candente (20)

Unqlite
UnqliteUnqlite
Unqlite
 
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei Milovidov
 
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBMonitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDB
 
Altinity Cluster Manager: ClickHouse Management for Kubernetes and Cloud
Altinity Cluster Manager: ClickHouse Management for Kubernetes and CloudAltinity Cluster Manager: ClickHouse Management for Kubernetes and Cloud
Altinity Cluster Manager: ClickHouse Management for Kubernetes and Cloud
 
Backing up Wikipedia Databases
Backing up Wikipedia DatabasesBacking up Wikipedia Databases
Backing up Wikipedia Databases
 
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
 
Webinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
Webinar slides: Adding Fast Analytics to MySQL Applications with ClickhouseWebinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
Webinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
 
Sessionization with Spark streaming
Sessionization with Spark streamingSessionization with Spark streaming
Sessionization with Spark streaming
 
Hadoop
HadoopHadoop
Hadoop
 
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
 
HBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxHBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at Box
 
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founderMux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
 
Compliance as Code with terraform-compliance
Compliance as Code with terraform-complianceCompliance as Code with terraform-compliance
Compliance as Code with terraform-compliance
 
Our Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.doOur Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.do
 
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOxInfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
InfluxDB IOx Tech Talks: Query Processing in InfluxDB IOx
 
Advanced Postgres Monitoring
Advanced Postgres MonitoringAdvanced Postgres Monitoring
Advanced Postgres Monitoring
 

Destacado

Money market3ce Ch02
Money market3ce Ch02Money market3ce Ch02
Money market3ce Ch02ashtle
 
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...sakanor
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixAdrian Trenaman
 
Difference between cooperative bank and commercial bank
Difference between cooperative bank and commercial bankDifference between cooperative bank and commercial bank
Difference between cooperative bank and commercial bankNidhi Sharma
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Claus Ibsen
 
Function of commercial banks in bangladesh
Function of commercial banks in bangladeshFunction of commercial banks in bangladesh
Function of commercial banks in bangladeshMd. Atiqur Rahman
 
Functions of commercial banks
Functions of commercial banksFunctions of commercial banks
Functions of commercial banksHarshit Patni
 
Financial intermediation
Financial intermediationFinancial intermediation
Financial intermediationKijuto JP
 
International Monetary Fund (IMF)
International Monetary Fund (IMF)International Monetary Fund (IMF)
International Monetary Fund (IMF)Hj Habib
 
Yarn Manufacturing
Yarn ManufacturingYarn Manufacturing
Yarn ManufacturingNazrul
 
International Monetary Fund
International Monetary FundInternational Monetary Fund
International Monetary FundCitibank N.A.
 
Small is beautiful. Your credit union can remain small and successful.
Small is beautiful. Your credit union can remain small and successful.Small is beautiful. Your credit union can remain small and successful.
Small is beautiful. Your credit union can remain small and successful.Tim McAlpine
 

Destacado (16)

Histogram
HistogramHistogram
Histogram
 
Money market3ce Ch02
Money market3ce Ch02Money market3ce Ch02
Money market3ce Ch02
 
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...
Econ315 Money and Banking: Learning Unit #03: Financial System and Asymmetric...
 
camel model
camel modelcamel model
camel model
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMix
 
Difference between cooperative bank and commercial bank
Difference between cooperative bank and commercial bankDifference between cooperative bank and commercial bank
Difference between cooperative bank and commercial bank
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
 
Function of commercial banks in bangladesh
Function of commercial banks in bangladeshFunction of commercial banks in bangladesh
Function of commercial banks in bangladesh
 
Functions of commercial banks
Functions of commercial banksFunctions of commercial banks
Functions of commercial banks
 
Financial intermediation
Financial intermediationFinancial intermediation
Financial intermediation
 
International Monetary Fund (IMF)
International Monetary Fund (IMF)International Monetary Fund (IMF)
International Monetary Fund (IMF)
 
Yarn Manufacturing
Yarn ManufacturingYarn Manufacturing
Yarn Manufacturing
 
Role and function of imf
Role and function of imfRole and function of imf
Role and function of imf
 
Risk types
Risk  typesRisk  types
Risk types
 
International Monetary Fund
International Monetary FundInternational Monetary Fund
International Monetary Fund
 
Small is beautiful. Your credit union can remain small and successful.
Small is beautiful. Your credit union can remain small and successful.Small is beautiful. Your credit union can remain small and successful.
Small is beautiful. Your credit union can remain small and successful.
 

Similar a Camel one v3-6

Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSuzquiano
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...OpenCredo
 
Spring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenSpring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenJoshua Long
 
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseCodepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraDeependra Ariyadewa
 
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...InfluxData
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big DataDhafer Malouche
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuningAOE
 
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammOSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammNETWAYS
 
Monitoring VoIP Systems
Monitoring VoIP SystemsMonitoring VoIP Systems
Monitoring VoIP Systemssipgate
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data ProcessingMichael Peacock
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupShapeBlue
 
CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire NetApp
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGMatthew McCullough
 
Apache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceApache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceSachin Aggarwal
 
Ingesting streaming data for analysis in apache ignite (stream sets theme)
Ingesting streaming data for analysis in apache ignite (stream sets theme)Ingesting streaming data for analysis in apache ignite (stream sets theme)
Ingesting streaming data for analysis in apache ignite (stream sets theme)Tom Diederich
 
Log everything! @DC13
Log everything! @DC13Log everything! @DC13
Log everything! @DC13DECK36
 
Flink 0.10 @ Bay Area Meetup (October 2015)
Flink 0.10 @ Bay Area Meetup (October 2015)Flink 0.10 @ Bay Area Meetup (October 2015)
Flink 0.10 @ Bay Area Meetup (October 2015)Stephan Ewen
 

Similar a Camel one v3-6 (20)

Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
 
Spring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in HeavenSpring and Cloud Foundry; a Marriage Made in Heaven
Spring and Cloud Foundry; a Marriage Made in Heaven
 
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseCodepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
 
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big Data
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammOSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
 
Monitoring VoIP Systems
Monitoring VoIP SystemsMonitoring VoIP Systems
Monitoring VoIP Systems
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User Group
 
CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire
 
Aimaf
AimafAimaf
Aimaf
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
 
Apache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault ToleranceApache Spark Streaming: Architecture and Fault Tolerance
Apache Spark Streaming: Architecture and Fault Tolerance
 
Ingesting streaming data for analysis in apache ignite (stream sets theme)
Ingesting streaming data for analysis in apache ignite (stream sets theme)Ingesting streaming data for analysis in apache ignite (stream sets theme)
Ingesting streaming data for analysis in apache ignite (stream sets theme)
 
Log everything! @DC13
Log everything! @DC13Log everything! @DC13
Log everything! @DC13
 
Flink 0.10 @ Bay Area Meetup (October 2015)
Flink 0.10 @ Bay Area Meetup (October 2015)Flink 0.10 @ Bay Area Meetup (October 2015)
Flink 0.10 @ Bay Area Meetup (October 2015)
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Camel one v3-6

  • 1. Real-Time Weather Tracking, Big Data, and Camel Shane Kent, Ram Raju, and David Reiser May 16, 2012 Photos: Corel, Photodisk; Photodisk; Photodisk; Comstock; DOT 1
  • 2. Overview of the FAA’s SWIM Program System Wide Information Management http://www.swim.gov 2
  • 3. Overview of the FAA’s ITWS Program Integrated Terminal Weather System 3
  • 4. Our Role in SWIM & ITWS • Conversion of a legacy system to a modern SOA-based system utilizing FuseSource. • Real-time weather events distributed from sensor to external users in less than 1 second (average). • Compressed data stream is approximately 1 Megabit per second, streaming constantly (approximately 9 Gigabytes per day). • Data is processed and distributed by an ActiveMQ broker network. • Very high throughput with ActiveMQ. • All data is stored permanently. • All data is accessible through HBase. 4
  • 5. Integration Challenge # 1 • Persist streaming weather data from the incoming SWIM ITWS weather feed and store it in HBase Tables. • Read the data from HBase Tables and display it on clients (for example Google Maps). • Approach should be highly available, fault-tolerant, have low latency, and be scalable to meet fluctuating (seasonal) load. 5
  • 6. Integration Solution # 1 JMS ActiveMQ STOMP THRIFT HBase Topic Thrift Adapter Tables 6
  • 7. Integration Solution # 1 (continued) … my $stomp_in; eval { local $SIG{ ALRM} = sub { die "timed outn" }; alarm( 10); $stomp_in = Net::Stomp->new( { hostname => $DATA_SRV_IP, port => '61613' } ); $stomp_in->connect( { login => ‘*********', passcode => ‘**********' } ); $stomp_in->subscribe({ destination => $DATA_TOPIC, 'ack' => 'client', 'activemq.prefetchSize' => 1 }); }; … my $frame; my $x; eval { local $SIG{ ALRM} = sub { die "no datan" }; alarm( 10); $frame = $stomp_in->receive_frame; $x = $frame->body; alarm( 0); }; … $COLUMN_FAMILY = $prod_type; $KEY = $gentime; my $col_start = 'itws-' . $gentime . '-' . $exptime . '-' . $tracon . '-' . $airport . '-' . $prod_type . '-' . $rectime . '-' . $srv_time . '.xml'; my $mutation1 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.airport", value => $airport }); my $mutation2 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.exptime", value => $exptime }); my $mutation3 = Hbase::Mutation->new({ column => "$COLUMN_FAMILY:$col_start.content", value => $x }); my $mutations = [ $mutation1, $mutation2, $mutation3 ]; my $date = qx/date/; chomp($date); print LOG $date . "> Adding data to HBase... "; $client->mutateRow($TABLE, $KEY, $mutations); if ($? == 0) { print LOG "Success.n"; print LOG "$client->mutateRow ($TABLE, $KEY, $mutations)n"; } else { print LOG "ERROR!n" } … 7
  • 8. Integration Challenge # 2 • Periodically (for example every 5 minutes) check current weather information (for example wind speed/direction) from an external weather feed (for example Yahoo Weather). • Translate this data into compatible data formats. • Store it in an HBase table so it can be accessed by clients. 8
  • 9. Integration Solution # 2 External Camel Camel AHC Camel AHC HBase Wx Endpoint Stargate Endpoint Feed Tables Adapter 9
  • 10. Integration Solution # 2 (continued) public class MyRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from("timer:myTimerEvent?fixedRate=true&period=300000") .process(new WeatherProcessor()) .to("ahc:get_wx") .convertBodyTo(String.class) .process(new HBaseWriter()) .transform(simple("${in.headers.Last}")) .to("ahc:store_data"); } } public class HBaseWriter implements Processor { public void process(Exchange exchange) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); String wxTime = sdf.format(new Date()); exchange.getIn().setHeader(Exchange.HTTP_URI, "http://localhost:8080/yahoowx/"+wxTime+"/currentwx:NYC"); exchange.getIn().setHeader(Exchange.HTTP_METHOD, ("POST")); exchange.getIn().setHeader(Exchange.CONTENT_TYPE, ("application/octet-stream")); String currentWx = exchange.getIn().getBody(String.class).replaceAll(""", ""); exchange.getIn().setHeader("Last", currentWx); } } public class WeatherProcessor implements Processor { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(Exchange.HTTP_URI, "http://weather.yahooapis.com/forecastjson?jsoncallback=?&w=2459115"); } } 10
  • 11. Integration Challenge # 3 • Read incoming compressed data from our JMS Topics. • Unzip the XML data. • Store the streaming data into the HDFS file system so we can access it for MapReduce (with Hadoop) or from HBase. • Keep a log of incoming data. 11
  • 12. Integration Solution # 3 JMS Camel JMS Camel Camel HDFS HDFS Topic Endpoint HDFS Endpoint Adapter Files 12
  • 13. Integration Solution # 3 public class ServerRoutes extends RouteBuilder { @Override public void configure() throws Exception { from("jms:topic:FOO.ZIP.OUT") .unmarshal().zip() .to("hdfs://ip-address/output?splitStrategy=MESSAGES:1&replication=3") .to("log:camel"); } } 13
  • 14. Summary Camel Rocks! •And so do other open source projects like ActiveMQ, ServiceMix, HBase, Hadoop … 14
  • 15. Benefits of Using Opensource Software • High quality software. • When combined with topnotch support, creates an ideal programming environment. • Enables a “Configure, don’t code” approach. 15
  • 16. Open Source Software We’re Using • Apache Camel • Apache ActiveMQ • Apache Servicemix • Apache CXF • Apache Hadoop • Apache HBase • Apache ZooKeeper • Apache Maven 16
  • 17. Data Quality Assurance How we ensured that the legacy data translation produced correct results … 17
  • 18. Google Maps Display of a Busy Weather Day at Miami 18
  • 19. View From the Tower at JFK International Airport 19
  • 23. Google Earth API Demo 23
  • 24. Very recent developments: If you or your organization would like to become a consumer of the real-time SWIM-ITWS SOA data, please contact: Tony Colon – ITWS SWIM Segment-One Capability (ISSC) Program Manager: tony.colon@dot.gov (617) 494-2647 24
  • 25. Questions? Thank you. 25