我看分布式--hadoop的了解

2019-03-27 01:06|来源: 网路

1.首先来谈谈分布式,分布式就必然有整合搜索。搜索分两部分。一是分布,二是搜索,分布-分为,本机磁盘文件分布和查询,和,网络集群文件分布和查询。搜索在分布式上就是
基于网络集群的搜索和整合以及算法优化。这样淘宝他们更需要自己的系统LINUX。自己的文件分布程序(可分布式的)Hadoop(淘宝版HDFS)。和自己的搜索引擎程序(Lucene或Nutch)
Nutch本来了Hadoop就是兄弟。相互支持的。


HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。

有人数Nutch比Heritrix好使用。更坚定了我的信心。

有人说Hadoop的MapReduce 支持的NOSQL比数据库原理退步60年。但是Oracle和淘宝,facebook,yahoo等大公司对还使用证明。我学习绝对没坏处。而且Hadoop是我目前所能找到的自己
最应该走的路。没有最好的了。


Lucene、Compass、Nutch、hadoop、Heritrix、solr  学这些东西有没有什么先后顺序?
以上要么是搜索引擎,要么是支持搜索引擎的分布式系统。对我来说。我Lucene、的学习要放在理解Linux和Hadoop才应该去看。现在过早去想。无济于事。


所以说。不论是Linux的学习。还是分布式的学习。都结合在了Hadoop这条最优的道路上。你仔细想想,不搞应用开发(需要某一行业的专业研究)就搞核心(算法)还能搞
WEB程序和游戏应用以及手机应用(可是不是特别适合长期的考虑。)所以只有分布式。20年的大潮来了。能不能跟上决定你的一生。加油吧哥们。

 

基于实际来看。你的首要任务还是学习好WEB程序和游戏应用以及手机应用。 这样保证你不论怎样是走在前端。然后考研搞搞算法。弄好算法基础。
这样有了这些经验,更好走你的分布式开发之路。


长远目前已经订了。就看看你自己够不够努力吧。

 


还有根据今天得到的Oracle公司对于java的未来10年的转型,说实话。我很幸运有java基础。而且明智的改行C#了。不过两者都不要放弃。各方面都有特色。
而且只有学到本质才有用。像你现在没有用的。加油吧。


众所周知,Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch与Hadoop本是同门师兄,从0.X版本开始,为了解决Nutch的海量数据爬取和存储的需要,Hadoop便自立门户,从Nutch中剥离出来成为一个开源子项目。Hadoop其实并非一个单纯用于存储的分布式文件系统,而是一个被设计用来在由普通硬件设备组成的大型集群上执行分布式应用的框架。Hadoop由两部分组成,包括一个分布式文件系统HDFS和一个MapReduce实现。简而言之,Hadoop的核心目标是为开发分布式应用提供一个框架。HDFS采用master/slave架构。一个HDFS集群是有一个Namenode和一定数目的Datanode组成。HDFS支持传统的层次型文件组织,与大多数其他文件系统类似,用户可以创建目录,并在其间创建、删除、移动和重命名文件。

  Hadoop的应用案例:Nutch与Hadoop携手 海量数据搜索的分布式检索构架

  Nutch正是基于Hadoop开发的一个应用。基于Nutch的分布式搜索引擎的架构可以分割为分布式爬虫器、分布式文件存储系统(HDFS)、检索服务系统(Searcher)等几部分。分布式爬虫器的工作流程为:首先Crawler根据WebDB生成一个待抓取网页的URL集合叫做Fetchlist,接着下载线程Fetcher会开始根据Fetchlist网页抓取回来。在Nutch中,Crawler操作的实现是通过一系列子操作的实现来完成的。Nutch爬取的文件按块存放在搭建好的HDFS上,值得注意的是Nutch分布式检索服务于HDFS是没有关系的,提供检索服务的索引块存放在local文件系统中,而不是HDFS上。

  将Nutch的优势和Hadoop相结合,就可以提供一个支持海量数据搜索的分布式检索构架。其主要流程为:

  1、采用Heritrix爬取网页文本;

  2、得到的数据写入Nutch的Segments,交由HDFS存储。

  3、在Segments的基础上做链接分析和文本抽取工作。

  4、构建分布式索引分发机制和更新机制;

  5、利用Nutch提供分布式检索。

  6、Hadoop底层实现原理

  典型的Hadoop离线分析系统架构

  实时数据分析一般用于金融、移动和互联网B2C等产品,往往要求在数秒内返回上亿行数据的分析,要满足这样的需求,可以采用精心设计的传统关系型数据库组成并行处理集群,但需要耗费比较高的软硬件成本。目前比较新的海量数据实时分析工具有EMC的Greenplum、SAP的HANA等。

  对于大多数反馈时间要求不是那么严苛的应用,比如离线统计分析、机器学习、搜索引擎的反向索引计算、推荐引擎的计算等,应采用离线分析的方式,通过数据采集工具将日志数据导入专用的分析平台。但面对海量数据,传统的ETL工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook 开源的Scribe、LinkedIn开源的Kafka、淘宝开源的Timetunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求,并将这些数据上载到Hadoop中央系统上。

  按照大数据的数据量,分为内存级别、BI级别、海量级别三种。

 

 

 

 


