Hi,
Check this code works

            GzipCodec gzipcodec = new GzipCodec();

            conf.setBoolean("hadoop.native.lib", true);
            gzipcodec.setConf(conf);

            out = fs.create(new Path("/home/user/test"));
            CompressionOutputStream stream
=gzipcodec.createOutputStream(out);
            String test = "test data";
            stream.write(test.getBytes());
            stream.finish();
            IOUtils.closeStream(out);

Getting NullPointerException when setConf(conf) method is not used above.



On Sat, Apr 14, 2012 at 10:08 PM, Piyush Kansal <piyush.kan...@gmail.com>wrote:

> Hi,
>
> Can you please suggest for the below query.
>
>
> On Thu, Apr 12, 2012 at 11:01 PM, Piyush Kansal 
> <piyush.kan...@gmail.com>wrote:
>
>> Thanks for your quick response Harsh.
>>
>> I tried using following:
>> 1 OutputStream out = ipFs.create( new Path( opDir + "/" + fileName ) );
>> 2 CompressionCodec codec = new GzipCodec();
>> 3 OutputStream cs = codec.createOutputStream( out );
>> 4 BufferedWriter cout = new BufferedWriter( new OutputStreamWriter( cs )
>> );
>> 5      cout.write( ... )
>>
>> But got null pointer exception in line 3. Am I doing anything wrong:
>> java.lang.NullPointerException
>> at
>> org.apache.hadoop.io.compress.zlib.ZlibFactory.isNativeZlibLoaded(ZlibFactory.java:63)
>> at
>> org.apache.hadoop.io.compress.GzipCodec.createOutputStream(GzipCodec.java:92)
>>  at myFile$myReduce.reduce(myFile.java:354)
>>
>> I also got following 
>> JIRA<http://mail-archives.apache.org/mod_mbox/hbase-issues/201202.mbox/%3c1886894051.6677.1329950151727.javamail.tom...@hel.zones.apache.org%3E>for
>>  the same. So, can you please suggest how can this be handled.
>>
>> On Thu, Apr 12, 2012 at 10:31 PM, Harsh J <ha...@cloudera.com> wrote:
>>
>>> If you're using the APIs directly, instead of the framework's offered
>>> APIs like MultipleOutputs and the like, you need to follow this:
>>>
>>> OutputStream os = fs.open(…);
>>> CompressionCodec codec = new GzipCodec(); // Or other codec. See also,
>>> CompressionCodecFactory class for some helpers.
>>> OutputStream cs = codec.getOutputStream(os);
>>> // Now use cs as your output stream object for writes.
>>>
>>> On Fri, Apr 13, 2012 at 6:14 AM, Piyush Kansal <piyush.kan...@gmail.com>
>>> wrote:
>>> > Hi,
>>> >
>>> > I am creating o/p files in reducer using my own file name convention.
>>> So,
>>> > using FileSystem APIs I am dumping data in the files. I now want to
>>> compress
>>> > these files while writing so as to write lesser amount of data and
>>> also to
>>> > save the space on HDFS.
>>> >
>>> > So, I tried following options, but none of them worked:
>>> > - setting the "mapred.output.compress" to true
>>> > - job.setOutputFormatClass( TextOutputFormat.class);
>>> >   TextOutputFormat.setCompressOutput(job, true);
>>> >   TextOutputFormat.setOutputCompressorClass(job, GzipCodec.class);
>>> > - I also tried looking into the exiting FileSystem and FileUtil APIs
>>> but
>>> > none of them has an API to write the file in compressed format
>>> >
>>> > Can you please suggest how can I achieve the required goal.
>>> >
>>> > --
>>> > Regards,
>>> > Piyush Kansal
>>> >
>>>
>>>
>>>
>>> --
>>> Harsh J
>>>
>>
>>
>>
>> --
>> Regards,
>> Piyush Kansal
>>
>>
>
>
> --
> Regards,
> Piyush Kansal
>
>


-- 
Regards
Vasanth kumar RJ

Reply via email to