java培训吧 关注:116,350贴子:396,576

零基础学习 Hadoop 该如何下手

只看楼主收藏回复

本人选择了 Hadoop 方面作为毕业设计,现在看着 Hadoop 权威指南学习,但还是一头雾水,code 无法下手


1楼2015-10-23 14:09回复
    重新整理下我的回答。(我也是做毕业设计才开始接触Hadoop,折腾了蛮久,看了各种各类的书,对于如何入手也有些感触。我不是Hadoop专家,也只是一个初学者,这里我也只是就自己的学习体会,站在初学者的角度谈一下如何入门。)


    2楼2015-10-23 14:22
    回复
      我觉得因为思考这样一个问题:Hadoop对于我们来讲,是一种工具,那么Hadoop帮助我们解决了什么问题?或者换个角度想,没有Hadoop,我们做同样一项工作会增加什么任务?(想清楚了这问题,心里就会形成Hadoop到底是什么,能做什么的概念。初学者在最初时候很容易框架当成负担,但实际上他应该是工具。明白了Hadoop这个神器的美妙后,你就可以开始心怀期待的去慢慢驾驭它了


      3楼2015-10-23 14:30
      回复
        初学Hadoop,最基础的也就是HDFS和Mapreduce了,HDFS是一个分布式存储文件系统,Mapreduce是一个分布式计算的框架,两者结合起来,就可以很容易做一些分布式处理任务了。作为入门,先只需要学习这两样就够了。


        4楼2015-10-23 14:34
        回复
          首先你肯定要搭建好环境。(这些网上教程很多。)然后,找一篇讲Hdfs java API的文章HDFS API详解把其中的例子跑一下,感受一下就可以了。(只需要只要有哪些API,大概怎么用,以后要用,直接在里面找,或者查看API文档。)


          5楼2015-10-23 14:43
          回复
            看很多答主说什么看源码,看书,本人全部亲身试验过,当初也是信誓旦旦,然而并没有什么卵用!!!请问源码看的下去吗??书又从何看起呢??→_→在hadoop上跑一个wordcount程序大致知道基本原理,编程的时候哪儿不会查哪儿,在此基础上练习写别的程序。效果杠杠的!


            6楼2015-10-23 14:48
            回复
              大数据相关的书已经买了好几年了,尘封了好久,翻出来看看学学,主要为HDFS和MAPREDUCE,本地简单部署环境和运行简历例子,结合相关原理来学习


              7楼2015-10-23 14:54
              回复
                写Hadoop Streaming程序,通常会编程就能写,接口简单标准输入输出


                8楼2015-10-23 14:54
                回复
                  权威指南的理论性完备性很强,还是很好,需要一看,当然如果想快速动手进入状态,看看 hadoop开发者专刊或者他人的技术博客是不错的选择,里面告诉你一步步搭建自己的伪分布式系统,如何编译源码,如何实验hadoop自带的程序,如何动手写自己的第一个mapreduce程序,用不了多久就能进入状态了,在一边看得过程中一边学习原理,有问题可以查看很多人的技术博客,如果时间有空余可以研究下hadoop源码,当然了,任何知识,都是要花时间来学习的。官方的guide手册当然是最好的,也需要看看


                  9楼2015-10-23 15:01
                  回复
                    String是常量(即创建之后就无法更改),会保存到常量池中,如果有其他进程可以dump这个进程的内存,那么密码就会随着常量池被dump出去从而泄露,而char[]可以写入其他的信息从而改变,即是被dump了也会减少泄露密码的风险。完毕。


                    10楼2015-10-23 15:03
                    回复
                      建议题主首先学一下java。
                      然后了解一下hadoop的基本介绍,一些概念了解一下。
                      再找个mapreduce的小例子,比如矩阵乘法,把这个弄懂。
                      再想一下毕设做什么,不能太难也不能太简单。
                      然后去实现吧。


                      11楼2015-10-23 15:41
                      回复
                        向后兼容性分为源代码级和二进制级,Scala的var或val改为finaldef的话,无论源代码级的向后兼容性,还是二进制级的向后兼容性,都不遭受破坏。


                        12楼2015-10-23 16:36
                        回复

                          那么,再回到你的问题。常规情况下,如果没有keepalive,那么,浏览器再发送了一个HTTP请求以后并成功获得了服务端的HTTP响应(参见上面的协议),就会把这个socket通道通过四次握手关闭;所以,一个http请求+一个http响应后,服务端就不能再继续往浏览器这个客户端发送数据。


                          13楼2015-10-23 16:39
                          回复
                            浏览器这里一直等着这个请求,一返回马上可以处理数据。超时只是一个补充手段,因为不可能让这个HTTP请求一直挂着,比如浏览器关掉呢?那这个请求就会消耗服务器资源。所以设个超时。一般longpolling的实现技术就是ajax,异步等待HTTP应答。


                            14楼2015-10-23 16:40
                            回复
                              楼主真好,我学习的就是软件工程专业,只学JAVA,都不用学C,但是我发现JAVA和很多连在了一起,我到现在都没弄明白HTML,JSPS的区别,怎么办


                              15楼2015-10-23 16:43
                              回复