java面向对象
1.Overload和Override的区别?Overload的方法是否可以改变返回值的类型?
Overload是在一个类里面方法的重载, 指方法名相同参数类型,个数,顺序不同, 来实现的方法重载
Override是在继承关系中, 子类重写父类的方法, 方法名, 返回值, 参数都必须相同.
重载的时候是可以改变方法的返回值的, 因为重载与方法的放回值类型无关
2.构造方法的作用是什么?构造方法和普通方法的区别 ?
构造方法的作用是完成对象的初始化。当类实例化一个对象的时候, 自动调用构造方法.
构造方法和普通方法的区别:
1. 普通方法必须有返回值类型修饰符, 而构造方法不能有返回值类型修饰符;
2. 构造方法名必须和类名相同
3. 普通方法用来定义对象的行为, 而构造方法用来初始化
3.String和StringBuffer的区别
1.String对象内容是不可改变的,StringBuffer是可以改变的,并且高效
1.string对象是不可变的,StringBuilder与StringBuffer都继承自AbstractStringBuilder(抽象)类,AbstractStringBuilder中是使用字符数组保存字符串,可知这两种对象都是可变的。
4.static的作用和用法?
Static的作用是把属性和方法定义为静态的, 可以在不创建对象的时候就调用这些属性和方法. 它只需要初始化一次, 可用来定义不经常改变的属性, 或者是对象的计数器.
用法:类名.属性 或 类名.方法名() , 即通过类名直接调用.
5.访问修饰符有哪些?各自的作用范围是什么?
Private: 私有的, 本类中
Public: 共有的, 任何位置
Protected: 受保护的, 本类, 同一个包和子类中可以访问
缺省的: 同一个包中
6.什么继承?继承有什么优点?继承使用什么关键字?继承的特点?继承的限制?一个类可以同时继承多个类吗?所有类的父类是什么?
继承就是一个类继承另一个类的属性和方法. 继承的优点是可以实现代码的重用, 使组件类型保持一致. Extends关键字, 类只能单继承类, 但可以实现多个接口. 所有类的父类是Object类
7.接口和抽象类的区别
抽象类是指abstract关键字所修饰的类, 里面可以包含普通方法和抽象方法, 还可以有构造函数和普通属性.
Interface是接口,里面只能包含常量和抽象方法, 不能有构造方法,普通属性和普通方法, 也不鞥你有main方法,
抽象类是一个类, 而接口的核心是方法
8.请说说引用和对象?
引用是指一个指向引用数据类型地址的指针, 对象是指一个类的实例.
引用可以指向一个对象, 对象也可以包含多个引用
对象是引用数据类型, 引用数据类型不仅仅包含对象
9.java中异常的处理方式
A.如果能够找到一个有意义的方法来捕获异常,就立即引入这个方法
B.否则就应该考虑做某些处理后传递或者再次抛出异常,也可以把异常转换为另一种形式,然后抛出一个新的异常
C.另一个方法是,可以完全忽略这个异常,而把它加到方法的头部的throws语句中,由调用这个方法的方法来处理它
D.通过捕获一个公共的异常超类,可以在一个块里面捕获多个异常,但不能够用一个空的catch语句 块来完全制止一个异常
10.什么叫方法的重载?构造方法可以重载吗?
Overload是在一个类里面方法的重载, 指方法名相同参数类型,个数,顺序不同, 来实现的方法重载
构造方法可以重载
11.类变量和实例变量的区别 n
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
12.类属性和实例属性的区别
1.类的属性类和实例都可以访问,实例的属性类不可以访问只有类能访问,
2.定义方式也不同
python
切片 列表 字典 集合 元组 面向对象 爬虫模块和方法
1.简述try、except语句的用法
我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except
try:
执行语句
except (Error),e:
异常处理
else:
如果没发生异常,执行语句
finally:
有无异常,都执行
2.简述read. readline. readlines的区别
f.read() 把所有的字一次性读出并作为一个大的字符串。for遍历时为单字
f.readline() 只读取第一行,并作为一个字符串输出。for遍历时为单字
f.readlines() 将整个文本全部读出并输出一个列表,把每行的字做为一个字符串。for遍历时为一行
3.简述实例属性与类属性的区别
类是一个特殊的对象即类对象,描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在__init__外部定义。
实例属性:用来描述类创建出来的实例对象,需要通过对象来访问,在各自对象的内存中都保存一份,在__init__方法内部定义。
4.实例方法与类方法,静态方法的区别
实例方法由对象调用,至少一个self参数,self代表对象的引用
类方法由类调用,至少一个cls参数,并且需要装饰器@classmethod修饰
静态方法由类调用,不需要参数,需要装饰器@staticmethod修饰
5.简述切片的语法
[开始:结束:步长]
开头:当步长>0时,不写默认0。当步长<0时,不写默认-1
结束:当步长>0时,不写默认列表长度加一。当步长<0时,不写默认负的列表长度减一
步长:默认1,>0 是从左往右走,<0是从右往左走
6.简述如何将2个列表转换为一个字典
字典名 = dict(zip(列1,列2))
7.简述flask的作用
flask是一个web的轻量级框架,本身相当于一个内核
作用:降低开发难度,提高开发效率,避免重复造轮子
8.简述pymysql如何连接mysql数据库
通过pymysql的connect()方法声明一个连接对象db。传入host(ip),user,password,port(运行端口3306)
9.简述爬虫3大模块以及用法
urllib urllib.request.urlopen('url')
urllib3 urllib3.poolmanager().request('GET/POST','url')
request request.get('url')
10.pass的作用?continue的作用? break的作用?
pass 不做任何事情,只起到占位的作用。
break 终止当前循环,跳出本次循环
continue 终止本轮循环并开始下一轮循环
11.谈谈你对面向对象的理解?
万物皆对象
12. 单引号、双引号、三引号的区别?
双引号""中可以嵌套单引号'',三引号''''''中可以嵌套双引号""和单引号''
三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留,这样的好处是你可以替换一些多行的文本
13.Tuple和list的区别
tuple用()、 list 用 [ ]
list是一种有序的集合,可以随时添加和删除其中的元素
tuple是一种有序列表,一旦初始化就不能修改,而且没有append() insert()这些方法,可以获取元素但不能赋值变成另外的元素
14.什么是异常(Throwable)
程序的运行或者编译时,所产生的错误统称异常(也叫Bug),而异常又分为Error、Exception
Mysql
常用查询条件
分组
排序
联合查询语法
SSM
课堂笔记概念部分
1.sprinmvc工作原理?
1、用户发送请求至前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器。
5、HandlerAdapter经过适配调用具体的处理器(Controller)
6、Controller执行完成返回ModelAndView。
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户。.
1. 发起请求到前端控制器 (DispatcherServlet)
2. 前端控制器请求 HandlerMapping 查找 Handler -- (可以根据 xml 配置,注解进行查找)
3. 处理器 映射器 HandlerMapping 向前端控制器返回 Handler
4. 前端控制器调用处理器适配器去执行 Handler
5. 处理器适配器去执行 Handler
6. Handler 执行完给适配器返回 ModelAndView
7. 处理器适配器向前端控制器返回 ModelAndView -- (ModelAndView 是 SpringMVC 框架的一个底层对象 ,包括 View 和 Model)
8. 前端控制器请求视图解析器去进行视图解析 -- (根据逻辑视图名解析成真正的视图(jsp))
9. 视图解析器向前端控制器返回 View
10. 前端控制器进行视图渲染 -- (视图渲染将模型数据 (在 ModelAndView 对象中) 填充到 request 域)
11. 前端控制器向用户响应结果
2.写出spring中的注解及其含义(至少6个)
@Component:其他层
@Service:业务层
@Controller:控制层
@Repository:dao层
@Autowired:自动装配
@Qualifier("xxx"):指定bean
@Resource(name="xxx"):注入bean
@PostConstruct:初始化
@PreDestory:销毁
@Scope(scopeName="xxx"):作用范围
@Transactional:事务
3.简介Spring MVC中的ModelAndView类?
ModelAndView用来存储处理完后的结果数据
model代表模型,view代表视图
即可返回一个结果数据,又可返回视图信息
4.Springmvc请求转发实现方式
1.原生的方式
request.getRequestDispatcher(" ").forward(request,response);
response.sendRedirect(" ");
2.redirect和forward
redirect "路径"
forward "全路径"
5.MyBatis的常用动态SQL的元素?
<if test="条件表达式">:过滤空条件
choose,when,otherwise:选择
where,set:条件
foreach:循环
6.#{}和${}的区别
#{}:占位符,Java和jdbc类型自动转换,防止sql注入,传简单类型值可以是value或者其他
${}:拼接符,Java和jdbc类型不能自动转换,不防止sql注入,传简单类型值只能是value
7. MyBatis编程步骤是什么样的?
1、 创建SqlSessionFactory
2、 通过SqlSessionFactory创建SqlSession
3、 通过sqlsession执行数据库操作
4、 调用session.commit()提交事务
5、 调用session.close()关闭会话
8.简述spring是什么
spring是一个分层的一站式轻量级开源框架
作用:帮助我们管理bean对象
目的:将创建对象的过程交给spring容器
9.简述spring和springmvc之间的关系
springmvc是spring的一部分
spring是跟容器,springmvc是其子容器
在上下文中,springmvc容器可以访问spring容器中的bean
spring容器并不能访问springmvc容器的bean
10.简述spring的2大核心并解释说明
IOC(控制反转):将创建对象的过程交给spring容器
AOP(面向切面编程):核心:横向重复,纵向抽取 本质:动态代理
DI(依赖注入):由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中
11.简述AOP中的名词并解释说明
joinPoint(连接点):可以被增强的方法
pointCut(切入点):实际增强的方法
advice(增强):增强的代码或逻辑
target(目标对象):增强的类
aspect(切面):把增强应用到具体的方法上面的过程成为切面
weaving(织入):把增强应用到目标的过程
pproxy(代理):将通知应用到目标对象的切入点后,形成代理的过程
12.简述AOP中常用方法5种
前置通知:before
后置通知(返回后通知):afterRetruning
环绕通知:around
异常通知(抛出后通知):afterThrowing
最终通知(后通知):after
hadoop
课堂笔记概念部分
1.简述云计算的3种模式 并解释说明
Iaas 基础设施即服务
Paas 平台即服务
Saas 软件即服务
2.简述大数据、云计算、hadoop之间的关系
大数据需要云计算,云计算需要大数据
hadoop是云计算的产物,是云计算的一种实现
云计算的底层是hadoop,用来管理大数据
3.简述hadoop集群中常用的组件
hdfs:分布式文件系统
yarn:分布式资源调度器
mapreduce :分布式基本计算框架
ZooKeeper:分布式协调服务ZooKeeper
HBase:分布式数据库HBase
Sqoop:数据的导入导出
4.简述hadoop中3个node的工作机制
Namenode: 管理着文件系统的Namespace,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log)
SecondaryNameNode:第二名字节点,它定时到NameNode去获取edit logs和系统快照(fsimage)并合并为Eidtlog.new然后在交给名字节点(NameNode).
DataName:DataName按块存储,保存真正的数据
5.简述什么是心跳机制 什么是副本机制
心跳机制 :在namenode和datanode之间维持心跳,当datanode发出的一个数据包没有被namenode收到时,就会认为datanode挂掉了,则重开一台并将数据恢复到新的节点上。
副本机制:每一块都会有2-3个备份存在其他的设备上
6.简述mapreduce的工作流程
map:通过指定的规则截取数据
shuffle:将相同的key放到同一个分区中
reduce:将相同的key保留一个,value的值进行累加。
7.简述HQL与SQL的差异8条
HIVE SQL
(1)查询语言 HQl sql
(2)数据存储位置 HDFS 本地的操作系统的文件系统
(3)数据格式 用户定义 系统定义
(4)数据更新 不支持 支持
(5)索引 无 有
(6)执行(底层) mapReduce Executor
(7)执行延迟 高 低
(8)可扩展性 高 低
(9)数据规模 大 小
8.简述hive中加载数据的4种方式
(1)put 直接加载
(2)load data local inpath '' into tabl 表名 (本地加载)
(3)load data inpath '' into tabl 表名 (hdfs加载)
(4)create table 表名 as 查询语句 (复制加载)
9.简述hive的三种安装模式以及特点
(1)内嵌模式:这是最简单的模式,元数据服务和Hive服务运行在同一个JVM中同时使用内嵌的Derby数据库作为元数据的存储,
该模式最多能支持同时一个用户打开Hive会话。
(2)本地模式:Hive服务和元数据服务仍运行在同一个JVM中不同的是,采用外置的Mysql数据库作为元数据的存储,该方法支持多个用户同时访问hive
(3)远程模式:元数据服务和hive服务运行在不同的JVM中,好处是数据库的底层可以完全地置于防火墙之后,客服端则不需要数据库的验证。
10.简述hbase中都包含什么并解释说明
表名
行键:rowkey(类似于主键)
列族:columnFamily K:V相同列的家族
时间戳:Timestamp 一个key可以有多个value但是每个value都对应有不同的时间戳,默认使用最新的版本。
11.简述hbase和zookeeper之间的交互流程
每个region server 会在zookeeper注册自己的信息zookeeper通过心跳机制管理region server 并将实时数据发送给master
12.简述flume是什么 其中3大组件的作用
flume是数据采集工具。
source(读取数据),channel(数据缓存),sink 下沉(数据写入)
13.简述什么是yarn 在集群中的作用
YARN是分布式资源调度器
作用:控制整个集群并管理应用程序向基础计算资源的分配。
14.简述hadoop1.x与2.x datanode的默认大小
hadoop1.x:64MB
hadoop2.x:128MB
datanode的默认:64MB
15.简述伪分布式和分布式的差异
hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。
hadoop伪分布式:一个节点。
16.什么是nosql,其特点是什么?
非关系型数据库
特点:可以应付超大规模,超大流量以及高并发数据
17.hbase是什么?特点
hbase是nosql
特点:
1.可以处理小型的数据文件
2.可以增删改查
3.执行效率快
4.有索引
5.有事务
18.mysql常用约束5个
主键约束
外键约束
唯一约束
非空约束
默认约束
1.MapReduce的作用?
MapReduce就是个编程思想,解决分布式带来的三个复杂度
1.程序的分布和启动
2.中间数据的缓存和调度
3.任务的监控和失败处理
2.MapReduce的优势和缺点是什么?
优点
1,开发简单:用户不用考虑进程间的通信和套接字编程
2,可扩展性强:当集群资源不能满足计算需求时,可以增加节点的方式达到线性扩展集群的目的。
3,容错性强:对于节点故障导致失败的作业,MapReduce计算框架会自动将作业安排到健康的节点进行,直到任务完成。
缺点
1,执行速度慢:普通的MapReduce作业几分钟完成,数据量大的可能几个小时甚至一天的时间。
2,MapReduce过于低层化:一个简单的查询,需要写Map和reduce函数,复杂且耗费时间,建议使用hive数据库进行处理。
3,不是所有的算法都用MapReduce实现:例如机器学习的模型训练,有赖于状态共享和参数间的依赖,需要维护和更新。
3.说明下图的执行流程?
4.Combiner的作用是什么?
Combiner的作用是在减少数据传输量,如果这样传输key过多的话,网络传输速度会变大很多,这个时候如果采用Combiner,那么就可以在Mapper本地先进性一次数据清洗操作
5.平均数Combiner为什么不能使用?
Combiner的作用是在减少数据传输量,Combiner只应该用于那种Reduce的输入key/value与输出key/value类型完全一致,且不影响最终结果的场景。比如累加,最大值等。
6.partitioner的作用?
Partitioner组件可以决定MapTask输出的数据交由哪个ReuceTask处理。
7.实现partitioner的编程步骤?
1.写一个WordCountpartitioner继承partitioner类
2.重写getPartitioner方法
3.配置partitioner
4.设置分区个数
1.简述string和stringbuffer的区别
StringBuffer有个缓冲区,可变 通过appendf方法添加
String 不可变
1.内存操作方式不同:
StringBuffer会开辟一块字符串缓冲区来修改字符串,而String每次修改都会重新申请内存
2.效率性能不同
StringBuffer操作字符串效率性能优于String
3.方法不同:
追加字符串,String用+,StringBuffer用appendf方法
4.String是不可变的字符序列,因此字符串常量存储在常量池中,而StringBuilder和StringBuffer是可变的字符序列
2.写出string中的常用方法8个以及方法的作用语法
toString():转成字符串类型
equals():判断两个字符串是否相等
subString(starIndex,endIndex):截取起始到结束的字符串值
subStr(starIndex,length):截取起始点截取某个长度的字符串
split(截取规则):根据截取规则进行截取,返回字符串数组
toCharArray():转换为字符串数组
replace():替换
charValue():返回此character对象的值
3.写出list中的常用方法5个以及方法的作用语法
1.void add(int index,E element):在指定位置插入元素,后面的元素都往后移一个元素。
2.E get(int index):返回list集合中指定索引位置的元素
3.int indexOf(Object o):返回list集合中第一次出现o对象的索引位置,如果list集合没有o对象,那么就返回-1
4.ListIterator<E> listIterator():返回此列表元素的列表迭代器(按适当顺序)
5.E remove(int index):删除指定索引的对象
6.E set(int index,E element):在索引index位置的元素更改为element元素
4.写出map中的常用方法5个以及方法的作用语法
1.V put(K key,V value):向map集合添加Key为key,Value为vaue的元素(map集合中的key是不能重复的,
类似于set集合中元素不能重复,但是map集合中的value是可以重复)
2.void clear():把map集合中所有的键值删除
3.boolean containsKey(Object key):检出map集合是否包含key为key的元素,如果有则返回true,否则返回false.
4.boolean containsValue(Object value):检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。
5.V remove(Object key):删除Key为key值的元素
6.Set<K> keySet():返回map集合中所有Key
7.V get(Object key):根据map集合元素的key来获取相应元素的value
5.OverRide和OverLoad的区别
overRide重写
overLoad重载
区别:重载可以在子父类中也可以在本类中
重写只能在子父类中(子类重写父类方法)
6.super和this的用法
super指向父类
this指向当前类对象
7.静态变量和成员变量的区别
1.成员变量所属于对象,所以也称为实例变量;
静态变量所属于类,所以也成为类变量
2.成员变量存在于堆内存中,静态变量存在于方法区中
3.成员变量随着对象创建而存在,随着对象被回收而消失;
静态变量随着类的加载而存在,随着类的消失而消失
4.成员变量只能被对象所调用,静态变量可以被对象调用,也可以被类名调用
所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。
8.形参和实参的区别
一、区别:
1、函数定义方式不同
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
2、使用原理不同
函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
实参是用来填充形参的。当函数被调用时,形参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
3、传值调用和引用调用不同
传值调用和引用调用指的是用于参数传递过程中的一种机制。
传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。
在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,
因此任何发生在形参上的改变实际上都发生在实参变量上。
9.什么是向上转型什么是向下转型
向上转型语法:父类名称 对象名 = new 子类名称();
向下转型语法:子类名称 对象名 = (子类名称)父类对象;
子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。
向下转型是把父类对象转为子类对象。
10.Java中throw和throws的区别
区别1:
throws:跟在方法声明后面,后面跟的是异常类名
throw:用在方法体内,后面跟的是异常类对象名
区别2:
throws:可以跟多个异常类名,用逗号隔开
throw:只能抛出一个异常对象名
区别3:
throws:表示抛出异常,由该方法的调用者来处理
throw:表示抛出异常,由该方法体内的语句来处理
区别4:
throws:throws表示有出现异常的可能性,并不一定出现这些异常
throw:throw则是抛出了异常,执行throw一定出现了某种异常
11.唯一性约束和主键约束的区别:
(1).唯一性约束允许在该列上存在NULL值,而主键约束的限制更为严格,不但不允许有重复,而且也不允许有空值。
(2).在创建唯一性约束和主键约束时可以创建聚集索引和非聚集索引,但在 默认情况下主键约束产生聚集索引,而唯一性约束产生非聚集索引
1.主键约束(PRIMARY KEY)
1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。
2) 是不可能(或很难)更新.
3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).
4) 主健可作外健,唯一索引不可;
2.唯一性约束(UNIQUE)
1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束.
2) 只要唯一就可以更新.
3) 即表中任意两行在 指定列上都不允许有相同的值,允许空(NULL).
4) 一个表上可以放置多个唯一性约束
12.唯一性约束与唯一索引有所不同:
(1).创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
(2).创建唯一索引只会创建一个唯一索引,不会创建Constraint。
也就是说其实唯一约束是通过创建唯一索引来实现的。
在删除时这两者也有一定的区别:
删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,
而删除了唯一索引的话就可以插入不唯一的值。
13.java中static的作用和用法?
static关键字表示静态的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块
用法:static 类名/变量/方法名
static{
静态代码块
}
14.python中定义一个列表存放任意5个元素,实现如下操作
a.随机删除一个元素
list.pop()
b.移除第二个元素
list.pop(1)
c.对列表进行排序
list.reverse()
e.清空列表
del list
list.clear()
15.request和==区别
1.==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.==是指对内存地址进行比较 , equals()是对字符串的内容进行比较
3.==指引用是否相同, equals()指的是值是否相同
16.什么是模块,什么是包?
模块是一个包含所有定义函数和变量的文件,一个py文件就是一个模块
包是一个文件夹,但是文件夹必须有__init__.py文件
1.云计算类型
Iaas(基础设施及服务)
Paas(平台及服务)
Saas(软件及服务)
2.云计算、大数据和人工智能的关系
大数据需要云计算、云计算需要大数据
大数据和人工智能密切相关
hadoop是云计算的产物,是云计算计数的一种实现
云计算的底层是Hadoop,用来管理大数据
3.hadoop的核心组件
hdfs:分布式文件体统
yarn:分布式资源调度器
mapreduce:分布式计算基本计算框架
4.查看防火墙状态:service iptables status
临时停止:service iptables stop
永久停止:chkconfig iptables off
5.hdfs分布式文件系统两个机制
副本机制:一个文件有两个备份
心跳机制:namenode会定期给datanode发送数据包,如果超过时长不回复,重开一台并将数据
恢复到新的节点上
6.Metastore三种安装方式
一、内嵌模式,元数据服务和hive服务运行在同一个JVM中,使用内嵌的Derby数据库作为元数据库
能支持同时最多一个用户打开hive会话。
二、本地模式,元数据服务和hive服务运行在同一个JVM中,使用外置的MySQL作为元数据库,
支持多个用户同时访问hive。
三、远程模式,元数据服务和hive服务运行在不同的进程内,数据库底层可以完全置于防火墙之后,
客户端不需要数据库验证
7.hive与关系型数据库的区别
hive rmdbs
查询语言 hql sql
数据存储位置 hdfs 本地操作系统
数据格式 用户定义 系统定义
数据更新 不支持 支持
索引 无 有
执行 mapreduce executor
执行延迟 高 第
可扩展性 高 低
数据规模 高 低
8.内连接:只查询连接条件相等的所有数据
左外连接:查询坐标所有数据与游标连接,没有匹配的用null代替
left semi join:返回左表的记录,前提是其记录对于右边表满足on语句中的判断条件
1.云计算的三种模式
云计算可分为三大类:公有云、私有云和混合云。
2.yarn是什么?里边的3个核心成员都是谁?其作用是什么
yarn是作业调度和集群资源管理的一个框架。
ResourceManager:rm是集中所有资源的管理者
NodeManager:NM主要负责启动RM分配给AM的container以及代表AM的container,并且会监视container的运行情况。
ApplicationMaster是一个框架特殊的库
3.HDFS中3个核心成员是谁 其作用是什么
Namenode:系统快照+编辑日志
SecondaryNameNode:
SecondaryNameNode拿到系统快照发布项目
拿到编辑日志和系统快照合并为EidtLog.new并交给名字节点
nameNode将.new去掉
DateNode:保存真正的数据
6.Linux中创建一个目录data并在该目录下创建文件test写入内容hello(写出其命令)
echo "Hello,World!" > /tmp/test.txt
7.Linux中r u g o 分别是什么 文件权限中r w x 分别是指什么对应的数值是多少
用户权限,就是你自己的权限。英文:user,简写:u(覆盖标号123)
用户组权限,就是和你同组的人的权限。英文:group,简写:g(覆盖标号456)
其他权限,就是不和你同组的人的权限。英文:others,简写:o(覆盖标号789)
所有人的权限,英文:all,简写:a
1、请简述MapReduce的执行流程?(3分)
Mapper通过指定规则截取数据,shuffer将相同的key放到同一个分区中,reduer将相同的key保留一个,value的值累加,输出到hdfs上
mapreduce是为了解决分布式带来的三个复杂度
1.程序的分布和启动
2.中间数据的缓存和调度
3.任务的监控和失败处理
2、大数据中的4V指的是什么?(3分)
数据量大(Volume)类型繁多(Variety)价值密度低(Value)速度快时效高(Velocity)
3、简述Hadoop的生态圈包含哪些组件?(3分)
Hdfs:分布式文件体统
Yarm:改善MRV1的缺陷
Hive:数据仓库
MapReduce:分布式计算基本计算框架
4、在进行hadoop配置的过程中,核心的配置文件分别是什么?有什么作用?(4分)
core-site.xml: Hadoop核心全局配置文件,可以其他配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性;
hadoop-env.sh:Hadoop环境变量
hdfs-site.xml: HDFS配置文件,该模板的属性继承于core-site.xml
slaves:用于设置所有的slave的名称或IP,每行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有IP映射配置
5.伪分布式和分布式区别
伪分布式运行模式:这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点:
完全分布式模式:真正的分布式,由3个及以上的实体机或者虚拟机组件的机群。