Skip to main content

Searching within video, audio with Hadoop schedulers

The approach we discuss in this post describes how Hadoop and its schedulers can be used to manage grid computing for massive computation involved in multi-media processing as focus shifts to search and access content/context within video/audio.

As described in the patent 20120078626 - Systems And MethodsFor Converting Speech In Multimedia Content To Text by Johney Tsai, Matthew Miller and David Strong, we explore the usage of Hadoop for management and administration of a computation grid utilized in a system for converting speech to text.

In the said disclosure, they describe how the audio content in absence of a captioned or subtitled text can be processed to have audio extracted and converted to text.  The indexed amalgamated transcript can then be subject for further meta data extractions and analytics. Similarly, video content can be processed to extract person, object and location information.

As per the systems and methods described, they include a provision for a content provider to upload content from a front-end (web portal) which is further interfaced to a scheduler. The scheduler can be used to manage jobs which can be used for tasks like extracting meta data for multi-media search, generating thumbnails, determining objects and contexts at different moments in the clip, generating context based hyperlinks etc.

Some sample usage can be in events like creating context based advertisements during various moments in the clip, creating shopping hyperlinks for purchasing or even for pulling profile information for people determined in the clip. How cool can that be!!?

The scheduler which may be Fair Scheduler or Capacity Scheduler is used to distribute resources to the jobs. The scheduler ensures fast response times to small jobs in a shared cluster and also improves utilization of individual resources while maintaining data locality over separate clusters.

Fair Scheduler can be used in 2 variants: one variant could employ equal weight to all jobs which would mean equal resources are allocated to each job. In the other variant, priorities could be used to determine weight of job which will be used to determine the fraction of CPU time allocated to each job. Each content provider (user) could be allocated a pool of jobs where it gets a minimum share while the excess splits over to others.
For those interested in reading more, here is a link.

The other alternate scheduler is Capacity scheduler :
“a number of named queues can be defined, each with a configurable number of "map and reduce" slots...the scheduler … assigns each queue its capacity when it contains jobs, and shares any unused capacity among the queues.
Within each queue, first-in, first-out (FIFO) scheduling with priorities is preferably used. During use, the scheduler … can be configured to pick a queue whose resources were temporarily being used by some other queue and now needs access to those resources.
If no such queue is found, the scheduler … can select a queue which has most free space (based on a ratio of number of running slots to guaranteed capacity). Once a queue is selected, the scheduler … can pick a job in the queue… the scheduler … can be configured to sort and assign jobs based on the time the job is submitted and the priority level set for that job.”

While in this particular invention, the inventors had not relied on other schedulers, we know that various organizations have further come up with innovative schedulers.

Azkaban is a one such batch scheduler which claims to have a friendlier  user interface to visualize jobs. Used at LinkedIn, it is an open source project and can be accessed at sna-projects with source at github.

Oozie is a workflow management system developed by Yahoo and now a Apache incubator project. It supports several types of Hadoop jobs out of the box (Java map-reduce, Streaming map-reduce, Pig, Distcp, etc.)

With heavy computation resources involved in processing multi-media content, it makes sense to use distributed systems by leveraging Hadoop and the associated job schedulers. Also, it provides key advantages in terms of resource sharing among various users in both cloud and non-cloud environments. Overall, we look forward to many more such systems leading to a much more richer user experience while consuming mulr-media content… and the elephant is already here to help.


Popular articles

5 online tools in data visualization playground

While building up an analytics dashboard, one of the major decision points is regarding the type of charts and graphs that would provide better insight into the data. To avoid a lot of re-work later, it makes sense to try the various chart options during the requirement and design phase. It is probably a well known myth that existing tool options in any product can serve all the user requirements with just minor configuration changes. We all know and realize that code needs to be written to serve each customer’s individual needs. To that effect, here are 5 tools that could empower your technical and business teams to decide on visualization options during the requirement phase. Listed below are online tools for you to add data and use as playground. 1)      Many Eyes : Many Eyes is a data visualization experiment by IBM Research and the IBM Cognos software group. This tool provides option to upload data sets and create visualizations including Scatter Plot, Tree Ma

Data deduplication tactics with HDFS and MapReduce

As the amount of data continues to grow exponentially, there has been increased focus on stored data reduction methods. Data compression, single instance store and data deduplication are among the common techniques employed for stored data reduction. Deduplication often refers to elimination of redundant subfiles (also known as chunks, blocks, or extents). Unlike compression, data is not changed and eliminates storage capacity for identical data. Data deduplication offers significant advantage in terms of reduction in storage, network bandwidth and promises increased scalability. From a simplistic use case perspective, we can see application in removing duplicates in Call Detail Record (CDR) for a Telecom carrier. Similarly, we may apply the technique to optimize on network traffic carrying the same data packets. Some of the common methods for data deduplication in storage architecture include hashing, binary comparison and delta differencing. In this post, we focus o

In-memory data model with Apache Gora

Open source in-memory data model and persistence for big data framework Apache Gora™ version 0.3, was released in May 2013. The 0.3 release offers significant improvements and changes to a number of modules including a number of bug fixes. However, what may be of significant interest to the DynamoDB community will be the addition of a gora-dynamodb datastore for mapping and persisting objects to Amazon's DynamoDB . Additionally the release includes various improvements to the gora-core and gora-cassandra modules as well as a new Web Services API implementation which enables users to extend Gora to any cloud storage platform of their choice. This 2-part post provides commentary on all of the above and a whole lot more, expanding to cover where Gora fits in within the NoSQL and Big Data space, the development challenges and features which have been baked into Gora 0.3 and finally what we have on the road map for the 0.4 development drive. Introducing Apache Gora Although