文档库 最新最全的文档下载
当前位置:文档库 › 尚硅谷_宋红康_第4章_高级类特性1

尚硅谷_宋红康_第4章_高级类特性1

尚硅谷大数据技术之ELK

第1章 Elasticsearch 概述 1.1 什么是搜索? 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜欢的电影,或者说找一本喜欢的书,或者找一条感兴趣的新闻(提到搜索的第一印象)。百度 != 搜索 1)互联网的搜索:电商网站,招聘网站,新闻网站,各种app 2)IT 系统的搜索:OA 软件,办公自动化软件,会议管理,日程管理,项目管理。 搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息 1.2 如果用数据库做搜索会怎么样? 如果用数据库做搜索会怎么样? select * from products where product_name list “%牙膏%”商品id 商品名称商品描述 1高露洁牙膏2中华牙膏3 佳洁士牙膏4其他牙膏京东商城搜索框 5 …… 1万条 京东商城后台商品表逐条遍历 1)比如说“商品描述”字段的长度,有长达数千个,甚至数万个字符, 这个时候,每次都要对每条记录的所有文本进行扫描,判断包不包含我指定的这个关键词(比如说“牙膏”),效率非常低。 select * from products where product_name list “%生化机%” 2)还不能将搜索词拆分开来,尽可能去搜索更多的符合你的期望的结果, 比如输入“生化机”,就搜索不出来“生化危机”。 用数据库来实现搜索,是不太靠 谱的。通常来说,性能会很差的。 1千字的商品描述 1千字的商品描述 用数据库来实现搜索,是不太靠谱的。通常来说,性能会很差的。 1.3 什么是全文检索和Lucene ? 1)全文检索,倒排索引 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文搜索搜索引擎数据库中的数据。

尚硅谷_宋红康_sql面试题

SQL面试用题 id 和它的平均工资. 5. 查询平均工资最低的部门信息 6. 查询平均工资最低的部门信息和该部门的平均工资 7. 查询平均工资最高的 job 信息 8. 查询平均工资高于公司平均工资的部门有哪些? 9. 查询出公司中所有 manager 的详细信息. 10. 各个部门中最高工资中最低的那个部门的最低工资是多少 11. 查询平均工资最高的部门的 manager 的详细信息: last_name, department_id, email, salary 12. 查询 1999 年来公司的人所有员工的最高工资的那个员工的信息. 13.返回其它部门中比job_id为‘IT_PROG’部门所有工资都低的员工的 员工号、姓名、job_id 以及salary ************************answers********************* 1.查询每个月倒数第 2 天入职的员工的信息. select last_name, hire_date from employees where hire_date = last_day(hire_date) – 1 2.查询出 last_name 为 'Chen' 的 manager 的信息.

1). 通过两条 sql 查询: select manager_id from employees where lower(last_name) = 'chen' --返回的结果为 108 select * from employees where employee_id = 108 2). 通过一条 sql 查询(自连接): select m.* from employees e, employees m where e.manager_id = m.employee_id and https://www.wendangku.net/doc/313420247.html,st_name = 'Chen' 3). 通过一条 sql 查询(子查询): select * from employees where employee_id = ( select manager_id from employees where last_name = 'Chen' ) 3.查询平均工资高于 8000 的部门 id 和它的平均工资. SELECT department_id, avg(salary) FROM employees e GROUP BY department_id HAVING avg(salary) > 8000 4. 查询工资最低的员工信息: last_name, salary SELECT last_name, salary FROM employees WHERE salary = ( SELECT min(salary) FROM employees ) 5. 查询平均工资最低的部门信息 SELECT * FROM departments WHERE department_id = ( SELECT department_id

01_尚硅谷大数据之HBase简介

