A. 大数据:Hadoop入门
什么是大数据:
(1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如关系型数据库,数据仓库等。这里“大”是一个什么量级呢?如在阿里巴巴每天处理数据达到20PB(即20971520GB).
2.大数据的特点:
(1.)体量巨大。按目前的发展趋势来看,大数据的体量已经到达PB级甚至EB级。
(2.)大数据的数据类型多样,以非结构化数据为主,如网络杂志,音频,视屏,图片,地理位置信息,交易数据,社交数据等。
(3.)价值密度低。有价值的数据仅占到总数据的一小部分。比如一段视屏中,仅有几秒的信息是有价值的。
(4.)产生和要求处理速度快。这是大数据区与传统数据挖掘最显著的特征。
3.除此之外还有其他处理系统可以处理大数据。
Hadoop (开源)
Spark(开源)
Storm(开源)
MongoDB(开源)
IBM PureDate(商用)
Oracle Exadata(商用)
SAP Hana(商用)
Teradata AsterData(商用)
EMC GreenPlum(商用)
HP Vertica(商用)
注:这里我们只介绍Hadoop。
二:Hadoop体系结构
Hadoop来源:
Hadoop源于Google在2003到2004年公布的关于GFS(Google File System),MapRece和BigTable的三篇论文,创始人Doug Cutting。Hadoop现在是Apache基金会顶级项目,“
Hadoop”一个虚构的名字。由Doug Cutting的孩子为其黄色玩具大象所命名。
Hadoop的核心:
(1.)HDFS和MapRece是Hadoop的两大核心。通过HDFS来实现对分布式储存的底层支持,达到高速并行读写与大容量的储存扩展。
(2.)通过MapRece实现对分布式任务进行处理程序支持,保证高速分区处理数据。
3.Hadoop子项目:
(1.)HDFS:分布式文件系统,整个Hadoop体系的基石。
(2.)MapRece/YARN:并行编程模型。YARN是第二代的MapRece框架,从Hadoop 0.23.01版本后,MapRece被重构,通常也称为MapRece V2,老MapRece也称为 MapRece V1。
(3.)Hive:建立在Hadoop上的数据仓库,提供类似SQL语音的查询方式,查询Hadoop中的数据,
(5.)HBase:全称Hadoop Database,Hadoop的分布式的,面向列的数据库,来源于Google的关于BigTable的论文,主要用于随机访问,实时读写的大数据。
(6.)ZooKeeper:是一个为分布式应用所设计的协调服务,主要为用户提供同步,配置管理,分组和命名等服务,减轻分布式应用程序所承担的协调任务。
还有其它特别多其它项目这里不做一一解释了。
三:安装Hadoop运行环境
用户创建:
(1.)创建Hadoop用户组,输入命令:
groupadd hadoop
(2.)创建hser用户,输入命令:
useradd –p hadoop hser
(3.)设置hser的密码,输入命令:
passwd hser
按提示输入两次密码
(4.)为hser用户添加权限,输入命令:
#修改权限
chmod 777 /etc/sudoers
#编辑sudoers
Gedit /etc/sudoers
#还原默认权限
chmod 440 /etc/sudoers
先修改sudoers 文件权限,并在文本编辑窗口中查找到行“root ALL=(ALL)”,紧跟后面更新加行“hser ALL=(ALL) ALL”,将hser添加到sudoers。添加完成后切记还原默认权限,否则系统将不允许使用sudo命令。
(5.)设置好后重启虚拟机,输入命令:
Sudo reboot
重启后切换到hser用户登录
安装JDK
(1.)下载jdk-7u67-linux-x64.rpm,并进入下载目录。
(2.)运行安装命令:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
完成后查看安装路径,输入命令:
Rpm –qa jdk –l
记住该路径,
(3.)配置环境变量,输入命令:
Sudo gedit /etc/profile
打开profile文件在文件最下面加入如下内容
export java_HOME=/usr/java/jdk.7.0.67
export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
export PATH=$ JAVA_HOME/bin:$PATH
保存后关闭文件,然后输入命令使环境变量生效:
Source /etc/profile
(4.)验证JDK,输入命令:
Java –version
若出现正确的版本则安装成功。
配置本机SSH免密码登录:
(1.)使用ssh-keygen 生成私钥与公钥文件,输入命令:
ssh-keygen –t rsa
(2.)私钥留在本机,公钥发给其它主机(现在是localhost)。输入命令:
ssh--id localhost
(3.)使用公钥来登录输入命令:
ssh localhost
配置其它主机SSH免密登录
(1.)克隆两次。在VMware左侧栏中选中虚拟机右击,在弹出的快捷键菜单中选中管理---克隆命令。在克隆类型时选中“创建完整克隆”,单击“下一步”,按钮直到完成。
(2.)分别启动并进入三台虚拟机,使用ifconfig查询个主机IP地址。
(3.)修改每台主机的hostname及hosts文件。
步骤1:修改hostname,分别在各主机中输入命令。
Sudo gedit /etc/sysconfig/network
步骤2:修改hosts文件:
sudo gedit /etc/hosts
步骤3:修改三台虚拟机的IP
第一台对应node1虚拟机的IP:192.168.1.130
第二台对应node2虚拟机的IP:192.168.1.131
第三台对应node3虚拟机的IP:192.168.1.132
(4.)由于已经在node1上生成过密钥对,所有现在只要在node1上输入命令:
ssh--id node2
ssh--id node3
这样就可以将node1的公钥发布到node2,node3。
(5.)测试SSH,在node1上输入命令:
ssh node2
#退出登录
exit
ssh node3
exit
四:Hadoop完全分布式安装
1. Hadoop有三种运行方式:
(1.)单机模式:无须配置,Hadoop被视为一个非分布式模式运行的独立Java进程
(2.)伪分布式:只有一个节点的集群,这个节点即是Master(主节点,主服务器)也是Slave(从节点,从服务器),可在此单节点上以不同的java进程模拟分布式中的各类节点
(3.)完全分布式:对于Hadoop,不同的系统会有不同的节点划分方式。
2.安装Hadoop
(1.)获取Hadoop压缩包hadoop-2.6.0.tar.gz,下载后可以使用VMWare Tools通过共享文件夹,或者使用Xftp工具传到node1。进入node1 将压缩包解压到/home/hser目录下,输入命令:
#进入HOME目录即:“/home/hser”
cd ~
tar –zxvf hadoop-2.6.0.tar.gz
(2.)重命名hadoop输入命令:
mv hadoop-2.6.0 hadoop
(3.)配置Hadoop环境变量,输入命令:
Sudo gedit /etc/profile
将以下脚本加到profile内:
#hadoop
export HADOOP_HOME=/home/hser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存关闭,最后输入命令使配置生效
source /etc/profile
注:node2,和node3都要按照以上配置进行配置。
3.配置Hadoop
(1.)hadoop-env.sh文件用于指定JDK路径。输入命令:
[hser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hser@node1 hadoop]$ gedit hadoop-env.sh
然后增加如下内容指定jDK路径。
export JAVA_HOME=/usr/java/jdk1.7.0_67
(2.)打开指定JDK路径,输入命令:
export JAVA_HOME=/usr/java/jdk1.7.0_67
(4.)core-site.xml:该文件是Hadoop全局配置,打开并在
B. 如何为大数据处理构建高性能Hadoop集群
越来越多的企业开始使用Hadoop来对大数据进行处理分析,但Hadoop集群的整体性能却取决于CPU、内存、网络以及存储之间的性能平衡。而在这篇文章中,我们将探讨如何为Hadoop集群构建高性能网络,这是对大数据进行处理分析的关键所在。
关于Hadoop
“大数据”是松散的数据集合,海量数据的不断增长迫使企业需要通过一种新的方式去管理。大数据是结构化或非结构化的多种数据类型的大集合。而 Hadoop则是Apache发布的软件架构,用以分析PB级的非结构化数据,并将其转换成其他应用程序可管理处理的形式。Hadoop使得对大数据处理成为可能,并能够帮助企业可从客户数据之中发掘新的商机。如果能够进行实时处理或者接近实时处理,那么其将为许多行业的用户提供强大的优势。
Hadoop是基于谷歌的MapRece和分布式文件系统原理而专门设计的,其可在通用的网络和服务器硬件上进行部署,并使之成为计算集群。
Hadoop模型
Hadoop的工作原理是将一个非常大的数据集切割成一个较小的单元,以能够被查询处理。同一个节点的计算资源用于并行查询处理。当任务处理结束后,其处理结果将被汇总并向用户报告,或者通过业务分析应用程序处理以进行进一步分析或仪表盘显示。
为了最大限度地减少处理时间,在此并行架构中,Hadoop“moves jobs to data”,而非像传统模式那样“moving data to jobs”。这就意味着,一旦数据存储在分布式系统之中,在实时搜索、查询或数据挖掘等操作时,如访问本地数据,在数据处理过程中,各节点之间将只有一个本地查询结果,这样可降低运营开支。
Hadoop的最大特点在于其内置的并行处理和线性扩展能力,提供对大型数据集查询并生成结果。在结构上,Hadoop主要有两个部分:
Hadoop分布式文件系统(HDFS)将数据文件切割成数据块,并将其存储在多个节点之内,以提供容错性和高性能。除了大量的多个节点的聚合I/O,性能通常取决于数据块的大小——如128MB。而传统的Linux系统下的较为典型的数据块大小可能是4KB。
MapRece引擎通过JobTracker节点接受来自客户端的分析工作,采用“分而治之”的方式来将一个较大的任务分解成多个较小的任务,然后分配给各个TaskTrack节点,并采用主站/从站的分布方式(具体如下图所示):
Hadoop系统有三个主要的功能节点:客户机、主机和从机。客户机将数据文件注入到系统之中,从系统中检索结果,以及通过系统的主机节点提交分析工作等。主机节点有两个基本作用:管理分布式文件系统中各节点以及从机节点的数据存储,以及管理Map/Rece从机节点的任务跟踪分配和任务处理。数据存储和分析处理的实际性能取决于运行数据节点和任务跟踪器的从机节点性能,而这些从机节点则由各自的主机节点负责沟通和控制。从节点通常有多个数据块,并在作业期间被分配处理多个任务。
部署实施Hadoop
各个节点硬件的主要要求是市县计算、内存、网络以及存储等四个资源的平衡。目前常用的并被誉为“最佳”的解决方案是采用相对较低成本的旧有硬件,部署足够多的服务器以应对任何可能的故障,并部署一个完整机架的系统。
Hadoop模式要求服务器与SAN或者NAS进行直接连接存储(DAS)。采用DAS主要有三个原因,在标准化配置的集群中,节点的缩放数以千计,随着存储系统的成本、低延迟性以及存储容量需求不断提高,简单配置和部署个主要的考虑因素。随着极具成本效益的1TB磁盘的普及,可使大型集群的TB级数据存储在DAS之上。这解决了传统方法利用SAN进行部署极其昂贵的困境,如此多的存储将使得Hadoop和数据存储出现一个令人望而却步的起始成本。有相当大一部分用户的Hadoop部署构建都是采用大容量的DAS服务器,其中数据节点大约1-2TB,名称控制节点大约在1-5TB之间,具体如下图所示:
来源:Brad Hedlund, DELL公司
对于大多数的Hadoop部署来说,基础设施的其他影响因素可能还取决于配件,如服务器内置的千兆以太网卡或千兆以太网交换机。上一代的CPU和内存等硬件的选择,可根据符合成本模型的需求,采用匹配数据传输速率要求的千兆以太网接口来构建低成本的解决方案。采用万兆以太网来部署Hadoop也是相当不错的选择。
万兆以太网对Hadoop集群的作用
千兆以太网的性能是制约Hadoop系统整体性能的一个主要因素。使用较大的数据块大小,例如,如果一个节点发生故障(甚至更糟,整个机架宕机),那么整个集群就需要对TB级的数据进行恢复,这就有可能会超过千兆以太网所能提供的网络带宽,进而使得整个集群性能下降。在拥有成千上万个节点的大型集群中,当运行某些需要数据节点之间需要进行中间结果再分配的工作负载时,在系统正常运行过程中,某个千兆以太网设备可能会遭遇网络拥堵。
每一个Hadoop数据节点的目标都必须实现CPU、内存、存储和网络资源的平衡。如果四者之中的任意一个性能相对较差的话,那么系统的潜在处理能力都有可能遭遇瓶颈。添加更多的CPU和内存组建,将影响存储和网络的平衡,如何使Hadoop集群节点在处理数据时更有效率,减少结果,并在Hadoop集群内添加更多的HDFS存储节点。
幸运的是,影响CPU和内存发展的摩尔定律,同样也正影响着存储技术(TB级容量的磁盘)和以太网技术(从千兆向万兆甚至更高)的发展。预先升级系统组件(如多核处理器、每节点5-20TB容量的磁盘,64-128GB内存),万兆以太网卡和交换机等网络组件是重新平衡资源最合理的选择。万兆以太网将在Hadoop集群证明其价值,高水平的网络利用率将带来效益更高的带宽。下图展示了Hadoop集群与万兆以太网的连接:
许多企业级数据中心已经迁移到10GbE网络,以实现服务器整合和服务器虚拟化。随着越来越多企业开始部署Hadoop,他们发现他们完全不必要大批量部署1U的机架服务器,而是部署更少,但性能更高的服务器,以方便扩展每个数据节点所能运行的任务数量。很多企业选择部署2U或4U的服务器(如戴尔 PowerEdge C2100),每个节点大约12-16个核心以及24TB存储容量。在这种环境下的合理选择是充分利用已经部署的10GbE设备和Hadoop集群中的 10GbE网卡。
在日常的IT环境中构建一个简单的Hadoop集群。可以肯定的是,尽管有很多细节需要微调,但其基础是非常简单的。构建一个计算、存储和网络资源平衡的系统,对项目的成功至关重要。对于拥有密集节点的Hadoop集群而言,万兆以太网能够为计算和存储资源扩展提供与之相匹配的能力,且不会导致系统整体性能下降。
C. hadoop大数据处理架构的核心技术是什么
Hadoop核心架构,分为四个模块:
1、Hadoop通用:提供Hadoop模块所需要的Java类库和工具。
2、Hadoop YARN:提供任务调度和集群资源管理功能。
3、Hadoop HDFS:分布式文件系统,提供高吞吐量的应用程序数据访问方式。
4、Hadoop MapRece:大数据离线计算引擎,用于大规模数据集的并行处理。
特点:
Hadoop的高可靠性、高扩展性、高效性、高容错性,是Hadoop的优势所在,在十多年的发展历程当中,Hadoop依然被行业认可,占据着重要的市场地位。
Hadoop在大数据技术框架当中的地位重要,学大数据必学Hadoop,还要对Hadoop核心技术框架掌握扎实才行。
D. Hadoop在大数据中有什么作用
HDFS按照Master和Slave的结构。分为NameNode、SecondaryNameNode、DataNode这几个角色。
NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间。
SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage(元数据镜像文件,文件系统的目录树)和fsedits(元数据的操作日志,针对文件系统做的修改操作记录),然后再发给namenode。
DataNode:是Slave节点,是奴隶,干活的。负责存储客户端发来的block;执行block的读写操作。NameNode和DataNode之间的通信是通过心跳机制实现的。
Map(映射)任务处理:
读取HDFS中的文件。每一行解析成一个。每一个键值对调用一次map函数。map函数接收前面产生的,进行处理,转换为新的输出。对转换后的进行分区。对不同分区中的数据按key进行排序、分组。分组指的是相同key的value放到一个集合中。
Rece(归约)任务处理:
多个map任务的输出,按照不同的分区,通过网络到不同的rece节点上。对多个map的输出进行合并、排序。覆盖rece函数,接收的是分组后的数据,实现自己的业务逻辑,处理后,产生新的输出。对rece输出的写到HDFS中。
关于Hadoop在大数据中有什么作用,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章能够对你有所帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。
E. 如何进行大数据分析及处理
聚云化雨的处理方式
聚云:探码科技全面覆盖各类数据的处理应用。以数据为原料,通过网络数据采集、生产设备数据采集的方式将各种原始数据凝结成云,为客户打造强大的数据存储库;
化雨:利用模型算法和人工智能等技术对存储的数据进行计算整合让数据与算法产生质变反应化云为雨,让真正有价值的数据流动起来;
开渠引流,润物无声:将落下“雨水”汇合成数据湖泊,对数据进行标注与处理根据行业需求开渠引流,将一条一条的数据支流汇合集成数据应用中,为行业用户带来价值,做到春风化雨,润物无声。
F. 如何进行大数据分析及处理
聚云化雨的处理方式
聚云:探码科技全面覆盖各类数据的处理应用。以数据为原料,通过网络数据采集、生产设备数据采集的方式将各种原始数据凝结成云,为客户打造强大的数据存储库;
化雨:利用模型算法和人工智能等技术对存储的数据进行计算整合让数据与算法产生质变反应化云为雨,让真正有价值的数据流动起来;
开渠引流,润物无声:将落下“雨水”汇合成数据湖泊,对数据进行标注与处理根据行业需求开渠引流,将一条一条的数据支流汇合集成数据应用中,为行业用户带来价值,做到春风化雨,润物无声。
G. 如何让Hadoop结合R语言做大数据分析
R语言和Hadoop让我们体会到了,两种技术在各自领域的强大。很多开发人员在计算机的角度,都会提出下面2个问题。问题1: Hadoop的家族如此之强大,为什么还要结合R语言?x0dx0a问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么?下面我尝试着做一个解答:问题1: Hadoop的家族如此之强大,为什么还要结合R语言?x0dx0ax0dx0aa. Hadoop家族的强大之处,在于对大数据的处理,让原来的不可能(TB,PB数据量计算),成为了可能。x0dx0ab. R语言的强大之处,在于统计分析,在没有Hadoop之前,我们对于大数据的处理,要取样本,假设检验,做回归,长久以来R语言都是统计学家专属的工具。x0dx0ac. 从a和b两点,我们可以看出,hadoop重点是全量数据分析,而R语言重点是样本数据分析。 两种技术放在一起,刚好是最长补短!x0dx0ad. 模拟场景:对1PB的新闻网站访问日志做分析,预测未来流量变化x0dx0ad1:用R语言,通过分析少量数据,对业务目标建回归建模,并定义指标d2:用Hadoop从海量日志数据中,提取指标数据d3:用R语言模型,对指标数据进行测试和调优d4:用Hadoop分步式算法,重写R语言的模型,部署上线这个场景中,R和Hadoop分别都起着非常重要的作用。以计算机开发人员的思路,所有有事情都用Hadoop去做,没有数据建模和证明,”预测的结果”一定是有问题的。以统计人员的思路,所有的事情都用R去做,以抽样方式,得到的“预测的结果”也一定是有问题的。所以让二者结合,是产界业的必然的导向,也是产界业和学术界的交集,同时也为交叉学科的人才提供了无限广阔的想象空间。问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么?x0dx0ax0dx0aa. Mahout是基于Hadoop的数据挖掘和机器学习的算法框架,Mahout的重点同样是解决大数据的计算的问题。x0dx0ab. Mahout目前已支持的算法包括,协同过滤,推荐算法,聚类算法,分类算法,LDA, 朴素bayes,随机森林。上面的算法中,大部分都是距离的算法,可以通过矩阵分解后,充分利用MapRece的并行计算框架,高效地完成计算任务。x0dx0ac. Mahout的空白点,还有很多的数据挖掘算法,很难实现MapRece并行化。Mahout的现有模型,都是通用模型,直接用到的项目中,计算结果只会比随机结果好一点点。Mahout二次开发,要求有深厚的JAVA和Hadoop的技术基础,最好兼有 “线性代数”,“概率统计”,“算法导论” 等的基础知识。所以想玩转Mahout真的不是一件容易的事情。x0dx0ad. R语言同样提供了Mahout支持的约大多数算法(除专有算法),并且还支持大量的Mahout不支持的算法,算法的增长速度比mahout快N倍。并且开发简单,参数配置灵活,对小型数据集运算速度非常快。x0dx0a虽然,Mahout同样可以做数据挖掘和机器学习,但是和R语言的擅长领域并不重合。集百家之长,在适合的领域选择合适的技术,才能真正地“保质保量”做软件。x0dx0ax0dx0a如何让Hadoop结合R语言?x0dx0ax0dx0a从上一节我们看到,Hadoop和R语言是可以互补的,但所介绍的场景都是Hadoop和R语言的分别处理各自的数据。一旦市场有需求,自然会有商家填补这个空白。x0dx0ax0dx0a1). RHadoopx0dx0ax0dx0aRHadoop是一款Hadoop和R语言的结合的产品,由RevolutionAnalytics公司开发,并将代码开源到github社区上面。RHadoop包含三个R包 (rmr,rhdfs,rhbase),分别是对应Hadoop系统架构中的,MapRece, HDFS, HBase 三个部分。x0dx0ax0dx0a2). RHiveRHive是一款通过R语言直接访问Hive的工具包,是由NexR一个韩国公司研发的。x0dx0ax0dx0a3). 重写Mahout用R语言重写Mahout的实现也是一种结合的思路,我也做过相关的尝试。x0dx0ax0dx0a4).Hadoop调用Rx0dx0ax0dx0a上面说的都是R如何调用Hadoop,当然我们也可以反相操作,打通JAVA和R的连接通道,让Hadoop调用R的函数。但是,这部分还没有商家做出成形的产品。x0dx0ax0dx0a5. R和Hadoop在实际中的案例x0dx0ax0dx0aR和Hadoop的结合,技术门槛还是有点高的。对于一个人来说,不仅要掌握Linux, Java, Hadoop, R的技术,还要具备 软件开发,算法,概率统计,线性代数,数据可视化,行业背景 的一些基本素质。在公司部署这套环境,同样需要多个部门,多种人才的的配合。Hadoop运维,Hadoop算法研发,R语言建模,R语言MapRece化,软件开发,测试等等。所以,这样的案例并不太多。
H. 大数据|Hadoop简介及两大功能三大核心组件(二)
一、为什么需要hadoop?
在数据量很大的情况下,单机的处理能力无法胜任,必须采用分布式集群的方式进行处理,而用分布式集群的方式处理数据,实现的复杂度呈级数增加。所以,在海量数据处理的需求下,一个通用的分布式数据处理技术框架能大大降低应用开发难点和减少工作量。
我们先来看这么一个例子:我们要从一个用户使用app的日志数据中统计每个用户搜索了哪些关键词,这个日志文件有21G大,而我们的一个服务器只有8G内存,很显然一台服务器无法干这活。那么我们的处理方案应该是这样,见图一:
从图一我们知道,要顺利完成这么一个集群工作,它存在几个问题:
要我们自己编写一个程序来处理以上的问题是极其复杂的,我曾经写过一个脚本完成“如何分发业务应用到集群的各台服务器上”这个问题,复杂度也是不小的。
而hadoop却可以帮助我们处理上面的所有问题,我们只需要编写我们的业务程序即可。
二、hadoop是什么?
hadoop是用于处理(运算分析)海量数据的技术平台,并且是采用分布式集群的方式。
hadoop有两大功能:
hadoop三大核心组件:
hadoop两大使用角度:
I. 什么是大数据分析Hadoop
要了解什么是Hadoop,我们必须首先了解与大数据和传统处理系统有关的问题。前进,我们将讨论什么是Hadoop,以及Hadoop如何解决与大数据相关的问题。我们还将研究CERN案例研究,以突出使用Hadoop的好处。
在之前的博客“ 大数据教程”中,我们已经详细讨论了大数据以及大数据的挑战。在此博客中,我们将讨论:
1、传统方法的问题
2、Hadoop的演变
3、Hadoop的
4、Hadoop即用解决方案
5、何时使用Hadoop?
6、什么时候不使用Hadoop?
一、CERN案例研究
大数据正在成为组织的机会。现在,组织已经意识到他们可以通过大数据分析获得很多好处,如下图所示。他们正在检查大型数据集,以发现所有隐藏的模式,未知的相关性,市场趋势,客户偏好和其他有用的业务信息。
这些分析结果正在帮助组织进行更有效的营销,新的收入机会,更好的客户服务。他们正在提高运营效率,与竞争对手组织相比的竞争优势以及其他业务利益。
什么是Hadoop –大数据分析的好处
因此,让我们继续前进,了解在兑现大数据机会方面与传统方法相关的问题。
二、传统方法的问题
在传统方法中,主要问题是处理数据的异构性,即结构化,半结构化和非结构化。RDBMS主要关注于银行交易,运营数据等结构化数据,而Hadoop则专注于文本,视频,音频,Facebook帖子,日志等半结构化,非结构化数据。RDBMS技术是一种经过验证的,高度一致,成熟的系统许多公司的支持。另一方面,由于大数据(主要由不同格式的非结构化数据组成)对Hadoop提出了需求。
现在让我们了解与大数据相关的主要问题是什么。因此,继续前进,我们可以了解Hadoop是如何成为解决方案的。
什么是Hadoop –大数据问题
第一个问题是存储大量数据。
无法在传统系统中存储大量数据。原因很明显,存储将仅限于一个系统,并且数据正在以惊人的速度增长。
第二个问题是存储异构数据。
现在,我们知道存储是一个问题,但是让我告诉您,这只是问题的一部分。由于我们讨论了数据不仅庞大,而且还以各种格式存在,例如:非结构化,半结构化和结构化。因此,您需要确保您拥有一个系统来存储从各种来源生成的所有这些种类的数据。
第三个问题是访问和处理速度。
硬盘容量正在增加,但磁盘传输速度或访问速度并未以相似的速度增加。让我以一个示例为您进行解释:如果您只有一个100 Mbps I / O通道,并且正在处理1TB数据,则大约需要2.91个小时。现在,如果您有四台具有一个I / O通道的计算机,则对于相同数量的数据,大约需要43分钟。因此,与存储大数据相比,访问和处理速度是更大的问题。
在了解什么是Hadoop之前,让我们首先了解一下Hadoop在一段时间内的发展。
Hadoop的演变
2003年,道格·切特(Doug Cutting)启动了Nutch项目,以处理数十亿次搜索并为数百万个网页建立索引。2003年10月下旬– Google发布带有GFS(Google文件系统)的论文。2004年12月,Google发布了MapRece论文。在2005年,Nutch使用GFS和MapRece进行操作。2006年,雅虎与Doug Cutting及其团队合作,基于GFS和MapRece创建了Hadoop。如果我告诉您,您会感到惊讶,雅虎于2007年开始在1000个节点的群集上使用Hadoop。
2008年1月下旬,雅虎向Apache Software Foundation发布了Hadoop作为一个开源项目。2008年7月,Apache通过Hadoop成功测试了4000个节点的集群。2009年,Hadoop在不到17小时的时间内成功整理了PB级数据,以处理数十亿次搜索并为数百万个网页建立索引。在2011年12月,Apache Hadoop发布了1.0版。2013年8月下旬,发布了2.0.6版。
当我们讨论这些问题时,我们发现分布式系统可以作为解决方案,而Hadoop提供了相同的解决方案。现在,让我们了解什么是Hadoop。
三、什么是Hadoop?
Hadoop是一个框架,它允许您首先在分布式环境中存储大数据,以便可以并行处理它。 Hadoop中基本上有两个组件:
1、大数据Hadoop认证培训
2、讲师指导的课程现实生活中的案例研究评估终身访问探索课程
什么是Hadoop – Hadoop即解决方案
第一个问题是存储大数据。
HDFS提供了一种分布式大数据存储方式。您的数据存储在整个DataNode的块中,您可以指定块的大小。基本上,如果您拥有512MB的数据,并且已经配置了HDFS,那么它将创建128MB的数据块。 因此,HDFS将数据分为512/128 = 4的4个块,并将其存储在不同的DataNode上,还将在不同的DataNode上复制数据块。现在,由于我们正在使用商品硬件,因此存储已不是难题。
它还解决了缩放问题。它着重于水平缩放而不是垂直缩放。您始终可以根据需要随时在HDFS群集中添加一些额外的数据节点,而不是扩展DataNodes的资源。让我为您总结一下,基本上是用于存储1 TB的数据,您不需要1 TB的系统。您可以在多个128GB或更少的系统上执行此操作。
下一个问题是存储各种数据。
借助HDFS,您可以存储各种数据,无论是结构化,半结构化还是非结构化。由于在HDFS中,没有预转储模式验证。并且它也遵循一次写入和多次读取模型。因此,您只需写入一次数据,就可以多次读取数据以寻找见解。
Hird的挑战是访问和处理数据更快。
是的,这是大数据的主要挑战之一。为了解决该问题,我们将处理移至数据,而不是将数据移至处理。这是什么意思?而不是将数据移动到主节点然后进行处理。在MapRece中,处理逻辑被发送到各个从属节点,然后在不同的从属节点之间并行处理数据。然后,将处理后的结果发送到主节点,在该主节点上合并结果,并将响应发送回客户端。
在YARN架构中,我们有ResourceManager和NodeManager。ResourceManager可能会或可能不会与NameNode配置在同一台机器上。 但是,应该将NodeManager配置在存在DataNode的同一台计算机上。
YARN通过分配资源和安排任务来执行您的所有处理活动。
什么是Hadoop – YARN
它具有两个主要组件,即ResourceManager和NodeManager。
ResourceManager再次是主节点。它接收处理请求,然后将请求的各个部分相应地传递到相应的NodeManager,什么是大数据分析Hadoop在此进行实际处理。NodeManager安装在每个DataNode上。它负责在每个单个DataNode上执行任务。
我希望现在您对什么是Hadoop及其主要组件有所了解。让我们继续前进,了解何时使用和何时不使用Hadoop。
何时使用Hadoop?
Hadoop用于:
1、搜索 – Yahoo,亚马逊,Zvents
2、日志处理 – Facebook,雅虎
3、数据仓库 – Facebook,AOL
4、视频和图像分析 –纽约时报,Eyealike
到目前为止,我们已经看到了Hadoop如何使大数据处理成为可能。但是在某些情况下,不建议使用Hadoop。