【导读】作为大数据工程师,其必须要掌握的基础知识就是java与mysql的关系、交互和连接,作为基础,也是面试考官经常会考的内容,为了帮助大家都能顺利通过考试,今天小编就来和大家唠一唠java与mysql的关系、交互和连接,好了,开始今天的内容大数据分析师面试必备:java与mysql解析。
1. SQL语言四大类:
DQL 数据查询语言 select
DML 数据操作语言 insert、update、delete
DDL 数据界说语言 create、alter
DCL 数据控制语言 grant权限
2. mysql数据库中的decimal类型(是数值型,不能存放字符串):
举例:decimal(18,0) 常用于身份证号码,但是带x的不可以。
举例:decimal(5,2)
状况一:假设小数点前面是3位,后边是2位,正常状况。
状况二:5指的是小数点前后不能超过5位,小数点后有必要是2位。
3. mysql中InnoDB和MyISAM引擎的差异:
innodb支撑:事务和主外键
myisam不支撑:事务和主外键
4. 【不需要背诵,选择题考点】向mysql中,a向表中添加数据的几种写法,题目:id int 主键自增,name varchar(11)
不为空。
5. 操作mysql数据库表有两种方式,第一种:点八点吧;第二种:写代码。【不需要背诵,只需要了解,考试选择题会出】
6. 在Java中,简述面向对象三大特征。
7. 在Java中,常用关键字:
1. 定义类的关键字是什么? class
2. 继承的关键字是什么? extends
3. 定义接口的关键字是什么? interface
4. 实现接口的关键字是什么? implements
5. 抽象类的关键字是什么? abstract
8. 在Java中,抽象类和接口的区别:
1. 抽象类中可以包含普通方法和抽象方法,接口中只能包含抽象方法
2. 抽象类中可以有构造方法,接口中没有构造方法
3. 抽象类只能单继承,可以实现多个接口
9. Java接口中有哪些成员?
1. 构造方法,没有
2. 常量,默认访问修饰符public static final,没有变量
3. 抽象方法,默认访问修饰符public abstract
10. 在Java中,抽象类和抽象方法的关系:
1. 抽象类中可以包含普通方法和抽象方法,抽象方法一定存在抽象类中。
2. 子类继承抽象父类,必须实现|重写抽象方法,除非子类也是抽象类。
3. 【判断题】抽象类中必须包含抽象方法?【错误×】
4. 【判断题】抽象方法一定存在抽象类中?【正确√】
11. Java重载的特点:
1. 在同一个类中
2. 方法名相同
3. 参数列表(个数、类型、顺序)不同
4. 与返回值类型和访问修饰符无关
12. Java重写的特点:
1. 在父子类中
2. 方法名相同
3. 参数列表相同
4. 返回值类型相同,或是其子类
5. 访问修饰符相同,或不能严于父类
13. 列举几种Java实现多态的形式:
1. 继承的存在
2. 父类引用指向子类对象 | 向上转型
3. 父类作为方法的返回值类型,父类作为方法的参数
14. Java接口的特性:单根性和传递性
15. 在Java中,throws和throw的区别:
1. throws 声明异常,用在定义方法小括号的后面
2. throw 抛出异常,写在方法体内
以上就是小编今天给大家整理发送的关于大数据分析师面试必备:java与mysql解析的相关内容,希望对各位考生有所帮助,想知道更多关于数据分析师的基本要求有哪些,关注小编持续更新数据分析师岗位解析。
Ⅱ 有哪些关于大数据的硕士毕设题目
大数据(Big Data)又称为巨量资料,指需要新处理模式才能具有更强的决策力、洞察力和流版程优化能权力的海量、高增长率和多样化的信息资产。“大数据”概念最早由维克托·迈尔·舍恩伯格和肯尼斯·库克耶在编写《大数据时代》中提出,指不用随机分析法(抽样调查)的捷径,而是采用所有数据进行分析处理。对于“大数据”(Big data)研究机构Gartner给出了定义,“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
Ⅲ 和大数据有关的毕业论文题目
大数据只是一个时代背景,具体内容可以班忙做
Ⅳ 面试题-关于大数据量的分布式处理
面试题-关于大数据量的分布式处理
题目:生产系统每天会产生一个日志文件F,数据量在5000W行的级别。文件F保存了两列数据,一列是来源渠道,一列是来源渠道上的用户标识。文件F用来记录当日各渠道上的所有访问用户,每访问一次,记录一条。
请问如何快速计算出各渠道上新增的用户?
问题分析:首先本次面试的是有关于分布式数据处理以及数据分析的职位,所以相关的面试题目可能会偏向于使用分布式的思想去解决。但无奈本人当时反应太慢,实在没向分布式处理方向思考。
方案一:
本题最直观的一个处理方法就是,直接拿着当日新增的5000W条访问记录一条一条的去匹配历史访问用户。若存在历史访问记录,则忽略;若不存在访问记录,则保存为新增记录。很明显,假若历史访问用户有2亿条记录,则需要和2亿条数据比较5000W次。比较次数可想而知。
由于本人一直在做基于数据库的数据处理工作,很容易就想到将历史数据保存在数据库的一张表中,并对来源渠道和用户标识这两个字段建立索引,然后遍历日志文件F(5000W次)。根据日志文件F中的每一行去匹配数据库中的历史访问记录。由于历史数据表有索引,单次查询的速度也非常快。但是需要5000W次的数据库查询,很明显效率低下。
方案二:
既然多次单一查询无法满足要求,于是可以先通过一种数据导入技术将当日新增数据导入到数据库的另一张表中,并和历史数据做左外关联。若能关联成功,则表示此用户已存在;若关联失败,则表示此用户不存在。
此方案暂且不说5000W条记录的大表与2亿条记录的大表关联效率有多高以及使用到的数据库缓冲区的资源有多少,单就5000W条访问记录导入数据库表,都是一个不小的时间花费。
方案三:
很明显,面试时方案二的回答并未达到面试官的预期,最初被遗憾的PASS掉。一家很有潜力,自己很看好的公司,并计划做为自己未来发展方向的职位,就这样丢下我,扬长而去了。
这几天又看了下分布式相关的介绍,突然想到这道题。一下子醒悟过来,其实还是因为对题目要考察的点分析得不够透彻。当时以为只是仅仅考数据处理效率的一个题目,其实考的是一种将复杂问题拆分为简单问题的拆分思想。了解到这一层,一种新的方式立马在脑海中浮现出来。具体如下:
假如现在有N(N>=2)个存储块,并存在一个函数f(来源渠道,用户标识),对于给定的一组(来源渠道,用户标识),总能将其分发到一个固定的存储块内。那么可以使用此函数将5000W行访问记录尽量均匀的分发至N个存储块上,并同时使用此函数将历史访问记录也分发至这些存储块上。由于相同的一组记录,肯定会被分配至同一个存储块,所以比较时,只需要分别比较各个存储块上当日新增记录与历史访问用户,然后将N个存储块上比较的结果汇总,即可得到最终结果。
假设历史访问用户数据已通过函数f(来源渠道,用户标识)被分发至了N个历史文件H1、H2、…、HN。则详细处理步骤如下:
1、将F中的内容使用函数f(来源渠道,用户标识),分发至文件F1、F2、…、FN内。(可开M(M>=2)个并行,且若N-M越大,同时向同一文件写入数据的概率越小)
2、将文件F1、F2、…、FN内的访问记录去重。(可开N个并行分别处理对应的N个文件)。
3、将文件Fn(1=<n<=N)去重后的结果与对应的历史文件Hn比较得出新增用户结果Rn。(可开N个并行分别处理对应的N个文件且当N足够大时,实际要处理数据的量级就会相当小)。
4、合并第3步得到的结果R1、R2、…、RN即可得到当日新增用户。(可并行)
5、为使历史数据文件H1、H2、…、HN中的数据最全,将结果R1、R2、…、RN分别写入对应的历史文件中。(可并行)
本方案主要有以下优点:
1、数据的分发、处理、合并都可并行处理,明显提高了处理效率。
2、由于每个存储块上的新增数据,只需要与它对应存储块上的历史数据比较即可,大大减少了比较次数。(对于当日每一条记录来说,都只需要与大约历史的N分之一条数据去比较)
3、基本不需要考虑历史全量数据的保存及获取问题。
本方案缺点:
1、处理方案明显变的复杂许多,不仅需要处理数据的分发,处理,还需要一个并行的快速收集方法。
2、可能需要多台服务器并行处理。
本方案难点:
1、一个稳定(对于相同的一组来源渠道和用户标识,必定会被分发至同一存储块)、快速(根据一条来源渠道和用户标识数据,可以快速的计算出它将要被分发至的存储块)、均匀(当日新增数据及历史数据都能尽量均匀的被分发至N个存储块,最理想的情况是每个存储块上分发到的数据都是总数据的N分之一)的分发函数至关重要。
2、如何分发、并行处理及汇总数据。
Ⅳ 大数据技术Hadoop笔试题
大数据技术Hadoop笔试题
导读:Hadoop有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。以下是由我J.L为您整理推荐的面试笔试题目和经验,欢迎参考阅读。
单项选择题
1. 下面哪个程序负责 HDFS 数据存储。
a)NameNode
b)Jobtracker
c)Datanode
d)secondaryNameNode
e)tasktracker
2. HDfS 中的 block 默认保存几份?
a)3 份
b)2 份
c)1 份
d)不确定
3. 下列哪个程序通常与 NameNode 在一个节点启动?
a)SecondaryNameNode
b)DataNode
c)TaskTracker
d)Jobtracker
4. Hadoop 作者
a)Martin Fowler
b)Kent Beck
c)Doug cutting
5. HDFS 默认 Block Size
a)32MB
b)64MB
c)128MB
6. 下列哪项通常是集群的最主要瓶颈
a)CPU
b)网络
c)磁盘
d)内存
7. 关于 SecondaryNameNode 哪项是正确的?
a)它是 NameNode 的热备
b)它对内存没有要求
c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
d)SecondaryNameNode 应与 NameNode 部署到一个节点
多选题
8. 下列哪项可以作为集群的管理工具
a)Puppet
b)Pdsh
c)Cloudera Manager
d)d)Zookeeper
9. 配置机架感知的下面哪项正确
a)如果一个机架出问题,不会影响数据读写
b)写入数据的时候会写到不同机架的 DataNode 中
c)MapRece 会根据机架获取离自己比较近的网络数据
10. Client 端上传文件的时候下列哪项正确
a)数据经过 NameNode 传递给 DataNode
b)Client 端将文件切分为 Block,依次上传
c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作
11. 下列哪个是 Hadoop 运行的模式
a)单机版
b)伪分布式
c)分布式
12. Cloudera 提供哪几种安装 CDH 的方法
a)Cloudera manager
b)Tar ball
c)Yum d)Rpm
判断题
13. Ganglia 不仅可以进行监控,也可以进行告警。( )
14. Block Size 是不可以修改的。( )
15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。( )
16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。( )
17. Cloudera CDH 是需要付费使用的。( )
18. Hadoop 是 Java 开发的,所以 MapRece 只支持 Java 语言编写。( )
19. Hadoop 支持数据的随机读写。( )
20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。( )
21. NameNode 本地磁盘保存了 Block 的位置信息。( )
22. DataNode 通过长连接与 NameNode 保持通信。( )
23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。( )
24. Slave 节点要存储数据,所以它的磁盘越大越好。( )
25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。( )
26. Hadoop 默认调度器策略为 FIFO( )
27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。( )
28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。( )
29. 每个 map 槽就是一个线程。( )
30. Maprece 的 input split 就是一个 block。( )
31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( )
32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( )
33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。( )
别走开,答案在后面哦!
1. 下面哪个程序负责 HDFS 数据存储。答案C datanode
a)NameNode
b)Jobtracker
c)Datanode
d)secondaryNameNode
e)tasktracker
2. HDfS 中的 block 默认保存几份? 答案A默认3分
a)3 份
b)2 份
c)1 份
d)不确定
3. 下列哪个程序通常与 NameNode 在一个节点启动?答案D
a)SecondaryNameNode
b)DataNode
c)TaskTracker
d)Jobtracker
此题分析:
hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和 tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。
JobTracker和TaskTracker
JobTracker 对应于 NameNode
TaskTracker 对应于 DataNode
DataNode 和NameNode 是针对数据存放来而言的
JobTracker和TaskTracker是对于MapRece执行而言的
maprece中几个主要概念,maprece整体上可以分为这么几条执行线索:obclient,JobTracker与TaskTracker。
1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker, 然后由JobTracker创建每一个Task(即MapTask和ReceTask)并将它们分发到各个TaskTracker服务中去执行。
2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于 TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。
3、TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。
4. Hadoop 作者 答案C Doug cutting
a)Martin Fowler
b)Kent Beck
c)Doug cutting
5. HDFS 默认 Block Size 答案:B
a)32MB
b)64MB
c)128MB
(因为版本更换较快,这里答案只供参考)
6. 下列哪项通常是集群的最主要瓶颈:答案:C磁盘
a)CPU
b)网络
c)磁盘IO
d)内存
该题解析:
首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特点?
1.cpu处理能力强
2.内存够大
所以集群的瓶颈不可能是a和d
3.网络是一种稀缺资源,但是并不是瓶颈。
4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。
7. 关于 SecondaryNameNode 哪项是正确的?答案C
a)它是 NameNode 的热备
b)它对内存没有要求
c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
d)SecondaryNameNode 应与 NameNode 部署到一个节点。
多选题:
8. 下列哪项可以作为集群的管理?答案:ABD
a)Puppet
b)Pdsh
c)Cloudera Manager
d)Zookeeper
9. 配置机架感知的下面哪项正确:答案ABC
a)如果一个机架出问题,不会影响数据读写
b)写入数据的时候会写到不同机架的 DataNode 中
c)MapRece 会根据机架获取离自己比较近的网络数据
10. Client 端上传文件的时候下列哪项正确?答案B
a)数据经过 NameNode 传递给 DataNode
b)Client 端将文件切分为 Block,依次上传
c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作
该题分析:
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
11. 下列哪个是 Hadoop 运行的模式:答案ABC
a)单机版
b)伪分布式
c)分布式
12. Cloudera 提供哪几种安装 CDH 的方法?答案:ABCD
a)Cloudera manager
b)Tarball
c)Yum
d)Rpm
判断题:
13. Ganglia 不仅可以进行监控,也可以进行告警。( 正确)
分析:此题的目的是考Ganglia的'了解。严格意义上来讲是正确。ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。
14. Block Size 是不可以修改的。(错误 )
分析:它是可以被修改的Hadoop的基础配置文件是hadoop-default.xml,默认建立一个Job的时候会建立Job的Config,Config首先读入hadoop-default.xml的配置,然后再读入hadoop- site.xml的配置(这个文件初始的时候配置为空),hadoop-site.xml中主要配置需要覆盖的hadoop-default.xml的系统级配置。
15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(错误 )
分析:Nagios是集群监控工具,而且是云计算三大利器之一
16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )
分析:SecondaryNameNode是帮助恢复,而不是替代,如何恢复,可以查看
17. Cloudera CDH 是需要付费使用的。(错误 )
分析:第一套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举行的 Hadoop 大会 (Hadoop Summit) 上公开,以若干私有管理、监控、运作工具加强 Hadoop 的功能。收费采取合约订购方式,价格随用的 Hadoop 丛集大小变动。
18. Hadoop 是 Java 开发的,所以 MapRece 只支持 Java 语言编写。(错误 )
分析:rhadoop是用R语言开发的,MapRece是一个框架,可以理解是一种思想,可以使用其他语言开发。
19. Hadoop 支持数据的随机读写。(错 )
分析:lucene是支持随机读写的,而hdfs只支持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。
20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(错误)
此题分析:
NameNode 不需要从磁盘读取 metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次 namenode 启动的时候才会读取。
1)文件写入
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
2)文件读取
Client向NameNode发起文件读取的请求。
21. NameNode 本地磁盘保存了 Block 的位置信息。( 个人认为正确,欢迎提出其它意见)
分析:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回文件存储的DataNode的信息。
Client读取文件信息。
22. DataNode 通过长连接与 NameNode 保持通信。( )
这个有分歧:具体正在找这方面的有利资料。下面提供资料可参考。
首先明确一下概念:
(1).长连接
Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在,此种方式常用于点对点通讯。
(2).短连接
Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.
23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。(错误 )
hadoop只能阻止好人犯错,但是不能阻止坏人干坏事
24. Slave 节点要存储数据,所以它的磁盘越大越好。( 错误)
分析:一旦Slave节点宕机,数据恢复是一个难题
25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )
26. Hadoop 默认调度器策略为 FIFO(正确 )
27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )
分析:首先明白什么是RAID,可以参考网络磁盘阵列。这句话错误的地方在于太绝对,具体情况具体分析。题目不是重点,知识才是最重要的。因为hadoop本身就具有冗余能力,所以如果不是很严格不需要都配备RAID。具体参考第二题。
28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )
29. 每个 map 槽就是一个线程。(错误 )
分析:首先我们知道什么是map 槽,map 槽->map slotmap slot 只是一个逻辑值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是对应着一个线程或者进程
30. Maprece 的 input split 就是一个 block。(错误 )
31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(错误 )
32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( 错误)
hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。
33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。(错误 )
分析:
首先明白介绍,什么ClusterID
ClusterID
添加了一个新的标识符ClusterID用于标识集群中所有的节点。当格式化一个Namenode,需要提供这个标识符或者自动生成。这个ID可以被用来格式化加入集群的其他Namenode。
二次整理
有的同学问题的重点不是上面分析内容:内容如下:
这个报错是说明 DataNode 所装的Hadoop版本和其它节点不一致,应该检查DataNode的Hadoop版本
;Ⅵ 有关大数据,有哪些题目
题目得按专业课来算
比如数据挖掘,题目多是一些算法理论
比如hadoop,题目就是hadoop生态和组件功能
比如数据库,题目就是数据模型和分布式理论
比如可视化,题目就是报表操作了