第1章HBase简介 1.1 什么是HBase HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE 技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。 HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable 利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google 运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBASE利用Zookeeper作为对应。 1.2 HBase中的角色 1.2.1 HMaster 功能: 1) 监控RegionServer 2) 处理RegionServer故障转移 3) 处理元数据的变更 4) 处理region的分配或移除 5) 在空闲时间进行数据的负载均衡 6) 通过Zookeeper发布自己的位置给客户端 1.2.2 RegionServer 功能: 1) 负责存储HBase的实际数据 2) 处理分配给它的Region 3) 刷新缓存到HDFS 4) 维护HLog 5) 执行压缩

6) 负责处理Region分片 1.2.3 其他组件: 1) Write-Ahead logs HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。 2) HFile 这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。 3) Store HFile存储在Store中,一个Store对应HBase表中的一个列族。 4) MemStore 顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在WAL 中之后,RegsionServer会在内存中存储键值对。 5) Region Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。 1.3 HBase架构

01_尚硅谷大数据之Hive基本概念

第1章Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hive分析数据底层的实现是MapReduce 3)执行程序运行在Yarn上 1.2 Hive的优缺点 1.2.1 优点 1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手) 2)避免了去写MapReduce,减少开发人员的学习成本。 3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合; 4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。 1.2.2 缺点 1)Hive的HQL表达能力有限 (1)迭代式算法无法表达 (2)数据挖掘方面不擅长 2)Hive的效率比较低 (1)Hive自动生成的MapReduce作业,通常情况下不够智能化 (2)Hive调优比较困难,粒度较粗

1.3 Hive架构原理 HDFS MapReduce Meta store SQL Parser 解析器 Physical Plan 编译器Execution 执行器 Query Optimizer 优化器 Driver CLI JDBC Client Hive 架构 如图中所示,Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。 1)用户接口:Client CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive) 2)元数据:Metastore 元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等; 默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore 3)Hadoop 使用HDFS进行存储,使用MapReduce进行计算。 4)驱动器:Driver (1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。 (2)编译器(Physical Plan):将AST编译生成逻辑执行计划。

尚硅谷大数据技术之数仓开发规范

1.背景 为了避免底层业务变动对上层需求影响过大,屏蔽底层复杂的业务逻辑,尽可能简单、完整的在接口层呈现业务数据,建设高内聚松耦合的数据组织,使数据从业务角度可分割,显得尤为重要。从整个集团业务条线出发,形成数据仓库总体概念框架,并对整个系统所需要的功能模块进行划分,明确各模块技术细节,建设一套完整的开发规范。 2.分层规范 ODS(原始数据层):ODS层是数据仓库准备区,为DWD层提供基础原始数据。 DWD(明细数据层):和ODS粒度一致的明细数据,对数据进行去重,脏数据过滤,空处理,保证数据质量。 DWS(服务数据层):轻度汇总数据及建宽表(按主题)存放数据。 ADS(应用数据层):存放应用类表数据。 3.表规范 3.1 命名 维表命名形式:dim_描述 事实表命名形式:fact_描述_[AB] 临时表命名形式:tmp_ 正式表名_ [C自定义序号] 宽表命名形式:dws_主题_描述_[AB] 备份表命名形式:正式表名_bak_yyyymmdd 表命名解释: 1)表名使用英文小写字母,单词之间用下划线分开,长度不超过40个字符,命名一般控制在小于等于6级。 2)其中ABC第一位"A"时间粒度:使用"c"代表当前数据,"h"代表小时数据,"d"代表天

数据,"w"代表周数据,"m"代表月数据,"q"代表季度数据, "y"代表年数据。 3)其中ABC的第二位"B"表示对象属性,用"t"表示表,用"v"表示视图。 4)其中ABC的第三位"C"自定义序号用于标识多个临时表的跑数顺序。 3.2 注释 注释要结合表的英文名,要求注释简洁明了,体现出表的业务出处、主题和用途。3.3 存储格式 所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。在数仓中建表默认用的都是PARQUET存储格式,相关语句如下所示:STORED AS INPUTFORMAT ‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat’ OUTPUTFORMAT ‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat’ 3.5 字符集 Hadoop和hive 都是用utf-8编码的,在建表时可能涉及到中文乱码问题,所以导入的文件的字符编码统一为utf-8格式。 3.6 约定 理论上在数仓落地的表不应该出现null未知类型,对于可能出现null的字段,如果为字符型统一为空字符串,如果是数值则给0。 4.字段规范 4.1 命名

