1.hadoop是什么?
hadoop之父是Doug Cutting。是由很多技术框架组成的生态系统,包括数据库(nosql)。Apache开源框架集群,做分布式计算和离线运算、实时运算。
受Google三篇论文启发出现的。(GFS、MapReduce、Big Table数据库)
GFS、MapReduce、Hbase
搜索引擎的原理?
爬虫和搜索。一般称为搜索引擎。称为站内搜索。
2.解决问题?
·海量数据的存储(HDFS)
·海量数据的分析模型(MapReduce)
·资源管理调度(YARN):从MapReduce中分离出来的。
狭义的hadoop:由HDFS和MapReduce组成。
spark、storm;运算框架
3.场景1:假设myqsl中有几十个T的数据。
在hadoop中,一般的解决方式是把mysql中的记录导出为文本文件。或者生成为文本文件。再对本文件进行处理。
hive认识sql语句。
4.Hadoop具体能干什么?
狭义hadoop擅长海量离线日志分析。
广义hadoop擅长海量离线日志分析、在线实时日志分析、海量数据的存储等。
5.怎样解決海量数据的存储?
①怎样解决存储?
NFS系统:通过节点的文件夹或文件的共享实现大数据量的存储。可以通过文件共享的协议,把很多节点上面的相关文件夹进行共享,
在另外一台机器上进行挂载。挂载到本地某个目录下面,客户端通过访问这一节点就可以访问其余节点下的所有文件。
缺点:可存储。①但是不好进行数据分析。数据较集中。该台服务器负载较大,别的服务器较空闲。②该台服务器如果坏了,数据会丢失。
③两台服务器存在相同数据,一台服务器中的数据被修改,则另一台服务器中的数据是否进行修改?
hadoop怎样处理?
HDFS:有很多节点,节点(Datanodes)
解决可靠性的机制:文件切块,每一块可存很多副本。某一台服务器挂了一个块,也不影响其余数据。
解决映射关系数据:管理映射关系数据的节点为Namenode。把文件切块的路径/HDFS(虚拟路径)映射为具体那台服务器上的路径(真实路径)。
思路:客户端不管是读还是写,首先要访问Namenode。获得所需信息后找Datanode。
6.怎样解决海量数据的计算?
海量数据被打散,存到集群上。存到很多机器上,怎样对这些数据进行处理?
①一个累加求和?被打散并存到集群上的数据为文本文件。内容像SQL文件。做count(*)?
解决方法1)找台性能好、内存大、cpu很强悍的计算机,连到集群上,读取文件。
读取文件时,找Namenode,记录有哪些块,在哪些服务器上。如此循环,找到所有文件所记录的东西。
考虑电脑内存多大?硬盘内存有多大?
效率不高。不是全局统计。使用网络。
2)统计的逻辑。读一行+1.数据在HDFS集群上,把逻辑分发到每一个Datanode上。统计本地每一台服务器上的datanode、block。不使用网络。
hadoop中分成两个阶段。map阶段。reduce阶段。
map阶段:对本地局部进行处理。统计局部文件的条数。
reduce阶段:只在一台机器上运行,通过网络把map阶段的数据进行统计,得到全局结果。
map与reduce的区别:
map:把数据放在某台服务器上,在节点上以并发方式执行。reduce:全局处理。分组并发。
reduce的多少取决于业务逻辑。做全局处理reduce只有一个。做分组处理reduce有多个。
7.hadoop的特点
①扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。
②成本低(Economical):可以通过普通机器组成的服务器群来分发处理数据。这些服务器群总计可达数千个节点。
③高效率(Efficient):通过分发数据,hadooop可以在数据所在的节点上并行的(parallel)处理它们,这使得处理非常的快速。
④可靠性(Reliable):Hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算
8.hadoop安装?
·有Linux基础。
·软件安装版本。CentOS、JDK1.7、
·CentOS:2GB、网卡【不要用hostonly,要用custom、VMnet8(NAT)】、取消图形界面,需要修改/etc/inittab
JDK1.7:
终端软件:SecureCRT等
9.版本
·Apache
官方版本(2.4.1)
·Cloudera(CDH)
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打了一些patch。推荐使用。
·HDP(Hortonworks Data Platform)
Hortonworks公司发行版本