黑马程序员技术交流社区

标题: hadoop技术普及贴——hadoop中的数据序列化及数据类型 [打印本页]

作者: wuddd    时间: 2013-4-6 00:59
标题: hadoop技术普及贴——hadoop中的数据序列化及数据类型
本帖最后由 吴超老师 于 2013-4-6 06:05 编辑

    序列化是干什么用的?本质上讲,就是数据保存到虚拟机之外,然后又被读到虚拟机内.如果仅仅是保存,不关心能读进jvm的话,就不关心序列化问题了.正是因为需要被读进jvm,所以必须识别写出、读入的数据格式、字符顺序等问题。因此序列化也就是比较重视的事情了。拿密码来打比方:序列化就像加密,反序列化就像解密。只加密不解密那肯定是不行的。hdfs作为分布式存储系统必然涉及到序列化问题。

    hdfs中需要序列化的数据必须实现Writable接口,就像在java序列化中必须实现java.io.Serializable接口一样.

    hdfs中的各种数据类型都是需要序列化的,因此都实现了Writable接口。常用的数据类型包括IntWritable、LongWritable、Text、ArrayWritable等,就像java中的int、long、String、Array一样,大部分都是基本数据类型。这些基本类型构成了mapreduce运算的基本类型。

    就像java中有集合Arrary、List、Set、Map一样,在hdfs也有ArrayFile、SequenceFile、SetFile、MapFile与之对应。

    学习hdfs时,要注意学习基本数据类型和集合操作,这是进行mapreduce计算的基础组成部分。只有把数据类型搞清楚了,再学好MapReduce的算法模型,hadoop就基本搞定了。

    到这里,有没有疑问:hadoop是用java写的,hdfs、MapReduce也是。既然java中有了序列化、有了基本数据类型、有了集合操作,为什么在hdfs中还要重新定义一套哪?为什么不用java中的哪?

    预知答案如何,请听课堂讲解!


作者: 郭彦君    时间: 2013-4-6 01:00
好像沙发,吼吼
作者: zjm10zj    时间: 2013-4-6 01:30
学习了,谢谢
作者: 曹睿翔    时间: 2013-4-6 08:45
想听课堂讲解!!
作者: 王梦南    时间: 2013-4-6 10:05
努力中,期待课堂讲解
作者: 夏凡    时间: 2013-4-6 11:17
希望有机会 学习hadoop
作者: 杜鹏飞    时间: 2013-4-7 13:38
本帖最后由 吴超老师 于 2013-4-6 06:05 编辑

是不是把答案给改掉了{:soso_e128:}
作者: 黑马伍哲沂    时间: 2013-4-7 13:45

我想知道如果数据结构和算法知识比较扎实,是不是学习hadoop会好很多。
我意思是相比javaEE,hadoop相对来说对数据结构和算法要求高一些。
希望老师解惑。
作者: 陈丽莉    时间: 2013-4-7 14:28
支持~~~~~~  期待云3~~~~~~~~~
作者: 黄诗宾    时间: 2013-4-7 14:32
支持 云1还没毕业么~
作者: wuddd    时间: 2013-4-7 23:18
杜鹏飞 发表于 2013-4-7 13:38
本帖最后由 吴超老师 于 2013-4-6 06:05 编辑

是不是把答案给改掉了 ...

肯定不是的,那种做法没意思,想都没想过。

咱们论坛写文章,没有预览功能,排版的时候看着格式很好,但是发布后发现排版有些错位,或者标点符号用错了,或者有错别字,或者某句话理解有歧义。文章发表后,我都会读一两遍,才关掉页面。所以我发的文章,几乎都修改过(灌水除外),目的就是为了让大家更容易理解和阅读。

嗯嗯,把我想歪了是不 :)
作者: wuddd    时间: 2013-4-7 23:19
黑马伍哲沂 发表于 2013-4-7 13:45
我想知道如果数据结构和算法知识比较扎实,是不是学习hadoop会好很多。
我意思是相比javaEE,hadoop相对来 ...

完全正确!我不需要继续补充了!
作者: 杜鹏飞    时间: 2013-4-8 08:47
吴超老师 发表于 2013-4-7 23:18
肯定不是的,那种做法没意思,想都没想过。

咱们论坛写文章,没有预览功能,排版的时候看着格式很好,但 ...

我用那个表情,明显是开玩笑啊.
老师倒是言重了,让我深感惭愧.:D
到时候现场听老师讲解,呵呵
作者: 杨杨    时间: 2013-4-8 10:16
我猜的  应该是这样肯定是java 序列化 不能满足现有 大数据的处理, hadoop的 序列化 肯定有自己的算法,java的序列化 是在jvm中实现的, 我们一般都无法改变它的算法,不知道对不对啊。
作者: wuddd    时间: 2013-4-8 11:30
杨杨 发表于 2013-4-8 10:16
我猜的  应该是这样肯定是java 序列化 不能满足现有 大数据的处理, hadoop的 序列化 肯定有自己的算法,j ...

完全正确,O(∩_∩)O哈哈~
作者: wuddd    时间: 2013-4-8 11:34
本帖最后由 吴超老师 于 2013-4-8 11:45 编辑
杜鹏飞 发表于 2013-4-8 08:47
我用那个表情,明显是开玩笑啊.
老师倒是言重了,让我深感惭愧.
到时候现场听老师讲解,呵呵 ...

^_^

我也明显是开玩笑的。我还以为今天是四月一号。

大家都是天真无邪,和大家在一起,就是开心,说话聊天没有什么忌讳。即使理解有歧义,我也不会向不好的方向想。

咱们聊天开玩笑,气氛会更好

作者: 杨杨    时间: 2013-4-8 12:57
吴超老师 发表于 2013-4-8 11:30
完全正确,O(∩_∩)O哈哈~

明天面试希望能通过啊,听老师的讲解啊
作者: 李游    时间: 2013-4-8 14:27
{:soso_e183:}  自学hadoop中。。。
作者: wuddd    时间: 2013-4-8 15:04
李游 发表于 2013-4-8 14:27
自学hadoop中。。。

兄弟属于牛A++的那类人
作者: 李游    时间: 2013-4-8 15:08
吴超老师 发表于 2013-4-8 15:04
兄弟属于牛A++的那类人

错了,是菜鸟级别的,只是下了一些关于Hadoop的视频啊,环境配置起来就有难度:Q
作者: wuddd    时间: 2013-4-8 15:10
李游 发表于 2013-4-8 15:08
错了,是菜鸟级别的,只是下了一些关于Hadoop的视频啊,环境配置起来就有难度 ...

挺好的路子。也可以先看看各种资料,不要求理解,熟悉各种概念,见了眼熟即可。这样,上课的时候就有的放矢了。带着问题听课的效果还是不错的
作者: wuddd    时间: 2013-4-8 15:11
曹睿翔 发表于 2013-4-6 08:45
想听课堂讲解!!

这位兄弟是抱着自己的孩子吗:handshake
作者: 李游    时间: 2013-4-8 16:07
吴超老师 发表于 2013-4-8 15:10
挺好的路子。也可以先看看各种资料,不要求理解,熟悉各种概念,见了眼熟即可。这样,上课的时候就有的放 ...

是的,先熟悉下各种概念,带着问题听课,别到时候上课搞的自己很仓促,跟不上节奏。
作者: 曹睿翔    时间: 2013-4-8 18:30
吴超老师 发表于 2013-4-8 15:11
这位兄弟是抱着自己的孩子吗

真心想说,我换了头像之后等了好久(晒晒我外甥女的萌样),终于有好心人(好奇吧)问了,样子太好笑了,我就做个头像先




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2