常用sql操作总结_尚硅谷_宋红康

SQL语句的多表查询方式 例如:按照department_id查询employees(员工表)和departments(部门表) 的信息。 方式一(通用型):SELECT ... FROM ... WHERE SELECT https://www.wendangku.net/doc/313420247.html,st_name,e.department_id,d.department_name FROM employees e,departments d where e.department_id = d.department_id 方式二:SELECT ... FROM ... NATURAL JOIN ... 有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id) SELECT last_name,department_id,department_name FROM employees NATURAL JOIN departments 方式三:SELECT ... JOIN ... USING ... 有局限性:好于方式二,但若多表的连接列列名不同,此法不合适 SELECT last_name,department_id,department_name FROM employees JOIN departments USING(department_id) 方式四:SELECT ... FROM ... JOIN ... ON ... 常用方式,较方式一,更易实现外联接(左、右、满) SELECT last_name,e.department_id,department_name FROM employees e JOIN departments d ON e.department_id = d.department_id --内连接 1) --等值连接 --不等值连接 2) --非自连接 --自连接 --外连接 --左外连接、右外连接、满外连接

尚硅谷大数据项目之实时项目2(日活需求)

第1章实时处理模块 1.1 模块搭建 添加scala框架 1.2 代码思路 1)消费kafka中的数据; 2)利用redis过滤当日已经计入的日活设备; 3)把每批次新增的当日日活信息保存到HBASE或ES中;

4)从ES中查询出数据,发布成数据接口,通可视化化工程调用。 1.3 代码开发1 ---消费Kafka 1.3.1 配置 1)config.properties # Kafka配置 kafka.broker.list=hadoop102:9092,hadoop103:9092,hadoop104:9092 # Redis配置 redis.host=hadoop102 rdis.port=6379 2)pom.xml com.atguigu.gmall2019.dw dw-common 1.0-SNAPSHOT org.apache.spark spark-core_2.11 org.apache.spark spark-streaming_2.11 org.apache.kafka kafka-clients 0.11.0.2 org.apache.spark spark-streaming-kafka-0-8_2.11 redis.clients jedis 2.9.0 io.searchbox

宋红康_尚硅谷_Java常用英语汇总

