python和hadoop有什么联系?

0

我是做java的,我老板让我去学hadoop和python,这两种技术能在一起做项目么?
hadoop是java开发的啊,按理来说java是无缝对接的,和python扯上什么关系?
已邀请:
1

牟瑞 - 大数据 Hadoop 讲师 Hadoop入门课程地址:http://www.hellobi.com/course/39 有架构师,技术总监,CTO的职位请联系我! 2015-09-18 回答

这真是一个好问题。作为一个工作很多年的码农,多多少少的使用过C,VB,VB.net,C#,JAVA,Python,Scala等等编程语言,我慢慢地喜欢上了Python。这里无关乎语言之争,只是说一下我个人的看法,勿喷。
以一句话来开篇:人生苦短,我用Python
   Python的好处主要有以下几种(来源自《集体智慧编程》英文版《Programming Collective Intelligence Building Smart Web 2.0 Applications》这本书:
   简练
   使用像Python这样的动态类型语言编写的代码往往比用其他主流语言编写的代码更加简短。这意味着,在完成示例的过程中会有更少的录入工作,而且这也意味着我们将更容易记住算法并真正领会算法的原理。
   易于阅读
   Python不时被人们指为“可执行的伪代码”。虽然很明显这是夸大之词,但是它表明,大多数有经验的程序员可以读懂Python代码并领会代码所要表达的意图。
   易于安装
   不管是Windows,Linux还是Mac系统,只要配置好Python的环境,只需要easy_install  XX或者pip install XX 就可以安装所需要的第三方扩展包。当然,对于Windows 64bit的操作系统来说,可能稍微麻烦一点,有些会出现兼容性问题,不过也都可以找到相应的解决方案。
   易于扩展
   Python附属了很多的标准库,这些涉及数据函数,XML解析,以及网页下载(笔者注:Python的BeautifulSoup是笔者见过的做好的HTML/XML解析工具之一,速度快,文档例子非常多),RSS解析,SQLLite等等
   交互性
   Python可以直接从命令行运行程序,它还有交互提示,允许我们键入函数调用,创建对象,并以交互的形式对包进行测试。
   多范式
   Python支持面向对象,过程式和函数式的编程风格。机器学习算法千差万别,最为清晰的做法是针对不同算法采用不同的范式。有时将函数作为参数传入很有用处,而有时我们则需要再对象中捕获状态。对于这两种方式,Python都比较好的予以支持。
   多平台和开源免费
   Python有一个针对所有主流平台的单一参考实现,并且对所有的平台都是免费的。Linux和Mac系统一般都是自带Python的环境。Windows需要自行安装,从visual studio 2013开始,微软平台也开始支持Python的开发功能。
        
   在这里还有一个需要格外注意的事情,对于Python来言,Python 解释器不是完全线程安全的。在Python 多线程当中,存在一个叫Global Interpreter Lock(GIL)的东西,直译就是全局解释器锁。它的作用在于让同一时刻只能有一个线程对于python对象进行操作。Python已经提供了各种机制让我们进行多线程同步,为什么又要整这个GIL呢?这是因为程序员控制的同步是对各个程序中可见的变量,而GIL同步的是解释器后台的不可见变量,比如为了进行垃圾回收而维护的引用计数。如果没有GIL,有可能出现由于线程切换导致的对同一个对象释放两次的情况。这点需要格外注意。
        
   关于为什么要用Python也可以参照如下的两篇博客描述
   为什么要使用Python:http://blog.csdn.net/caimouse/ ... 50045
   为什么我们要用Python:http://www.cnblogs.com/huxi/ar ... .html
   Python 论优缺点:http://www.cnblogs.com/xupeizh ... .html
   Python线程状态和全局解释器锁:http://blog.csdn.net/cglover/a ... 66450
   额外追加一张Python与Java的一个实现对比:
   来源网站:http://spark.apache.org/examples.html
   
1.png


2.png

     
   另外:我个人感觉Java很笨重,各种依赖包每次都要折腾很久,即使有Maven。
=====================华丽的分割线===========================
   说了Python的好处,我们来说python与hadoop的关系,与其说python与hadoop的关系,不如说是python与数据处理之间的关系,python的优势就是处理各种数据,简洁,快速,易实现,因此,如果你想从事大数据库开发,学会python对你是有很多好处的,至少可以借鉴下它的编程思想。
 
2

seng - 从事BI、大数据、数据分析工作 2015-09-18 回答

Python在数据挖掘、分析上有很多现成的代码,可以直接使用,这个对高效开发很有帮助。
同时在Spark最新的版本里面Python的接口也和Scalar一致了,虽然现在Hadoop和Spark之争也不知道结果,但是Python作为一种粘合剂的语言,应用越来越多了。

要回复问题请先登录注册