`
qindongliang1922
  • 浏览: 2188722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117664
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126072
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60033
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71401
社区版块
存档分类
最新评论

hadoop常见问题解答(转)

阅读更多



(1)Hadoop适不适用于电子政务?为什么?
电子政务是利用互联网技术实现政府组织结构和工作流程的重组优化,建成一个精简、高效、廉洁、公平的政府运作信息服务平台。因此电子政务肯定会产生相关的大量数据以及相应的计算需求,而这两种需求涉及的数据和计算达到一定规模时传统的系统架构将不能满足,就需要借助海量数据处理平台,例如Hadoop技术,因此可以利用Hadoop技术来构建电子政务云平台。
总结一下,任何系统没有绝对的适合和不适合,只有当需求出现时才可以决定,在一个非常小的电子政务系统上如果没有打数据处理以及计算分析需求时就不需要hadoop这样的技术,而实际上,商用的电子政务平台往往涉及到大规模的数据和大量的计算分析处理需求,因此就需要Hadoop这样的技术来解决。


(2)hadoop对于实时在线处理有优势吗?
直接使用hadoop进行实时处理时没有优势的,因为Hadoop主要解决的是海量批处理作业计算问题,但是可以使用基于Hadoop的分布式NOSQL系统HBase系统以及相关实时处理系统:
1.  基于Hadoop的HBase可以做到实时处理以及相关需求的实时计算,主要解决海量<key,value>相关查询计算等需求。
2.  可以考虑Spark计算,Spark是基于共现内存RDD的系统,比Hadoop更快,时候迭代式计算,例如数据挖掘,机器学习算法等。
3. 还有Storm,Storm是一个免费开源、分布式、高容错的实时计算系统,Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。
4. 考虑S4, S4是Yahoo!在2010年10月开源的一套通用、分布式、可扩展、部分容错、具备可插拔功能的平台。这套平台主要是为了方便开发者开发处理流式数据(continuous unbounded streams of data)的应用。
你可以依据实际的需求来选择合适的系统。

(3)Hadoop存储海量数据没有问题,但是如何能够做到海量数据的实时检索?

1,可以结合开源的搜索引擎Apache Lucene,Solr 或ElasticSearch
2,海量数据的实时检索可以考虑HBase,建议可以使用hadoop将数据构建成以查询key为键的数据集,然后将<key, value>集合写入Hbase表中,Hbase会自动以key为键进行索引,在数十亿甚至以上的级别下,查询key的value响应时间也估计再10毫秒内。
如果检索条件是多个组合的情况下,可以适当的设计多个hbase表格,这样的检索也是很快的,同时Hbase也是支持二级索引。在符合条件下查询,Hbase也是支持MapReduce的,如果对响应时间要求不高的情况下,可以考虑将hive和Hbase系统结合来使用。
如果数据量不是很大的情况下也可以考虑支持类似SQL的NOSLQ系统。

(4)能不能给点hadoop的学习方法以及学习规划,hadoop系统有点庞大,感觉无从学起?
首先搞清楚什么是hadoop以及hadoop可以用来做什么?
然后,可以从最经典的词频统计程序开始,初步了解MapReduce的基本思路和处理数据的方式。
接着,就可以正式学习hadoop的基本原理,包括HDFS和MapReduce,先从整体,宏观核心原理看,先别看源码级别。
进一步,就可以深入HDFS和MapReduce和模块细节,这个时候可以结合源码深入理解,以及实现机制。
最后就是需要实战了,可以结合自己的项目或者相关需求来完成一些hadoop相关应用。

(5) 大的文件拆分成很多小的文件后,怎样用Hadoop进行高效的处理这些小文件?以及怎样让各个节点尽可能的负载均衡?

1. 怎样用Hadoop进行高效的处理这些小文件?
你这个问题提的很好,hadoop在处理大规模数据时是很高效的,但是处理大量的小文件时就会因为系统资源开销过大而导致效率较低,针对这样的问题,可以将小文件打包为大文件,例如使用SequcenFile文件格式,例如以文件签名为key,文件内容本身为value写成SequcenFile文件的一条记录,这样多个小文件就可以通过SequcenFile文件格式变为一个大文件,之前的每个小文件都会映射为SequcenFile文件的一条记录。
2. 怎样让各个节点尽可能的负载均衡?
在hadoop集群中负载均衡是非常关键的,这种情况的导致往往是因为用户的数据分布的并不均衡,而计算资源槽位数确实均衡分布在每个节点,这样在作业运行时非本地任务会有大量的数据传输,从而导致集群负载不均衡,因此解决不均衡的要点就是将用户的数据分布均衡,可以使用hadoop内置的balancer脚本命令。
对于因为资源调度导致的不均衡则需要考虑具体的调度算法和作业分配机制。


(6)c/c++ 程序员如何入门Hadoop到深入了解,并在Linux服务器上布置运用,有没有方向性的指导?

针对C/C++用户,Hadoop提供了hadoop streaming接口和pipes接口,hadoop streaming接口以标准输入和标准输出作为用户程序和hadoop框架交互的中间件,pipes这是专门针对C/C++语言的接口,以socket作为同学中介。
从使用上建议从streaming入手,pipes相比streaming问题比较多,而且pipes调试不容易。

(7)现在企业中使用Hadoop版本主要是1.x还是2.x?
目前百度,腾讯,阿里为主的互联网公司都是以hadoop 1.X为基准版本的,当然每个公司都会进行自定义的二次开发以满足不同的集群需求。
2.X在百度内部还没有正式使用,还是以1.X为主,不过百度针对1.X的问题开发了HCE系统(Hadoop C++ Expand系统)

补充,Hadoop2.x在其他公司应用的很多,比如京东等


(8)以后想从事大数据方面工作,算法要掌握到什么程度,算法占主要部分吗?
首先,如果要从事大数据相关领域的话,hadoop是作为工具来使用的,首先需要掌握使用方法。可以不用深入到hadoop源码级别细节。
然后就是对算法的理解,往往需要设计到数据挖掘算法的分布式实现,而算法本身你还是需要理解的,例如常用的k-means聚类等。


(9)现在spark,storm越来越火,谷歌也发布了Cloud Dataflow,是不是Hadoop以后主要应该学习hdfs和yarn,而且以后Hadoop程序员的主要做的就是把这些东西打包,只提供接口让普通的程序员也能使用,就像Cloudera和Google一样?

这位同学,你多虑了,hadoop和spark, strom是解决不同的问题,不存在哪个好那个坏,要学习Hadoop还是以主流的hadoop-1.X为版本,2.X最主要的就是多了yarn框架,很好理解的。

如果你是hadoop本身研发建议都看,如果你是hadoop应用相关研发,看主流的1.X就行,我的书《Hadoop核心技术》是以主流的1.X为版本讲解的,有兴趣可以看看。


(10)小白问一句,大数据处理都是服务器上安装相关软件吗,对程序有什么影响呢,集群、大数据是属于运维的工作内容还是攻城狮的呢?

传统的程序只能运行在单机上,而大数据处理这往往使用分布式编程框架编写,例如hadoop mapreduce,只能运行在hadoop集群平台上。
运维的责任:保证集群,机器的稳定性和可靠性
hadoop系统本身研发:提高Hadoop集群的性能,增加新功能。
大数据应用:把hadoop作为工具,去实现海量数据处理或者相关需求。

(11)学习hadoop该怎么入手呢?应该做一些什么样的项目呢?
可以参考我上面的几个回答,可以从最简单词频统计程序入手,然后学习理解HDFS和MapReduce的基本原理和核心机制,如果仅仅把Hadoop作为一个工具来使用的话这样就可以了,最重要的就是实战了,可以尝试使用Hadoop处理一些数据,例如做日志分析,数据统计,排序,倒排索引等典型应用。

(12)100个以上hadoop节点,一般怎么开发,运维?任务很多的情况下任务资源怎么分配,任务执行顺序是定时脚本还是别的什么方式控制?
1. 首先大数据的应用开发和hadoop集群的规模是没有关系,你指的是集群的搭建和运维吗,对于商用的hadoop系统来说涉及到很多东西,建议参考《hadoop核心技术》实战篇 “第10章 Hadoop集群搭建 ” 章节。
2. 任务的分配是有hadoop的调度器的调度策略决定的,默认为FIFO调度,商业集群一般使用多队列多用户调度器,可以参考参考《hadoop核心技术》高级篇 “第9章 Hadoop作业调度系统” 章节。
3. 任务的执行顺序是有用户控制的,你自然可以定时启动,也可以手动启动。

(13)基于Hadoop做开发,是否必须会使用Java,使用其他开发语言是否无法更好的融入整个Hadoop的开发体系?

基于Hadoop做开发可以使用任何语言,因为hadoop提高了streaming编程框架和pipes编程接口,streaming框架下用户可以使用任何可以操作标准输入输出的计算机语言来开发hadoop应用。


(14)在reduce阶段老是卡在最后阶段很长时间,在网上查的说是有可能是数据倾斜,我想问这个有啥解决方法吗?

1,你这个就是数据倾斜啊   好多数据都集中在一个reduce里   其他reduce里分配的数据比较少   默认情况下决定哪些数据分配到哪个reduce是由reduce个数和partiiton分区决定的  默认是对key进行hash运算   一般情况下用mapreuce倾斜很少  除非你用的HIVE

2,reduce分为3个子阶段:shuffle、sort和reduce,如果reduce整个过程耗时较长,建议先看一下监控界面是卡在哪个阶段,如果是卡在shuffle阶段往往是网络阻塞问题,还有就是某reduce数据量太大,也就是你所说的数据倾斜问题,这种问题往往因为某个key的value太多,解决方法是:第一,默认的partiiton可能不适合你的需求,你可以自定义partiiton;第二就是在map端截断,尽量让达到每个reduce端的数据分布均匀。


(15)非大数据的项目能否用hadoop?
非大数据项目是否可以用Hadoop的关键问题在于是否有海量数据的存储,计算,以及分析挖掘等需求,如果现有系统已经很好满足当前需求那么就没有必要使用Hadoop,没有必要使用并不意味这不能使用Hadoop,很多传统系统能做的Hadoop也是可以做的,例如使用HDFS来代替LINUX NFS,使用MapReduce来代替单服务器的统计分析相关任务,使用Hbase代替Mysql等关系数据库等,在数据量不大的情况下通常Hadoop集群肯定比传统系统消耗更多的资源。

(16)hadoop mapreduce 和第三方资源管理调度系统如何集成?
Hadoop的调度器设计的一个原则就是可插拔式调度器框架,因此是很容易和第三方调度器集成的,例如公平调度器FairScheduler和容量调度器CapacityScheduler,并配置mapred-site.xml的mapreduce.jobtracker.taskscheduler以及调度器本身的配置参数,例如公平调度器控制参数则需要编辑fair- scheduler.xml进行配置,具体可以参考我的新书《Hadoop核心技术》实战篇第十章节10.11的集群搭建实例中的10.10.9 配置第三方调度器,同时可以进一步深入学习第9章 Hadoop作业调度系统,在这一章中会详细介绍各种第三方调度器以及使用配置方法。



整理来自CSDN论坛,详情请点击 http://bbs.csdn.net/topics/391029366


欢迎大家扫码关注微信公众号:我是攻城师,我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!


  • 大小: 147.1 KB
1
1
分享到:
评论

相关推荐

    Hadoop 快速入门及常见问题

    总之,Hadoop是一个复杂但强大的工具,快速入门资料可以帮助初学者快速理解其基本原理和操作流程,而常见问题解答则可以解决实践中遇到的实际问题,进一步提高使用效率。这份资料对于希望在大数据领域工作或研究的人...

    Hadoop常见的45个面试题

    作为一个专业的IT大师,我很高兴为你解析Hadoop常见的45个面试题中的关键知识点。由于文件名仅给出面试题的文档,我们无法直接引用具体问题,但我们可以从Hadoop的核心组件、工作原理、应用案例等方面展开讨论,这些...

    hadoop基本问题.zip

    三、Hadoop常见问题及解决方案 1. 数据倾斜:当某些key过于集中,导致部分reduce节点负载过高。解决方法包括合理设计map和reduce函数,避免数据倾斜,或者使用更高级的计算框架如Spark。 2. 性能瓶颈:可能是网络...

    hadoop2.7.3+mahout0.9问题集

    - **查阅官方文档**:Hadoop和Mahout的官方文档通常提供了详细的配置指南和常见问题解答。 - **社区支持**:利用开源社区,如Stack Overflow、GitHub等,搜索类似问题的解决方案,或者直接提问寻求帮助。 - **代码...

    Hadoop书籍.rar

    常见的面试题目可能包括Hadoop架构、HDFS的HA(High Availability)、MapReduce的优化策略、YARN的工作原理等。 学习Hadoop,不仅要理解其基本概念,还需掌握其实战应用。通过阅读这些书籍和解答面试题,可以全面...

    Linuxhadoop集群安装

    最后,"Hadoop安装手册.pdf"很可能是官方或第三方编写的全面安装指南,包含更详细的步骤、最佳实践和常见问题解答。这份手册可能涵盖单机模式、伪分布式模式和完全分布式模式的安装,以及如何进行故障排查。 总的来...

    hadoop3.1.3学习资料

    Hadoop 3.1.3 是一个开源框架,主要用于分布式存储和处理大数据。这个学习资料包含的"笔记"可能涵盖了Hadoop的核心组件...笔记可能会涵盖这些问题的解决方案、案例研究以及常见问题解答,帮助你快速掌握Hadoop的使用。

    Hadoop - Hadoop Streaming

    ### 常见问题解答 1. **如何指定自定义的 Mapper 和 Reducer?** - 可以使用 `-mapper` 和 `-reducer` 参数指定自定义程序。 2. **如何处理大型输入文件?** - 使用 `-archive` 选项将大型文件打包成归档文件。 ...

    Hadoop就业面试宝典

    #### 五、面试常见问题解答 1. **Hive条件判断**: - Hive支持多种条件判断函数,如IF、COALESCE、CASE WHEN等。 2. **Hive SQL查询示例**: - 查询某网站日志中访问页面A和页面B的用户数量的语句: ```sql ...

    成功安装-安装hadoop遇到的问题

    通过调整配置,修复系统设置,或者查找官方文档和社区解答,可以逐步解决问题。 在博客中,作者可能详细记录了他们在安装过程中遇到的具体问题和解决方法,如遇到的问题.doc文件可能包含了这些内容。如果遇到类似...

    Hadoop参考资料

    Hadoop参考资料通常会包含以上所有信息,并可能附带示例代码、常见问题解答和最佳实践,帮助用户更好地理解和操作Hadoop系统。对于希望深入了解Hadoop以及大数据处理的人员来说,这份资料无疑是宝贵的参考资料。

    eclipse-hadoop2.7.0插件.zip

    而"README.txt"文件通常包含了安装和使用插件的指南,可能包括了具体的步骤、注意事项或者常见问题解答。 安装步骤通常是这样的: 1. 找到你的Eclipse安装目录,通常是在“Program Files”或相应用户目录下。 2. ...

    hadoop-2.4.0.tar.gz

    - Apache Hadoop的官方文档提供了详细的使用指南和技术参考,包括常见问题解答和最佳实践。 - 社区论坛和邮件列表是获取帮助和支持的重要途径。 总之,Hadoop 2.4.0的发布,不仅提升了Hadoop的性能和可扩展性,还...

    Hadoop2的HA配置一键运行脚本startall

    3. "教程重要说明.txt":这是一个关于如何使用该脚本或者配置Hadoop HA的重要指南,可能包含了一些注意事项和常见问题的解答。 4. "Linux公社www.linuxidc.com.url":这可能是一个链接,指向一个提供更详细教程或...

    hadoop2.2+hbase0.96+hive0.12安装整合详细高可靠文档及经验总结

    综上所述,本文详细介绍了如何安装和整合Hadoop2.2、HBase0.96和Hive0.12,并提供了一些常见的问题解决方案。对于初次接触这些技术的新手来说,遵循上述步骤可以大大减少安装过程中可能出现的问题。此外,对于那些...

    Hadoop实战中文pdf下载

    《开发者中文社区.txt》可能包含了一些关于Hadoop开发者社区的信息,这可能是作者或出版方提供的额外资源,如社区论坛链接、常见问题解答或者开发者交流平台。对于学习Hadoop的人来说,这些社区资源是非常宝贵的,...

    Hadoop实战.Hadoop.in.Action.Chuck.Lam.文字版

    - **常见问题**:总结并解答在开发过程中遇到的问题。 - **性能调优**:介绍如何优化MapReduce程序以提高执行效率。 ##### 2.4 烹饪书式指南 - **实用技巧**:针对特定场景提供实用的编程技巧。 - **示例代码**:...

    hadoop插件.rar

    - **常见问题解答**:解决用户在安装或使用过程中可能遇到的问题。 通过这个“hadoop插件.rar”,开发者可以在Eclipse环境中实现无缝集成Hadoop开发,提升开发效率,减少在开发和测试过程中不必要的麻烦。对于学习...

    Hadoop学习文档.pdf

    其他知识点还包括了数据采集、运维工具的使用、Hadoop相关资源的收集、Hadoop常见问题解答(FAQ)等。 此外,文档中还提供了运维、Centos下的Oracle安装、基于Gradle的项目构建等实用信息,以及数据备份及恢复、...

    Hadoop实战中文版

    7. 最后,针对初学者可能会遇到的问题进行解答,可能包括性能调优、故障排查和维护等方面的实战经验分享。 由于文件中指出文章内容是通过OCR扫描技术提取的,可能存在识别错误或遗漏,这会影响我们对知识点的准确...

Global site tag (gtag.js) - Google Analytics