Java常用英语汇总 abstract (关键字) 抽象['.bstr.kt] access vt.访问,存取['.kses]'(n.入口,使用权) algorithm n.算法['.lg.riem] annotation [java]代码注释[.n.u'tei..n] anonymous adj.匿名的[.'n.nim.s]' (反义:directly adv.直接地,立即[di'rektli, dai'rektli]) apply v.应用,适用[.'plai] application n.应用,应用程序[,.pli'kei..n]' (application crash 程序崩溃) arbitrary a.任意的['ɑ:bitr.ri] argument n.参数;争论,论据['ɑ:gjum.nt]'(缩写args) assert (关键字) 断言[.'s.:t] ' (java 1.4 之后成为关键字) associate n.关联(同伴,伙伴) [.'s.u.ieit] attribute n.属性(品质,特征) [.'tribju:t] boolean (关键字) 逻辑的, 布尔型 call n.v.调用; 呼叫; [k.:l] circumstance n.事件(环境,状况) ['s.:k.mst.ns] crash n.崩溃,破碎[kr..] cohesion 内聚,黏聚,结合[k.u'hi:..n] a class is designed with a single, well-focoused purpose. 应该不止这点command n. 命令,指令[k.'mɑ:nd](指挥, 控制) (command-line 命令行) Comments [java]文本注释['k.ments] compile [java] v.编译[k.m'pail]' Compilation n.编辑[,k.mpi'lei..n] const (保留字) constant n. 常量, 常数, 恒量['k.nst.nt] continue (关键字) coupling 耦合,联结['k.pli.] making sure that classes know about other classes only through their APIs. declare [java]声明[di'kl..]

大数据技术之MySQL高级

尚硅谷大数据技术之MySQL高级 版本V3.0 第1章MySQL简介 1.1 什么是MySQL (1)MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 公司。 (2)Mysql是开源的,可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。 (3)MySQL使用标准的SQL数据语言形式。 (4)MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 (5)MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。 1.2 在Linux上安装MySQL 1.2.1 检查当前系统是否安装过MySQL CentOS 6命令:rpm -qa|grep mysql 默认Linux在安装的时候,自带了mysql相关的组件。 先卸载系统自带的mysql,执行卸载命令rpm -e --nodeps mysql-libs 1

CentOS 7命令:rpm -qa|grep mariadb 不检查依赖卸载 检查/tmp目录的权限是否是满的 1.2.2 Mysql的安装 安装的版本是mysql 5.7,官网下载地址:https://www.wendangku.net/doc/313420247.html,/downloads/mysql/ 1)通过Xft5文件传输工具将rpm安装包传输到opt目录下 2)执行rpm安装,必须按照下面的顺序安装 1)rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 2)rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm 3)rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 4)rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 2

07_尚硅谷大数据之HBase优化

第7章HBase优化 7.1 高可用 在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。 1)关闭HBase集群(如果没有开启则跳过此步) [atguigu@hadoop102 hbase]$ bin/stop-hbase.sh 2)在conf目录下创建backup-masters文件 [atguigu@hadoop102 hbase]$ touch conf/backup-masters 3)在backup-masters文件中配置高可用HMaster节点 [atguigu@hadoop102 hbase]$ echo hadoop103 > conf/backup-masters 4)将整个conf目录scp到其他节点 [atguigu@hadoop102 hbase]$ scp -r conf/ hadoop103:/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/ [atguigu@hadoop102 hbase]$ scp -r conf/ hadoop104:/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/ 5)打开页面测试查看 0.98版本之前:http://hadooo102:60010 0.98版本及之后:http://hadooo102:16010 7.2 预分区 每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey 范围,则该数据交给这个region维护。那么依照这个原则,我们可以将数据索要投放的分区提前大致的规划好,以提高HBase性能。 1)手动设定预分区 hbase> create 'staff','info','partition1',SPLITS => ['1000','2000','3000','4000'] 2)生成16进制序列预分区 create 'staff2','info','partition2',{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'} 3)按照文件中设置的规则预分区 创建splits.txt文件内容如下: create 'staff3','partition3',SPLITS_FILE => 'splits.txt' 4)使用JavaAPI创建预分区

02_尚硅谷大数据之Hive安装

第2章Hive安装 2.1 Hive安装地址 1)Hive官网地址: https://www.wendangku.net/doc/313420247.html,/ 2)文档查看地址: https://https://www.wendangku.net/doc/313420247.html,/confluence/display/Hive/GettingStarted 3)下载地址: https://www.wendangku.net/doc/313420247.html,/dist/hive/ 4)github地址: https://https://www.wendangku.net/doc/313420247.html,/apache/hive 2.2 Hive安装部署 1)Hive安装及配置 (1)把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下 (2)解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面 [atguigu@hadoop102 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/ (3)修改apache-hive-1.2.1-bin.tar.gz的名称为hive [atguigu@hadoop102 module]$ mv apache-hive-1.2.1-bin/ hive (4)修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh [atguigu@hadoop102 conf]$ mv hive-env.sh.template hive-env.sh (5)配置hive-env.sh文件 (a)配置HADOOP_HOME路径 export HADOOP_HOME=/opt/module/hadoop-2.7.2 (b)配置HIVE_CONF_DIR路径 export HIVE_CONF_DIR=/opt/module/hive/conf 2)Hadoop集群配置 (1)必须启动hdfs和yarn [atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh [atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

