如果只是获取特定的字段或者获取指定的记录,使用动态查询更加高效。动态查询免除了where条件部分,直接动态传参即可。高级模型中一共提供了3个操作方法用于实现动态查询,分别为getBy、getFieldBy和top。上述代码中传入参数“kf@86055.com”,即表示在UserEmail字段中查找值为kf@86055.com的记录。动态查询只有top操作方法需要使用AdvModel高级模型,其他两个并不需要,这里为了便于讲解,所以将其归类为高级模型。......
2023-11-04
1.Hadoop概述
Hadoop是一个能够对大量数据进行分布式处理的软件框架,是一个能够让用户轻松架构和使用的分布式计算平台。Spark是一个基于内存计算的开源集群计算系统,目的是更快速地进行数据分析。Storm是一种开源软件,一个分布式、容错的实时计算系统。Apache Drill,为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会发起了一项名为Drill的开源项目。大数据未来发展趋势:数据资源化、数据科学和数据联盟的成立、大数据隐私和安全问题,开源软件成为推动大数据发展的动力,大数据在多方位地改善我们的生活。Hadoop的核心思想如表5-3所示。
表5-3 Hadoop的核心思想
Hadoop的架构与组成:Hadoop的核心模块包含HDFS、MapReduce和Common。HDFS是分布式文件系统,MapReduce提供了分布式计算编程框架,Common是Hadoop体系最底层的一个模块,为Hadoop各模块提供基础服务。
Hadoop的特点:Hadoop可以高效地存储并管理海量数据,同时分析这些海量数据以获取更多有价值的信息。Hadoop中的HDFS可以提高读写速度和扩大存储容量,因为HDFS具有优越的数据管理能力,并且是基于Java语言开发的,具有容错性高的特点,所以,Hadoop可以部署在低廉的计算机集群中。Hadoop中的MapReduce可以整合分布式文件系统上的数据,保证快速分析处理数据。与此同时,还采用存储冗余数据来保证数据的安全性。
2.Hadoop生态系统
Hadoop体系中HDFS解决海量数据存储,YARN解决资源管理调度问题,MapReduce解决海量数据分析,HBase解决分布式实时数据库,Spark解决内存计算问题,Flume和Spoop解决数据采集问题,Zookeeper提供分布式协作服务。Hadoop体系如图5-3所示。
图5-3 Hadoop体系
Hadoop 1.0生态系统主要是指Hadoop 1.X及其以前的版本(Hadoop 0.23.X除外),并包含很多相关子系统的完整的大数据处理生态系统。Hadoop 1.0生态系统的集群架构主要是以MapReduce和HDFS为核心,其管理节点(Master Node)主要负责两个核心功能:大数据存储(HDFS)和数据并行计算(MapReduce)的管理。Hadoop 1.0生态系统的集群架构如图5-4所示。
图5-4 Hadoop 1.0生态系统的集群架构
Hadoop 2.0生态系统主要是指Hadoop 2.X及以后版本,并包含很多相关子系统的完整的大数据处理生态系统。Hadoop 2.0生态系统的集群架构主要是以MapReduce、HDFS和YARN为核心,但总体上仍然是Master/Slave结构。Hadoop 2.0生态系统集群架构如图5-5所示。
图5-5 Hadoop 2.0生态系统的集群架构
3.Hadoop运行环境
服务器角色及服务类型:Master,Name Node,Secondary Name Nade,Job Tracker,Data Node。
Master的功能:运行Name Node、Job Tracker和Secondary Name Node节点。配置基线:CPU,双四核英特处理器;内存,24GB DDR3;网卡,2×1GB Ethernet;硬盘,至少两块SATA。说明:如果中等规模集群(400节点以上),就要考虑内存翻倍,即考虑再增加24G内存;对于大型集群,最好再翻倍,即96G以上会更好一些。
Name Node的功能:记录HDFS中元数据,即包括文件名、权限、所有者、所有组、每个文件对应的Block列表,以及每个Block的副本目前存在于哪个机器上。配置基线:内存,足够的内存;硬盘,适当的专用硬盘(稳定性至关重要)。说明:Name Node信息会随着集群的使用以及规模的增大而增加;大约100万个Block(64M或128M)或文件会占据Name Node 1GB的内存。
Secondary Name Nade的功能:功能同Name Node。配置基线:内存,足够的内存;硬盘,专用硬盘(稳定性至关重要)。说明:建议与Name Node使用一样的硬件配置,便于维护管理;Hadoop 2.0生态系统支持Name Node HA,而其中的Standby Name Node取代了Secondary Name Node,但两者功能相同,因此,二者硬件配置一样。
Job Tracker的功能:在内存中记录所有Job和Task的状态、计数器、进行情况等。配置基线:内存,满足需求大内存;CPU,双六核英特处理器。说明:Job Tracker在内存中默认保留100个运行过的Job信息;Job Tracker的内存使用情况是无法估计的,一定要关注Job Tracker的内存占用情况。
Data Node的功能:每个节点同时既是计算也是存储。配置基线:内存,64GB DDR3;网卡,双1GB网卡;硬盘控制器,SAS 6GB/S;硬盘,12×3 TB SATA;网络,2×1GB Ethernet。说明:对于存储,由于HDFS默认是三个副本,如果系统每天产生1TB数据,则HDFS的需求就增长3TB;对于计算,运行MapReduce需要一定的临时空间,一般考虑按照磁盘空间的20%~30%作为MapReduce的临时目录。
4.单节点部署
基础知识:熟悉虚拟机(virtualbox/vmware),熟悉Linux基本命令(下载文件,使用vi/vim编辑文件,创建文件和创建目录)。
准备工作:在虚拟机中安装好Linux(centos7),使用桥接模式配好网络。
单节点部署安装步骤:在虚拟机中安装Centos7,安装ssh,安装rsync。安装openJDK,确认jdk版本。下载Hadoop的安装包,解压Hadoop,在Hadoop的配置文件(etc/Hadoop/Hadoop-env.sh)中增加环境变量JAVA_HOME。验证配置,运行MapReduce任务。
5.伪分布式部署
安装步骤:SSH免密码登录安装ssh,生成公钥和私钥,将公钥放到目标机器的~/.ssh/authorized_keys中,验证。修改配置文件core-site.xml,hdfs-site.xml。格式化NameNode,启动NameNode和DataNode的守护进程,通过web检查dfs状态,验证dfs是否正常工作,配置YARN。
6.集群部署
准备工作:准备六台Linux服务器,分别配置六台机器的名字为ml~m6,并指定静态IP地址。所有机器配置本地机器名解析,所有机器之间配置ssh免密码登录,关闭防火墙。下载Hadoop安装包,并解压到适当的位置,所有机器上使用相同版本的jdk和Hadoop,并且保证Hadoop的目录在相同的位置。(www.chuimin.cn)
准备工作的验证:验证本地机器名解析正常,验证ssh免密码配置成功。在每台机器上运行java-version,检查jdk版本,在每台机器上检查防火墙状态。
配置文件:配置Hadoop参数,配置etc/Hadoop/Hadoop-env.sh,配置core-site.xml,配置etc/Hadoop/hdfs-site.xml,配置etc/Hadoop/mapred-site.xml,配置etc/Hadoop/yarnsite.xml,配置etc/Hadoop/slaves,分发配置文件。
启动集群:格式化NameNode,启动NameNode,启动DataNode,启动全部dfs进程,启动ResourceManager,启动NodeManager,启动JobHistory Server,用浏览器检查web接口工作是否正常(见图5-6),关闭集群。
图5-6 用浏览器检查web接口
7.Hadoop常用命令
$bin/Hadoop显示帮助
$bin/Hadoop fs文件操作
$bin/Hadoop jar运行MapReduce程序
$bin/Hadoop version查看Hadoop版本
$bin/Hadoop checknative检查Hadoop的本地库
-cat path/file输出文本文件的内容
-appendToFile本地文件集群文件将本地文件的内容追加到集群文件结尾
-copyFromLocal本地文件集群文件将本地文件复制到集群
-copyToLocal集群文件本地文件将集群文件复制到本地
-cp集群原文件集群目标文件复制集群文件
-mv集群原文件集群目标文件移动或重命名文件
-ls路径列出集群文件或者目录
-mkdir路径在集群中创建目录
-setrep[参数][副本数][路径]设置文件副本数
$sbin/start-all.sh$sbin/stop-all.sh启动集群所有服务/关闭集群所有服务
$sbin/start-dfs.sh$sbin/stop-dfs.sh启动dfs关闭dfs
$sbin/start-yarn.sh$sbin/stop-yarn.sh启动YARN关闭YARN
$sbin/Hadoop-daemon.sh[start|stop]服务名单个Hadoop服务启动或者关闭
$sbin/Hadoop-daemons.sh[start|stop]服务名全部slaves上的Hadoop服务启动或者关闭
$sbin/yarn-daemon.sh[start|stop]服务名单个yarn服务的启动或者关闭
$sbin/yarn-daemons.sh[start|stop]服务名全部slaves上的yarn服务启动或者关闭
$bin/hdfs secondarynamenode以控制台的方式启动SecondaryNameNode
$bin/hdfs namenode以控制台的方式启动NameNode
$bin/hdfs datanode以控制台的方式启动DataNode
有关大数据挖掘技术及其在医药领域的应用的文章
如果只是获取特定的字段或者获取指定的记录,使用动态查询更加高效。动态查询免除了where条件部分,直接动态传参即可。高级模型中一共提供了3个操作方法用于实现动态查询,分别为getBy、getFieldBy和top。上述代码中传入参数“kf@86055.com”,即表示在UserEmail字段中查找值为kf@86055.com的记录。动态查询只有top操作方法需要使用AdvModel高级模型,其他两个并不需要,这里为了便于讲解,所以将其归类为高级模型。......
2023-11-04
掌握基本的SELECT查询语句及其相关子句的用法。进行多表复杂查询。在BlogDB数据库中,统计已发表评论的用户人数。代码如下:USE BlogDBGOSELECT x.Username,x.Sex,y.Subject,y.ShiJianFROM Users x LEFT OUTER JOIN Article yON x.Username=y.Username4.问题讨论SELECT查询语句能否修改数据库中的数据?子查询能嵌套使用吗?......
2023-11-23
求数学系学生的学号和姓名。本例中的元组选择条件是所在系等于“数学系”,结果列为学号和姓名。③使用了LⅠKE模式匹配表达式,“姓名LⅠKE”张%脚表示查询姓张的同学。表4—3课程表数据由表4-3中的数据可以得出,课程的先行关系链为:C5→C4→C3→C2→C1,并可以推出课程的间接关系链为:C5→C3→C1。......
2023-11-24
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
现在进行中的互联网备忘录移位,为电子犯罪人员提供了可以利用的新攻击对象。IPv6能提供近乎无限的IP地址代码,从智能电视到同步了新IPv6的标准电话开发,多种装置中固定IP地址的需要在增加。IPv6在解决IP地址枯竭问题的同时,也创造了大量电子犯罪的机会,使企业面临着新的挑战。其结果就是各组织保护、应用数据,需要从大数据中获得实时洞察力的方法。......
2023-11-16
并行查询优化与分布查询处理类似。并行查询优化可以同时利用算符内并行和算符间并行的优点,还可以使用分布式数据库管理系统的技术。并行查询优化是指生成一个给定查询的执行计划,达到目标成本函数最小的目的。为了精确预测,成本模型必须包含并行环境的知识。为了估算执行计划的成本,成本模型使用数据库统计和组织信息,如关系基和分割等,就像分布式查询优化器一样。......
2023-10-28
相关推荐