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.


Comments

Popular posts from this blog

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 there are var…

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 on how MapReduce and…

Amazon DynamoDB datastore for Gora

What was initially suggested during causal conversation at ApacheCon2011 in November 2011 as a “neat idea”, would soon become prime ground for Gora's first taste of participation within Google's Summer of Code program. Initially, the project, titled Amazon DynamoDB datastore for Gora, merely aimed to extend the Gora framework to Amazon DynamoDB. However, it seem became obvious that the issue would include much more than that simple vision.

The Gora 0.3 Toolbox We briefly digress to discuss some other noticeable additions to Gora in 0.3, namely: Modification of the Query interface: The Query interface was amended from Query<K, T> to Query<K, T extends Persistent> to be more precise and explicit for developers. Consequently all implementors and users of the Query interface can only pass object's of Persistent type. Logging improvements for data store mappings: A key aspect of using Gora well is the establishment and accurate definitio…