13_尚硅谷大数据之常见错误及解决方案

第13章常见错误及解决方案 1)SecureCRT 7.3出现乱码或者删除不掉数据,免安装版的SecureCRT 卸载或者用虚拟机直接操作或者换安装版的SecureCRT 2)连接不上mysql数据库 (1)导错驱动包,应该把mysql-connector-java-5.1.27-bin.jar导入/opt/module/hive/lib的不是这个包。错把mysql-connector-java-5.1.27.tar.gz导入hive/lib包下。 (2)修改user表中的主机名称没有都修改为%,而是修改为localhost 3)hive默认的输入格式处理是CombineHiveInputFormat,会对小文件进行合并。 hive (default)> set hive.input.format; hive.input.format=https://www.wendangku.net/doc/313420247.html,bineHiveInputFormat 可以采用HiveInputFormat就会根据分区数输出相应的文件。 hive (default)> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; 4)不能执行mapreduce程序 可能是hadoop的yarn没开启。 5)启动mysql服务时,报MySQL server PID file could not be found! 异常。 在/var/lock/subsys/mysql路径下创建hadoop102.pid,并在文件中添加内容:4396 6)报service mysql status MySQL is not running, but lock file (/var/lock/subsys/mysql[失败])异常。 解决方案:在/var/lib/mysql 目录下创建:-rw-rw----. 1 mysql mysql 5 12月22 16:41 hadoop102.pid 文件,并修改权限为777。 附录:Sqoop常用命令及参数手册 这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。

高清现场:尚硅谷区块链、AI技术沙龙人气爆棚!

下一届技术沙龙即将举办 我们在北京相聚 敬请期待! 2018年4月1日,来自各企业的IT技术人员、编程爱好者、教育从业者等百余位专业技术人士,齐聚深圳西部硅谷大厦,参加了由尚硅谷教育举办的“渔人节”IT技术交流研讨会。尚硅谷教育知名讲师韩顺平、宋红康、封捷等做了主题演讲,尚硅谷教育创始人佟刚老师(学员昵称:刚哥)出席了研讨会。 签到处排成了长队

座无虚席的沙龙现场,不得不临时加座 此次沙龙,是深圳少有的IT互联网专业技术沙龙。原本规划30人的规模,因报名太多,不得不连夜紧急寻找更大的场地,以尽可能多地满足大家的参会需求。沙龙的议题从程序员创业,到AI(人工智能)、区块链,专属IT从业者的聚会,专业性和活跃感并存。 各位嘉宾具体都分享了什么内容呢?一起来看看吧。 一 刚刚录制了Linux教程的韩顺平老师做了开场演讲。

韩老师分享了自己的创业历程和心得,以及加入尚硅谷的前因后果(详见:创业不易,尚硅谷教育延续初心)。韩老师说,从事一个行业,经验累积非常重要,所有的经历都是收获;软件工程师作为专业技术人员,更应该选对方向,努力不懈。 二 科技发展瞬息万变,每个时代都有每个时代的领军人物和代表性的技术方向,人工智 能正是当今时代的主角之一。 人类制造人工智能,目的是为了要造出机器人,和人差不多吗?或者换句话说,人类 今天能够站在食物链的顶端,靠的是什么呢?在引人深思的发问中,宋红康老师的《无学习,不AI》演讲开始了。 宋老师对人工智能的发展历程、深度学习崛起的时代背景和应用场景,以及常见的机 器学习算法、深度学习网络结构的技术趋势及应用,进行了生动幽默的全景式展现。 最后,以是否出现不可避免的人机大战收尾,引发全场思考。

7_尚硅谷大数据之HDFS概述

