帝国cms怎样做网站迁移,苏州网站建设在哪里,网站后台更新栏目,手机号申请邮箱HDFS 分布式存储 spark storm HBase
分布式结构 master slave
name node client 负责文件的拆分 128MB 3份
data node
MapReduce 分布式计算 离线计算 2.X之前 速度比较慢 对比spark
编程思想 Map 分 Reduce 合
hadoop streaming Mrjob
Yarn 资源管理 cpu 内存 MapReduc…HDFS 分布式存储 spark storm HBase
分布式结构 master slave
name node client 负责文件的拆分 128MB 3份
data node
MapReduce 分布式计算 离线计算 2.X之前 速度比较慢 对比spark
编程思想 Map 分 Reduce 合
hadoop streaming Mrjob
Yarn 资源管理 cpu 内存 MapReduce spark 分布式计算
RM NM AM
社区版 CDH
什么是Hive 基于Hadoop 数据保存到HDFS 数据仓库工具 结构化的数据 映射为一张数据库表 01,张三,89 02,李四,91 03,赵武,92 HQL查询功能 (Hive SQL) 本质 把HQL翻译成MapReduce 降低使用hadoop计算的门槛 离线数据分析开发效率比直接用MapReduce 高
Hive架构
用户接口shell命令行元数据存储 数据库 表 都保存到那些位置上表中的字段名字 类型mysql derby(自带) Drive 负责把HQL翻译成mapreduce或者翻译成 shell 命令
Hive和Hadoop关系
利用hdfs存数据 利用mr算Hive只需要跟 Master节点打交道 不需要集群
Hive和关系型数据库区别
hive 离线计算 海量查询hive最主要做查询 不涉及删除修改 默认不支持删除修改默认不支持事务并不完全支持标准sqlsql CRUD全部支持 支撑在线业务索引完整 支持事务
Hive 基本使用
创建表
CREATE TABLE student(classNo string, stuNo string, score int) row format delimited fields terminated by ,;字段不需要指定占多少字节 需要通过row format delimited fields terminated by ,指定列的分隔符 加载表数据的时候尽量使用 load data方式 把整个文件put上去 load data local inpath /home/hadoop/tmp/student.txtoverwrite into table student;内部表和外部表 managed table 创建表的时候 CREATE TABLE 表名字段名 字段类型row format delimited fields terminated by ,删除表 元数据和数据一起删除 数据位置 默认是/user/hive/warehouse external table 建表语句 CREATE External TABLE 表名字段名 字段类型row format delimited fields terminated by , location 数据在hdfs上的路径;删除表 只删除元数据 数据会保留 数据可以在hdfs上的任意位置 分区表 当数据量比较大的时候使用分区表可以缩小查询的数据范围 分区表实际上就是在表的目录下创建的子目录 如果有分区表的话查询的时候尽量要使用分区字段 创建分区表的语句 create table 表名 (字段名字段类型....) partitioned by (分区字段名 分区字段类型) row format delimited fields terminated by , lines terminated by \n stored as textfile;向分区表中插入数据 load data local inpath /home/hadoop/tmp/employee.txt into table 表名 partition(分区字段名字分区的具体值);添加分区 alter table 表名 add if not exists partition(分区字段名字分区的具体值);动态分区 插入数据的时候指定分区的字段会自动帮助创建分区所对应的文件夹 需要关掉默认设置 set hive.exec.dynamic.partition.modenonstrict;UDF自定义函数 hive提供的函数不能满足需求的时候就可以使用自定函数 使用别人已经编译好的.jar jar加到 hive环境中 jar 可以在hdfs上 也可是在centos 上 创建一个临时函数 CREATE TEMPORARY FUNCTION 自定义函数名字 as 自定义函数在jar包中的包名创建一个永久函数 CREATE FUNCTION 自定义函数名字 as 自定义函数在jar包中的包名 using jar jar位置;自己写python脚本实现udf、udaf add file python文件的位置 SELECT TRANSFORM(fname, lname) USING python udf1.py AS (fname, l_name) FROM u;综合案例 collect_set/collect_list group by之后 针对某一列聚合 结果放到[]区别 一个去重 一个不去重 lateral view explode explode函数 把复杂数据类型 array map 拆开 一行变多行 lateral view 和explode函数 配合使用 创建虚拟视图 可以把explode的结果和其它列一起查询 select article_id,kw from articles
lateral view outer explode(key_words) t as kwCONCAT, CONCAT_WS 不同列的字符串拼接到一起concat_ws 可以把array中的元素拼接到同一个字符串中 指定分割符 str_to_map 把具有key:value形式的字符串转换成map
sqoop 介绍 作用 数据交换工具 可以实现 数据在mysql oracle hdfs之间互相传递 原理 通过写sqoop 命令 把sqoop命令翻译成mapreduce 通过mapreduce连接各种数据源 实现数据的传递 通过sqoop 把数据从mysql导入到hdfs sqoop import --connect jdbc:mysql://mysql数据库地址:3306/数据库名字 --username root --password password --table 要导出数据的表名 -m mrjob的数量默认会把文件导入到 hdfs上 /user/linux用户名 文件夹下通过 --target-dir指定其它位置
HBase介绍 分布式开源数据库 面向列 Big Table开源实现 适合非结构化数据的存储 PB级别数据 可以支撑在线业务 分布式系统特点 易于扩展支持动态伸缩并发数据处理
面向列数据库 关系型数据库行式存储 每一行数据都是连续的 所有的记录都放到一个连续的存储空间中 列数据库 列式存储 每一列对应一个文件 不同列并不对应连续的存储空间 结构化数据 V.S. 非结构化数据 结构化数据 预定义的数据模型 模型一旦确定不会经常变化表结构不会频繁调整 非结构化数据 没有预定义数据模型模型不规则 不完整文本 图片 视频 音频 Hive 和 Hbase区别 hive hbase 共同点 都可以处理海量数据文件都是保存到hdfs上 hive 和 hbase不同 计算不是通过mapreduce实现的 自己实现的CRUD功能hive 通过mapreduce实现 数据查询的hbase 可以有集群 集群的管理是通过zookeeper实现hive 只能做离线计算hbase 提供对数据的随机实时读/写访问功能 HBase 对事务的支持 只支持行级别的事务 CAP定理 分区容错性 分布式系统都要有的特性任何时候都要能提供服务 P保证HBase CP系统 强一致性
Hbase 数据模型
NameSpace 对应 关系型数据库 database表(table)用于存储管理数据具有稀疏的、面向列的特点。行 row 每一行都对应一个row key 行键 Hbase有索引但是只是在行键 rowkey有索引列 Column family 和 Column qualifier 组成列族ColumnFamily保存的就是 键值对集合 key:value时间戳(TimeStamp)是列的一个属性
Hbase 和 传统关系型数据库区别 创建HBase表的时候只需要指定表名 和 列族 每一个行当中 只需要列族相同就可以了 至于每个列族中的 key:value对 key可以完全不同
HBase基础架构 Client Zookeeper 保证HMaster有一个活着HRegionServer HMaster地址存储监控Region Server状态 将Region Server信息通知HMaster元数据存储 HMaster HRegionServer HStore 每一个column family 对应了一个HStore HRegion HLog
面向列数据库 列式存储
适合存非关系型数据
hbase 创建表的过程很简单 只需要指定表名和列族的名字就可以了
create ‘表名’,‘列族名字’
NameSpace -》数据库
table
row-key 行键 hbase的索引只在 row-key才有
column family 列族 keyvalue 这里面key 又叫 column quanlifier
不同行的 相同的column family 中 column quanlifier可以完全不同
组件 HMaster HRegionServer HRegion Hstore (一个列族对应) memstorestorefile
如果遇到 hdfs safe mode
通过 hdfs dfsadmin -safemode leave
hive 一定要先启动元数据服务
hive --service metastore