hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Klaas Bosteels (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-1722) Make streaming to handle non-utf8 byte array
Date Wed, 04 Feb 2009 11:05:59 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-1722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12670305#action_12670305

Klaas Bosteels commented on HADOOP-1722:

Replies to Deveraj's comments:
* I guess it would indeed make sense to move everything I added in core to streaming. I'll
attach a new version of the patch later today.
* The main advantage of the typed bytes is not that they lead to more compact representations,
but rather that they can make it a lot easier to write certain streaming apps. Suppose for
instance that you want to write a streaming app that consumes sequence files containing instances
of {{VIntWritable}} as keys and instances of a custom {{Record}} as values. With typed bytes,
the keys and values will then then be converted automatically to appropriate typed bytes (namely,
the keys will be converted to a typed bytes integer and the values to a typed bytes list consisting
of the typed bytes objects that correspond to the attributes of the record), whereas your
streaming app would have to implement {{VIntWritable}} and {{Record}} deserialization itself
if streaming would only support raw bytes. So using typed bytes does indeed make things a
bit more complex, but it's definitely worth it in my opinion (and you can still use raw bytes
if you want to by using a 0 byte as type code).

> Make streaming to handle non-utf8 byte array
> --------------------------------------------
>                 Key: HADOOP-1722
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1722
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: contrib/streaming
>            Reporter: Runping Qi
>            Assignee: Klaas Bosteels
>         Attachments: HADOOP-1722-v2.patch, HADOOP-1722-v3.patch, HADOOP-1722-v4.patch,
> Right now, the streaming framework expects the output sof the steam process (mapper or
reducer) are line 
> oriented UTF-8 text. This limit makes it impossible to use those programs whose outputs
may be non-UTF-8
>  (international encoding, or maybe even binary data). Streaming can overcome this limit
by introducing a simple
> encoding protocol. For example, it can allow the mapper/reducer to hexencode its keys/values,

> the framework decodes them in the Java side.
> This way, as long as the mapper/reducer executables follow this encoding protocol, 
> they can output arabitary bytearray and the streaming framework can handle them.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message