一HDFS概述 1.1 HDFS产生背景 随着数据量越来越大,在一个操作系统管辖的范围内存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。 1.2 HDFS概念 HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。 1.3 HDFS优缺点 1.3.1 优点 1)高容错性 (1)数据自动保存多个副本。它通过增加副本的形式,提高容错性; (2)某一个副本丢失以后,它可以自动恢复。 2)适合大数据处理 (1)数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据; (2)文件规模:能够处理百万规模以上的文件数量,数量相当之大。 3)流式数据访问,它能保证数据的一致性。 4)可构建在廉价机器上,通过多副本机制,提高可靠性。 1.3.2 缺点 1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。 2)无法高效的对大量小文件进行存储。 (1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,因为NameNode的内存总是有限的; (2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。 3)并发写入、文件随机修改。

(1)一个文件只能有一个写,不允许多个线程同时写; (2)仅支持数据append(追加),不支持文件的随机修改。 1.4 HDFS组成架构 HDFS的架构图 这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分。 1)Client:就是客户端。 (1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行存储; (2)与NameNode交互,获取文件的位置信息; (3)与DataNode交互,读取或者写入数据; (4)Client提供一些命令来管理HDFS,比如启动或者关闭HDFS; (5)Client可以通过一些命令来访问HDFS; 2)NameNode:就是Master,它是一个主管、管理者。 (1)管理HDFS的名称空间; (2)管理数据块(Block)映射信息; (3)配置副本策略; (4)处理客户端读写请求。 3) DataNode:就是Slave。NameNode下达命令,DataNode执行实际的操作。 (1)存储实际的数据块;

05_尚硅谷大数据之Kafka producer拦截器(interceptor)

第5章Kafka producer拦截器(interceptor) 5.1 拦截器原理 Producer拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 对于producer而言,interceptor使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer允许用户指定多个interceptor 按序作用于同一条消息从而形成一个拦截链(interceptor chain)。Intercetpor的实现接口是org.apache.kafka.clients.producer.ProducerInterceptor,其定义的方法包括: (1)configure(configs) 获取配置信息和初始化数据时调用。 (2)onSend(ProducerRecord): 该方法封装进KafkaProducer.send方法中,即它运行在用户主线程中。Producer确保在消息被序列化以及计算分区前调用该方法。用户可以在该方法中对消息做任何操作,但最好保证不要修改消息所属的topic和分区,否则会影响目标分区的计算 (3)onAcknowledgement(RecordMetadata, Exception): 该方法会在消息被应答或消息发送失败时调用,并且通常都是在producer回调逻辑触发之前。onAcknowledgement运行在producer的IO线程中,因此不要在该方法中放入很重的逻辑,否则会拖慢producer的消息发送效率 (4)close: 关闭interceptor,主要用于执行一些资源清理工作 如前所述,interceptor可能被运行在多个线程中,因此在具体实现时用户需要自行确保线程安全。另外倘若指定了多个interceptor,则producer将按照指定顺序调用它们,并仅仅是捕获每个interceptor可能抛出的异常记录到错误日志中而非在向上传递。这在使用过程中要特别留意。 5.2 拦截器案例 1)需求: 实现一个简单的双interceptor组成的拦截链。第一个interceptor会在消息发送前将时间戳信息加到消息value的最前部;第二个interceptor会在消息发送后更新成功发送消息数或

尚硅谷大数据技术之Phoenix

第1章Phoenix简介 1.1Phoenix定义 Phoenix是HBase的开源SQL皮肤。可以使用标准JDBC API代替HBase客户端API来创建表,插入数据和查询HBase数据。 1.2 Phoenix特点 1) 容易集成:如Spark,Hive,Pig,Flume和Map Reduce。 2) 操作简单:DML命令以及通过DDL命令创建和操作表和版本化增量更改。 3) 完美支持Hbase二级索引创建。 1.3 Phoenix架构 Phoenix架构