转自:http://www.cnblogs.com/mahaisong/archive/2012/04/01/2428994

相关问答

更多
  • 1、能搭好环境说明水平还不错。 2、下边应该分以下几步走: 一,依据示例程序,自己手写wordcount之类的示例程序,以此充分了解m/r和hdfs的简单原理。 二,针对某些知识点,如hadoop应用场景、hadoop的简单应用等,去百度一下搞定,这样的问题最关键、最需要做的。 三,深入阅读hadoop的源码,把框架的数据流或说工作流搞个大致清楚。 四,试着用hadoop解决一些实际问题和项目应用。 参考下吧。
  • 常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 GFS(Google File System) -------------------------------------- Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为 ...
  • 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后去进行分布式运行(您也可以自己写java代码去设置job的configuration属性)。   若不拷贝,工程中bin目录没有完整的xml配置文件,则windows执行的mapreduce程序全部通过本机的jvm执行,作业名也是带有“local"字眼的作业,如 job_local2062122004_0001。 这不是真正的分布式运行mapred ...
  • 搭建的文本,很久了,现在更新的最新版本搭建更加简单,建议你去看看黑马里边的教程,免费的
  • 在 /usr/local/hadoop/ 下面启动,找到是/opt/Hadoop/下面的hadoop安装包,是不是HADOOP_HOME环境变量配置的有问题。 可以到海牛部落交流,那里有好多学习hadoop的朋友
  • hadoop集群指的是一群机器在一起提供一个hadoop的集群的服务。 hadoop分布式指的是hadoop支持任务分布式运行,因为有hadoop集群提供服务,所以hadoop将任务分发到集群的多台机器运行,所以叫做分布式。 一个是服务器架构,一个是任务运行架构。
  • 一、DFS为何物? DFS 即微软分布式文件系统的简称,系统管理员可以利用它来有效的整合网络资源,并把这些资源以单一的层次结构呈现给网络用户。管理员利用它可以把资源发布成一 个树形结构,这样大大简化了为用户进行资源配置和对资源管理的工作量。我们可以在不同的机器上调整和移动文件,这不会影响到用户的访问。 二、为什么要使用DES? 1、DFS使用了现有网络中的Share权限,管理员不必进行新的配置 2、通过一个DFS树形结构用户就可以访问多个网络资源,而不用再把远程驱动器映射到本地共享资源中。 3、DFS可以配 ...
  • 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。 故名思义,分布式 ...
  • 要知道您是以独立还是伪分布模式运行hadoop,请验证您的配置文件。 以下信息可能有帮助。 To know if you are running hadoop in Standalone or Pseudo distributed mode, verify your configuration files. Below information might help.
  • 是的,文件通过网络传输,通常是通过HDFS传输。 与使用HDFS进行非数据本地任务相比,它不会对网络造成任何压力。 如果文件很大,可能会出现网络拥塞,但是你已经把你的jar推送到所有这些任务跟踪器,所以只要你的文件不比你的文件大得多,你的开销就不应该是太糟糕了。 文件的复制与最终将拉动此文件的任务跟踪器的数量完全分开。 复制也将从一个节点链接到另一个节点,无论如何都是具有容错分布式文件系统的成本。 同样,网络拥塞不再是将jar推送到所有任务跟踪器的问题,假设分布式缓存中的文件与jar的大小相同。 总的来说, ...