本篇文章给大家分享的是有关如何安装与使用Hadoop组件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联公司服务项目包括越城网站建设、越城网站制作、越城网页制作以及越城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,越城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到越城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!安装hbase
首先下载hbase的最新稳定版本
安装到本地目录中,我安装的是当前用户的hadoop/hbase中
tar -zxvf hbase-0.90.4.tar.gz
单机模式
修改配置文件
conf/hbase_env.sh
配置JDK的路径
修改conf/hbase-site.xml
hbase.rootdir
file:///home/${user.name}/hbase-tmp
完成后启动
bin/start-hbase.sh
启动后
starting master, logging to/home/lgstar888/hadoop/hbase0.9/bin/../logs/hbase-lgstar888-master-ubuntu.out
然后执行
bin/hbase shell
输入status
如果输入exit则退出
Hadoop与Google一样,都是小孩命名的,是一个虚构的名字,没有特别的含义。从计算机专业的角度看,Hadoop是一个分布式系统基础架构,由Apache基金会开发。Hadoop的主要目标是对分布式环境下的“大数据”以一种可靠、高效、可伸缩的方式处理。设想一个场景,假如您需要grep一个100TB的大数据文件,按照传统的方式,会花费很长时间,而这正是Hadoop所需要考虑的效率问题。
关于Hadoop的结构,有各种不同的说法。我们这里简单的理解为Hadoop主要由三部分组成:HDFS(HadoopDistributed File System),MapReduce与Hbase。
1.Hadoop组件之一:HDFS分布式文件系统具有哪些优点?
HDFS作为一种分布式文件系统,它和现有的分布式文件系统有很多共同点。比如,Hadoop文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。对于Client端而言,HDFS就像一个传统的分级文件系统,可以创建、删除、移动或重命名文件等等。与此同时,HDFS与其他的分布式文件系统的区别也是显而易见的。
首先,HDFS设计目标之一是适合运行在通用硬件(commodityhardware)上的分布式文件系统。HDFS假设的硬件错误不是异常,而是常态。因为HDFS面向的是成百上千的服务器集群,每台服务器上存储着文件系统的部分数据,并且这些机器的价格都很低廉。这就意味着总是有一部分硬件因各种原因而无法工作。因此,错误检测和快速、自动的恢复是HDFS最核心的架构目标。从这个角度说,HDFS具有高度的容错性。
第二,HDFS的另一个设计目标是支持大文件存储。与普通的应用不同,HDFS应用具有很大的数据集,一个典型HDFS文件大小一般都在G字节至T字节。这就意味着HDFS应该能提供比较高的数据传输带宽与数据访问吞吐量。相应的,HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据。
第三,HDFS还要解决的一个问题是高数据吞吐量。HDFS采用的是“一次性写,多次读”这种简单的数据一致性模型。换句话说,文件一旦建立后写入,就不需要再更改了。网络爬虫程序就很适合使用这样的模型。
第四,移动计算环境比移动数据划算。HDFS提供了API,以便把计算环境移动到数据存储的地方,而不是把数据传输到计算环境运行的地方。这对于数据大文件尤其适用,可以有效减少网络的拥塞、提高系统的吞吐量。
HDFS的体系结构与工作流程
下面简单看一下HDFS的结构。图1所示为HDFS的体系结构图。HDFS采用的是Master/Slave架构。
NameNode节点作为Master服务器,有三部分功能。第一:处理来自客户端的文件访问。第二:管理文件系统的命名空间操作,如'打开'、'关闭'、'重命名'等。第三:负责数据块到数据节点之间的映射。从这个意义上说,它扮演中心服务器的角色。
DataNode节点作为Slave服务器,同样有三部分功能。第一:管理挂载在节点上的存储设备。第二:响应客户端的读写请求。第三:从内部看,每个文件被分成一个或多个数据块,被存放到一组DataNode,在Namenode的统一调度下进行数据块的创建、删除和复制。
图1 HDFS体系结构图
HDFS采用Java语言开发,因此任何支持Java的机器都可以部署Namenode或Datanode。相应地,GNU/Linux操作系统支持Namenode与Datanode。一个典型的部署场景是,一台GNU/Linux操作系统上运行一个Namenode实例,作为Master中心服务器。而集群中的其它GNU/Linux操作系统分别运行一个Datanode实例,作为Slave服务器集群。
2.Hadoop组件之二:什么是MapReduce编程模型,MapReduce的工作流程是什么?
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。MapReduce的设计目标是方便编程人员在不熟悉分布式并行编程的情况下,将自己的程序运行在分布式系统上。
MapReduce的命名规则由两个术语组成,分别是Map(映射)与Reduce(化简)。这些术语来自于列表处理语言,如:LISP,Scheme,或ML。从概念上来讲,MapReduce将输入元素列表(InputList)转换成输出元素列表(Output List),按照Map与Reduce规则各一次。
从MapReduce框架的实现角度看,MapReduce程序有着两个组件:一个实现了Mapper,另一个实现了Reducer。
第一次叫Mapping,如图2所示。MapReduce将InputList作为Mapping函数的输入参数,经过处理,把结果返回给OutputList。举例来说,有一个函数toUpper(str),用来返回输入字符串的大写版本。那么这里的InputList指的是转换前的常规字符串列表,Mapping Function指的是toUpper函数,而OutputList指的是转换后的大写字符串列表。值得注意的是,在这里Mapping并没有改变输入字符串列表,而是返回一个新的字符串列表。
图2 Map函数处理
第二次叫Reducing,如图3所示。MapReduce将InputList作为Reducing函数的输入参数,经过迭代处理,把这些数据汇集,返回一个输出值给OutputValue。从这个意义上来说,Reducing一般用来生成”总结“数据,把大规模的数据转变成更小的总结数据。例如,"+"可以用来作一个reducing函数,去返回输入数据列表的值的总和。
图3 Reduce函数处理
从工作流程来讲,MapReduce对应的作业Job首先把输入的数据集切分为若干独立的数据块,并由Map组件以Task的方式并行处理。处理结果经过排序后,依次输入给Reduce组件,并且以Task的形式并行处理。MapReduce对应的输入输出数据由HDFS的DataNode存储。MapReduce对应的Job部署在Master服务器,由MasterJobTracker负责Task的调度,监控,重新执行失败的任务等等。MapReduce对应的Job部署在若干不同的Slave服务器,每个集群节点含一个slave TaskTracker,负责执行由master指派的任务。
Hadoop框架由Java实现的,它提供了两种主要工具。HadoopStreaming是一种运行作业的实用工具,它允许用户创建和运行任何可执行程序(例如:Shell工具)来做为mapper和reducer。Hadoop Pipes是一个与SWIG兼容的C++ API(没有基于JNITM技术),它也可用于实现Map/Reduce应用程序。这样,开发人员就可以利用MapReduce框架,开发分布式应用程序,运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。
Hadoop为企业来带了什么?
如今,“大数据”这一术语在IT经理人中变得越来越流行。美国国家海洋与大气管理局NOAA利用“大数据”进行气象、生态系统、天气和商务研究。《纽约时报》使用“大数据”工具进行文本分析和Web信息挖掘。迪斯尼则利用它们关联和了解跨不同商店、主题公园和Web资产的客户行为。
“大数据”不仅适用于大型企业,而是适用于各种不同规模的企业。例如,通过评估某位客户在网站上的行为,来更好地了解他们需要什么支持或寻找什么产品,或者弄清当前天气和其他条件对于送货路线和时间安排的影响。
面对“大数据”,Hadoop为揭示深奥的企业与外部数据的关键内幕提供了基础。从技术上看,Hadoop分布式文件系统(HDFS)保证了大数据的可靠存储,而另一Hadoop核心组件MapReduce则提供高性能并行数据处理服务。这两项服务提供了一个使对结构化和复杂“大数据”的快速、可靠分析变为现实的基础。
Hadoop已经迅速成长为选的、适用于非结构化数据的大数据分析解决方案。基于Hadoop、利用商品化硬件对海量的结构化和非结构化数据进行批处理,给数据分析领域带来了深刻的变化。通过挖掘机器产生的非结构化数据中蕴藏的知识,企业可以做出更好的决策,促进收入增长,改善服务,降低成本。
Google与Hadoop有着千丝万缕的联系。如前所述,Hadoop主要是由HDFS、MapReduce和Hbase组成。而HDFS是Google File System(GFS)的开源实现,MapReduce是GoogleMapReduce的开源实现,HBase是GoogleBigTable的开源实现。Hadoop分布式框架很有创造性,而且有极大的扩展性,使得Google在系统吞吐量上有很大的竞争力。因此Apache基金会用Java实现了一个开源版本,支持Fedora、Ubuntu等Linux平台。
考虑到Hadoop在应对大规模非结构型数据中所起到的重要作用,微软也不得不放下架子,近日宣布开发一个兼容WindowsServer与Windows Azure平台的Hadoop开源版本。
IBM宣布在Hadoop上建立新的存储架构,作为群集运行DB2或Oracle数据库,目的是让应用程序,支持高性能分析,数据仓库应用程序和云计算的目的。
EMC也推出了世界上第一个定制的、高性能的Hadoop专用数据协同处理设备——GreenplumHD数据计算设备,为客户提供了最强大、最高效率的方法,充分挖掘大数据的价值。
互联网搜索巨头百度也在考虑使用Hadoop。不过,出于性能与安全的考虑,百度在采用Hadoop架构的时候,将Hadoop计算层进行了重新编写。
总结:
Hadoop作为一种分布式基础架构,可以使用户在不了解分布式底层细节的情况下,开发分布式程序。
以上就是如何安装与使用Hadoop组件,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。