1.4 Phoenix的作用 第2章Phoenix快速入门 2.1 Phoenix安装部署 2.1.1 官方网址: 2.1.2 上传jar包到/opt/software/ 2.1.3 复制server和client这俩个包拷贝到各个节点的hbase/lib 在phoenix目录下 向每个节点发送server jar

向每个节点发送client jar 2.1.4 在root权限下给/etc/profile 下添加如下内容 2.1.5 启动Zookeeper,Hadoop,Hbase 2.1.6 启动Phoenix 2.2 phoenix表操作 2.2.1 显示所有表

2.2.2 创建表 如下显示: 在phoenix中,默认情况下,表名等会自动转换为大写,若要小写,使用双引号,如"us_population"。 2.2.3 插入记录 2.2.4 查询记录 2.2.5 删除记录 2.2.6 删除表 2.2.7 退出命令行 2.3 phoenix表映射 2.3.1 Phoenix和Hbase表的关系 默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的。如图1和图2,US_POPULATION是在phoenix中直接创建的,而kylin相关表是在hbase中直接创建的,在phoenix中是查看不到kylin等表的。

115个Java面试题和答案——终极(上)_尚硅谷_宋红康

题目:115个Java面试题和答案——终极(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java 和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。 目录 面向对象编程(OOP) 常见的Java问题 Java线程 Java集合类 垃圾收集器 面向对象编程(OOP) Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在Java当中,有3种修饰符:public,private和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 下面列出了使用封装的一些好处: 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。 禁止对象之间的不良交互提高模块化。

参考这个文档获取更多关于封装的细节和示例。 多态 多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。 继承 继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。 抽象 抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。Java支持创建只暴漏接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开。 抽象和封装的不同点 抽象和封装是互补的概念。一方面,抽象关注对象的行为。另一方面,封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。 常见的Java问题 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。 2.JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。 3.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

大数据技术之Atlas(5元数据管理)

尚硅谷大数据技术之Atlas(元数据管理) 第1章Atlas入门 1.1 Atlas概述 Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队,提供围绕这些数据资产的协作功能。 1)表与表之间的血缘依赖 2)字段与字段之间的血缘依赖 1

2 1.2 Atlas 架构原理 Atlas 架构原理 类型系统(Type System): 用户为他们想要管理的元数据对象定义模型。Type System 称为“实体”的“类型”实例,表示受管理的实际元数据对象。 图形引擎(Graph Engine): Atlas 在内部使用Graph 模型持久保存它管理的元数据对象。 采集/导出(Ingest/Export):采集组件允许将元数据添加到Atlas 。同样,“导出”组件将Atlas 检测到的元数据导出。API: Atlas 的所有功能都通过REST API 向最终用户暴露,该API 允许创建,更新和删除类型和实体。它也是查询和发现Atlas 管理的类型和实体的主要机制。 Messaging: 除了API 之外,用户还可以选择使用基于Kafka 的消息传递接口与Atlas 集成。 Metadata Sources :目前,Atlas 支持从以下来源提取和管理元数据:HBase 、Hive 、Sqoop 、Storm 、Kafka Admin UI: 该组件是一个基于Web 的应用程序,允许数据管理员和科学家发现和注释元数据。这里最重要的是搜索界面和类似SQL 的查询语言,可用于查询Atlas 管理的元数据类型和对象。 Ranger Tag Based Policies :权限管理模块Business Taxonomy :业务分类 Metadata Store:采用HBase 来存储元数据Index Store:采用Solr 来建索引 第2章 Atlas 安装及使用 1) Atlas 官网地址:s:https://www.wendangku.net/doc/313420247.html,/ 2)文档查看地址:s:https://www.wendangku.net/doc/313420247.html,/0.8.4/index.html 3)下载地址:s:https://www.wendangku.net/doc/313420247.html,/dyn/closer.cgi/atlas/0.8.4/apache-atlas-0.8.4-sources.tar.gz

相关文档
相关文档 最新文档