hadoop面试
hadoop.apache.org
spark.apache.org
flink.apache.org
hadoop :HDFS/YARN/MAPREDUCE
HDFS读写流程
NameNode
DataNode
SecondaryNameNode
写流程
1. 客户端请求NameNode (几副本,block大小和个数)
2 NameNode返回可以存的datanode,存储元数据信息
3. 数据按最近原则存储,DN->DN-->DN
读流程
client 请求NameNode, 将元数据信息返回给客户端,客户端到最近的DataNode数据地址获取数据。
NameNode HA高可用
1. 两个NameNode ,一个active状态,一个standby 状态
2. 同一时间节点只有active提供服务
3. standy 负责同步备份active的状态。
4. 有监控器监控active,active 挂了后,standy 变成active状态。
5. 过程中用到zk
小文件
引起小文件的原因:
1. spark 任务产生大量小文件
2. reduce, task是数据设置分区太多等
3.源数据本身就有大量小文件,上传到hdfs
小文件给hadoop带来的瓶颈
1. 磁盘io问题
2. 性能问题:任务开启和销毁开销大
3. 导致NameNode大量元数据信息,消耗大量的内存
如何解决小文件问题
SQL on hadoop 业界常用框架
hive : sql => 对应的执行引擎的作业:MapRedduce/Spark/Tez
imala: 很吃内存
Presto:JD 用的多
Drill:
Phoenix:HBase(基于rowkey 查询),可以提供2级索引
Spark SQL:Spark 社区
MetaStore:存储元数据信息
sql on hadoop 调优策略
调优:在资源不变的前提下,让作业的执行性能有提升,调两大类:CPU负载,IO负载
1.架构层面调优
分表
分区表 partition
充分利用中间结果集
压缩:
使用压缩算法“减少数据的过程”, 减少磁盘IO ,网路IO
gzip
压缩在大数据中使用场景:
1.输入数据
2.中间数据
3.输出数据
前提:
1. 行式存储
2.每分钟2亿条数据
业务架构:
Flume => HDFS=> Spark ETL => Spark SQL => SQL => Spark SQL/NoSQL
分区表,多分区(d/h) 分区表,多分区(d/h)
大宽表 统计分析结果表供可视化结果展示
用户日志:
分区表:单级分区,多级分区,静态分区,动态分区
2. 语法层面调优
排序 order by/sort by/distribute by/cluster by
控制输出的数量(reduce/partition/task)
join:普通join/mapjoin
执行计划
3. 执行层面调优
推测执行
并行执行
JVM重用
储存方式
行式存储
列式存储:
1.相较于行式存储,列式存储的查询速度非常快。
2.数据易维护,当我们更新数据时,历史数据会有版本号,不会被改变或者消失。
3.非常适合大数据分析和高并发。
但是,缺点也很明显。列式存储在表关联上确实让人“头痛”不已。
总结下来,我突然觉得列式存储适合做数据分析,在业务繁杂的生产系统方面可能有所欠缺。
hadoop面试的更多相关文章
- hadoop面试100道收集(带答案)
1.列出安装Hadoop流程步骤 a) 创建hadoop账号 b) 更改ip c) 安装Java 更改/etc/profile 配置环境变量 d) 修改host文件域名 e) 安装ssh 配置无密码登 ...
- hadoop面试时可能遇到的问题
面试hadoop可能被问到的问题,你能回答出几个 ? 1.hadoop运行的原理? 2.mapreduce的原理? 3.HDFS存储的机制? 4.举一个简单的例子说明mapreduce是怎么来运行的 ...
- 网上找的hadoop面试题目及答案
1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式全分布式模式2. 单机(本地)模式中的注意点? 在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM ...
- hadoop面试时的一些问题解答
一. linux部分 请阐述swap分区作用,您认为hadoop集群中的linux是否必须有swap分区? 答:在Linux中,如果一个进程的内存空间不足,那么,它会将内存中的部分数据 ...
- Hadoop面试题目
1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式 全分布式模式 2. 单机(本地)模式中的注意点? 在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个 ...
- Hadoop面试链接
http://blog.csdn.net/haohaixingyun/article/details/52819457 http://blog.csdn.net/kingmax54212008/art ...
- Hadoop 面试总结
1.简要描述如何安装配置一个开源的hadoop,只描述即可,列出完整步骤. a.创建一个用户和用户组,用来管理hadoop项目 b.修改确定ip地址:vim /etc/sysconfig/networ ...
- hadoop面试复习笔记(1)
0.Mappereduce采用的是Master/Slaves模型 1.Hadoop是一个开源软件框架,支持支持大数据集的存储和处理.Apache Hadoop是存储和处理大数据的解决方案你是因为: ( ...
- 【转载】Hadoop面试(1)
转自:http://www.cnblogs.com/xiaolong1032/p/4504992.html 列举出hadoop常用的一些InputFormat InputFormat是用来对我们的输入 ...
随机推荐
- 【LeetCode】744. Find Smallest Letter Greater Than Target 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 线性扫描 二分查找 日期 题目地址:https:// ...
- Sentry 开发者贡献指南 - SDK 开发(事件负载)
内容整理自官方开发文档 系列 Docker Compose 部署与故障排除详解 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentr ...
- 第十个知识点:RSA和强RSA问题有什么区别?
第十个知识点:RSA和强RSA问题有什么区别 这个密码学52件事数学知识的第一篇,也是整个系列的第10篇.这篇介绍了RSA问题和Strong-RSA问题,指出了这两种问题的不同之处. 密码学严重依赖于 ...
- uniapp中使用animate.css4.1.1动画库在小程序中不生效解决办法
找到源码animate.css修改以下代码 :root { --animate-duration: 1s; --animate-delay: 1s; --animate-repeat: 1; } // ...
- Java初学者作业——编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级。定义方法实现学生成绩的评测功能。
返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级.要求:定义方法实现学生成绩的评测功能. 学生的英语考试成绩进行评测,评测规 ...
- Spring进一步学习
目录 1.beans.xml编写 2.别名 (1)alias (2)name 3.依赖注入(DI) (1)数组注入 (2)List注入 (3)Map注入 (4)set注入 (5)Null注入 (6)p ...
- .NET 编码的基础知识
.NET 编码的一些基本概念和分析 简单的类型概念 Hex (16进制) byte 字节 范围是:0~255,二进制下的范围就是00000000~11111111,相当于1字节. byte[] 字节数 ...
- PHP 中的多进程使用,进程通信、进程信号等详解
多进程环境要求 Linux 系统 php-cli 模式 pcntl 扩展 或 swoole 扩展 pcntl 扩展 <?php $str = "hello world!" . ...
- STM32时钟系统的配置寄存器和源码分析
一.时钟系统 概述 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令,时钟系统就是CPU的脉搏,决定cpu速率. STM32有多个时钟来源的选择,为什么 STM32 要有多个时钟源呢 ...
- c# - 关于位移符号 >> 和 << 的使用
1.前言 这是对二进制数据进行位移的方法 2.操作 using System; namespace ConsoleApp1.toValue { public class test1 { public ...