mrs
- 组件操作指南
- 使用Alluxio
- 使用CarbonData(MRS 2.x及之前版本)
- 使用CarbonData(MRS 3.x及之后版本)
- 概述
- 配置参考
- CarbonData操作指导
- CarbonData性能调优
- CarbonData访问控制
- CarbonData语法参考
- CarbonData故障处理
- CarbonData FAQ
- 为什么对decimal数据类型进行带过滤条件的查询时会出现异常输出?
- 如何避免对历史数据进行minor compaction?
- 如何在CarbonData数据加载时修改默认的组名?
- 为什么INSERT INTO CARBON TABLE失败?
- 为什么含转义字符的输入数据记录到Bad Records中的值与原始数据不同?
- 为什么Bad Records导致数据加载性能降低?
- 当初始Executor为0时,为什么INSERT INTO/LOAD DATA任务分配不正确,打开的task少于可用的Executor?
- 为什么并行度大于待处理的block数目时,CarbonData仍需要额外的executor?
- 为什么在off heap时数据加载失败?
- 为什么创建Hive表失败?
- 为什么在V100R002C50RC1版本中创建的CarbonData表不具有Hive特权为非所有者提供的特权?
- 如何在不同的namespaces上逻辑地分割数据
- 为什么drop数据库抛出Missing Privileges异常?
- 为什么在Spark Shell中不能执行更新命令?
- 如何在CarbonData中配置非安全内存?
- 设置了HDFS存储目录的磁盘空间配额,CarbonData为什么会发生异常?
- 为什么数据查询/加载失败,且抛出“org.apache.carbondata.core.memory.MemoryException: Not enough memory”异常?
- 使用ClickHouse
- 使用DBService
- 使用Flink
- 使用Flume
- 使用HBase
- 从零开始使用HBase
- 使用HBase客户端
- 配置HBase备份
- 配置HBase参数
- 启用集群间拷贝功能
- 使用ReplicationSyncUp工具
- 使用HIndex
- 创建HBase角色
- 配置RSGroup
- 配置HBase容灾
- HBase容灾业务切换
- HBase容灾主备集群倒换
- 社区BulkLoad Tool
- 自研增强BulkLoad Tool
- 配置MOB
- 配置安全的HBase Replication
- 配置Region Transition恢复线程
- 使用二级索引
- HBase日志介绍
- HBase性能调优
- HBase常见问题
- 客户端连接服务端时,长时间无法连接成功
- 结束BulkLoad客户端程序,导致作业执行失败
- 在HBase连续对同一个表名做删除创建操作时,可能出现创建表异常
- HBase占用网络端口,连接数过大会导致其他服务不稳定
- HBase bulkload任务(单个表有26T数据)有210000个map和10000个reduce,任务失败
- 如何修复长时间处于RIT状态的Region
- HMaster等待namespace表上线时超时退出
- 客户端查询HBase出现SocketTimeoutException异常
- 使用scan命令仍然可以查询到已修改和已删除的数据
- 在启动HBase shell时,为什么会抛出“java.lang.UnsatisfiedLinkError: Permission denied”异常
- 在HMaster Web UI中显示处于“Dead Region Servers”状态的RegionServer什么时候会被清除掉
- 使用HBase bulkload导入数据成功,执行相同的查询时却可能返回不同的结果
- 如何处理由于Region处于FAILED_OPEN状态而造成的建表失败异常
- 如何清理由于建表失败残留在ZooKeeper中/hbase/table-lock目录下的表名
- 为什么给HDFS上的HBase使用的目录设置quota会造成HBase故障
- 为什么在使用OfflineMetaRepair工具重新构建元数据后,HMaster启动的时候会等待namespace表分配超时,最后启动失败
- 为什么splitWAL期间HMaster日志中频繁打印出FileNotFoundException及no lease信息
- 当使用与Region Server相同的Linux用户但不同的kerberos用户时,为什么ImportTsv工具执行失败报“Permission denied”的异常
- 租户访问Phoenix提示权限不足
- 租户使用HBase bulkload功能提示权限不足
- 如何解决HBase恢复数据任务失败后错误详情中提示:Rollback recovery failed的回滚失败问题
- 如何修复Region Overlap
- HBase RegionServer GC 参数Xms,Xmx配置31G,导致RegionServer启动失败
- 使用集群内节点执行批量导入,为什么LoadIncrementalHFiles工具执行失败报“Permission denied”的异常
- 使用HDFS
- 从零开始使用Hadoop
- 配置内存管理
- 创建HDFS角色
- 使用HDFS客户端
- 使用distcp命令
- HDFS文件系统目录简介
- 更改DataNode的存储目录
- 配置HDFS目录权限
- 配置NFS
- 规划HDFS容量
- 设置HBase和HDFS的ulimit
- 配置DataNode容量均衡
- 配置DataNode节点间容量异构时的副本放置策略
- 配置HDFS单目录文件数量
- 配置回收站机制
- 配置文件和目录的权限
- 配置token的最大存活时间和时间间隔
- 配置磁盘坏卷
- 使用安全加密通道
- 在网络不稳定的情况下,降低客户端运行异常概率
- 配置NameNode blacklist
- 优化HDFS NameNode RPC的服务质量
- 优化HDFS DataNode RPC的服务质量
- 配置LZC压缩
- 配置DataNode预留磁盘百分比
- 配置HDFS NodeLabel
- 配置HDFS Mover
- 配置HDFS DiskBalancer
- 配置HDFS EC存储
- 配置从NameNode支持读
- 使用HDFS文件并发操作命令
- 对接AWS S3文件系统
- HDFS日志介绍
- HDFS性能调优
- HDFS常见问题
- NameNode启动慢
- DataNode状态正常,但无法正常上报数据块
- HDFS Web UI无法正常刷新损坏数据的信息
- distcp命令在安全集群上失败并抛出异常
- 当dfs.datanode.data.dir中定义的磁盘数量等于dfs.datanode.failed.volumes.tolerated的值时,DataNode启动失败
- 当多个data.dir被配置在一个磁盘分区内,DataNode的容量计算将会出错
- 当Standby NameNode存储元数据(命名空间)时,出现断电的情况,Standby NameNode启动失败
- 在存储小文件过程中,系统断电,缓存中的数据丢失
- FileInputFormat split的时候出现数组越界
- 当分级存储策略为LAZY_PERSIST时,为什么文件的副本的存储类型都是DISK
- NameNode节点长时间满负载,HDFS客户端无响应
- DataNode禁止手动删除或修改数据存储目录
- 成功回滚后,为什么NameNode UI上显示有一些块缺失
- 为什么在往HDFS写数据时报"java.net.SocketException: No buffer space available"异常
- 为什么主NameNode重启后系统出现双备现象
- HDFS执行Balance时被异常停止,再次执行Balance会失败
- IE浏览器访问HDFS原生UI界面失败,显示无法显示此页
- EditLog不连续导致NameNode启动失败
- 使用Hive
- 从零开始使用Hive
- 配置Hive常用参数
- Hive SQL
- 权限管理
- 使用Hive客户端
- 使用HDFS Colocation存储Hive表
- 使用Hive列加密功能
- 自定义行分隔符
- 删除Hive on HBase表中的单行记录
- 配置基于HTTPS/HTTP协议的REST接口
- 配置是否禁用Transform功能
- Hive支持创建单表动态视图授权访问控制
- 配置创建临时函数是否需要ADMIN权限
- 使用Hive读取关系型数据库数据
- Hive支持的传统关系型数据库语法
- Hive Editor适配Hive多实例
- 创建Hive用户自定义函数
- beeline可靠性增强特性介绍
- 具备表select权限可用show create table查看表结构
- Hive写目录旧数据进回收站
- Hive能写700权限的目录不存在下级目录
- 限定仅admin用户能创建库和在default库建表
- 限定创建Hive内部表不能指定location
- 允许在只读权限的目录建外表
- Hive支持授权超过32个角色
- Hive任务支持限定最大map数
- HiveServer租约隔离使用
- Hive支持事务
- 切换Hive执行引擎为Tez
- HiveMetaStore支持基于Redis的CacheStore
- Hive物化视图
- Hive日志介绍
- Hive性能调优
- Hive常见问题
- 如何在多个HiveServer之间同步删除UDF
- 已备份的Hive表无法执行drop操作
- 如何在Hive自定义函数中操作本地文件
- 如何强制停止Hive执行的MapReduce任务
- Hive复杂类型字段名称中包含特殊字符导致建表失败
- 如何对Hive表大小数据进行监控
- 如何对重点目录进行保护,防止“insert overwrite”语句误操作导致数据丢失
- 未安装HBase时Hive on Spark任务卡顿处理
- FusionInsight Hive使用WHERE条件查询超过3.2万分区的表报错
- 使用IBM的jdk访问Beeline客户端出现连接hiveserver失败
- 关于Hive表的location支持跨OBS和HDFS路径的说明
- 通过Tez引擎执行union相关语句写入的数据,切换MR引擎后查询不出来。
- Hive不支持对同一张表或分区进行并发写数据
- Hive不支持向量化查询
- Hive表HDFS数据目录被误删,但是元数据仍然存在,导致执行任务报错处理
- 使用Hue(MRS 2.x及之前版本)
- 使用Hue(MRS 3.x及之后版本)
- 使用Impala
- 使用Kafka
- 使用KafkaManager
- 使用Kudu
- 使用Loader
- 使用Mapreduce
- Mapreduce如何从单实例转换为HA
- 配置日志归档和清理机制
- 降低客户端应用的失败率
- 将MR任务从Windows上提交到Linux上运行
- 配置使用分布式缓存
- 配置MapReduce shuffle address
- 配置集群管理员列表
- MapReduce日志介绍
- MapReduce性能调优
- MapReduce常见问题
- ResourceManager进行主备切换后,任务中断后运行时间过长
- MapReduce任务长时间无进展
- 运行任务时,客户端不可用
- 在缓存中找不到HDFS_DELEGATION_TOKEN
- 如何在提交MapReduce任务时设置任务优先级
- MapReduce任务运行失败,ApplicationMaster出现物理内存溢出异常
- MapReduce JobHistoryServer服务地址变更后,为什么运行完的MapReduce作业信息无法通过ResourceManager Web UI页面的Tracking URL打开
- 多个NameService环境下,运行MapReduce任务失败
- 基于分区的任务黑名单
- 使用Oozie
- 使用OpenTSDB
- 使用Presto
- 使用Ranger
- 使用Ranger(MRS 1.9.2)
- 使用Ranger(MRS 3.x)
- 登录Ranger管理界面
- 配置组件权限策略
- 查看Ranger审计信息
- 配置Ranger安全区
- 查看Ranger权限信息
- 配置组件审计日志保存至Elasticsearch
- 添加HDFS的Ranger访问权限策略
- 添加HBase的Ranger访问权限策略
- 添加Hive的Ranger访问权限策略
- 添加Yarn的Ranger访问权限策略
- 添加Spark2x的Ranger访问权限策略
- 添加Kafka的Ranger访问权限策略
- 添加HetuEngine的Ranger访问权限策略
- 添加Storm的Ranger访问权限策略
- 添加Elasticsearch的Ranger访问权限策略
- Ranger日志介绍
- Ranger常见问题
- 使用Spark
- 使用Spark2x
- 基本操作
- 快速入门
- 快速配置参数
- 常用参数
- SparkOnHBase概述及基本应用
- SparkOnHBasev2概述及基本应用
- SparkSQL权限管理(安全模式)
- 场景化参数
- 配置多主实例模式
- 配置多租户模式
- 配置多主实例与多租户模式切换
- 配置事件队列的大小
- 配置是否开启日志分组功能
- 配置executor堆外内存大小
- 增强有限内存下的稳定性
- 配置WebUI上查看聚合后的container日志
- 配置是否显示包含敏感词的Spark SQL语句
- 配置YARN-Client和YARN-Cluster不同模式下的环境变量
- 配置SparkSQL的分块个数
- 配置parquet表的压缩格式
- 配置WebUI上显示的Lost Executor信息的个数
- 动态设置日志级别
- 配置Spark是否获取HBase Token
- 配置Kafka后进先出
- 配置对接Kafka可靠性
- 配置流式读取driver执行结果
- 配置过滤掉分区表中路径不存在的分区
- 配置Spark2x Web UI ACL
- 配置矢量化读取ORC数据
- Hive分区修剪的谓词下推增强
- 支持Hive动态分区覆盖语义
- 配置列统计值直方图Histogram用以增强CBO准确度
- 配置SQL执行过程中的小文件合并参数
- 配置JobHistory本地磁盘缓存
- 配置Spark SQL开启Adaptive Execution特性
- 使用Ranger时适配第三方JDK
- Spark2x日志介绍
- 获取运行中Spark应用的Container日志
- 小文件合并工具
- Spark2x性能调优
- Spark2x常见问题
- Spark Core
- 日志聚合下,如何查看Spark已完成应用日志
- Driver返回码和RM WebUI上应用状态显示不一致
- 为什么Driver进程不能退出
- 网络连接超时导致FetchFailedException
- 当事件队列溢出时如何配置事件队列的大小
- Spark应用执行过程中,日志中一直打印getApplicationReport异常且应用较长时间不退出
- Spark执行应用时上报“Connection to ip:port has been quiet for xxx ms while there are outstanding requests”并导致应用结束
- NodeManager关闭导致Executor(s)未移除
- Password cannot be null if SASL is enabled异常
- 向动态分区表中插入数据时,在重试的task中出现"Failed to CREATE_FILE"异常
- 使用Hash shuffle出现任务失败
- 访问Spark应用的聚合日志页面报“DNS查找失败”错误
- 由于Timeout waiting for task异常导致Shuffle FetchFailed
- Executor进程Crash导致Stage重试
- 执行大数据量的shuffle过程时Executor注册shuffle service失败
- 在Spark应用执行过程中NodeManager出现OOM异常
- 一个shuffle server节点网络闪断恢复后,为什么执行shuffle清理时不会去清该节点上的shuffle文件
- 安全集群使用HiBench工具运行sparkbench获取不到realm
- SQL和DataFrame
- Spark SQL在不同DB都可以显示临时表
- 如何在Spark命令中指定参数值
- SparkSQL建表时的目录权限
- 为什么不同服务之间互相删除UDF失败
- Spark SQL无法查询到Parquet类型的Hive表的新插入数据
- cache table使用指导
- Repartition时有部分Partition没数据
- 16T的文本数据转成4T Parquet数据失败
- 大数据量时执行SQL buildScan job速度慢
- 当表名为table时,执行相关操作时出现异常
- 执行analyze table语句,因资源不足出现任务卡住
- 为什么有时访问没有权限的parquet表时,在上报“Missing Privileges”错误提示之前,会运行一个Job?
- 执行Hive命令修改元数据时失败或不生效
- spark-sql退出时打印RejectedExecutionException异常栈
- 健康检查时,误将JDBCServer Kill
- 日期类型的字段作为过滤条件时匹配'2016-6-30'时没有查询结果
- 为什么在启动spark-beeline的命令中指定“--hivevar”选项无效
- 在spark-beeline中创建临时表/视图时,报HDFS目录无权限操作的错误
- 执行复杂SQL语句时报“Code of method ... grows beyond 64 KB”的错误
- 在Beeline/JDBCServer模式下连续运行10T的TPCDS测试套会出现内存不足的现象
- 连上不同的JDBCServer,function不能正常使用
- 用add jar方式创建function,执行drop function时出现问题
- Spark2x无法访问Spark1.5创建的DataSource表
- 为什么spark-beeline运行失败报“Failed to create ThriftService instance”的错误
- Spark Streaming
- 访问Spark应用获取的restful接口信息有误
- 为什么从YARN Web UI页面无法跳转到Spark Web UI界面
- HistoryServer缓存的应用被回收,导致此类应用页面访问时出错
- 加载空的part文件时,app无法显示在JobHistory的页面上
- Spark2.1导出带有相同字段名的表,结果导出失败
- 为什么多次运行Spark应用程序会引发致命JRE错误
- IE浏览器访问Spark2x原生UI界面失败,无法显示此页或者页面显示错误
- Spark2x如何访问外部集群组件
- 对同一目录创建多个外表,可能导致外表查询失败
- 访问Spark2x JobHistory中某个应用的原生页面时页面显示错误
- 对接OBS场景中,spark-beeline登陆后指定loaction到OBS建表失败
- Spark Core
- 基本操作
- 使用Storm
- 使用Tez
- 使用Yarn
- Yarn常用参数
- 创建Yarn角色
- 使用Yarn客户端
- 配置NodeManager角色实例使用的资源
- 更改NodeManager的存储目录
- 配置YARN严格权限控制
- 配置Container日志聚合功能
- 启用CGroups功能
- 配置AM失败重试次数
- 配置AM自动调整分配内存
- 配置访问通道协议
- 检测内存使用情况
- 配置自定义调度器的WebUI
- 配置YARN Restart特性
- 配置AM作业保留
- 配置本地化日志级别
- 配置运行任务的用户
- Yarn日志介绍
- Yarn性能调优
- Yarn常见问题
- 任务完成后Container挂载的文件目录未清除
- 作业执行失败时会抛出HDFS_DELEGATION_TOKEN到期的异常
- 重启YARN,本地日志不被删除
- 为什么执行任务时AppAttempts重试次数超过2次还没有运行失败
- 为什么在ResourceManager重启后,应用程序会移回原来的队列
- 为什么YARN资源池的所有节点都被加入黑名单,而YARN却没有释放黑名单,导致任务一直处于运行状态
- ResourceManager持续主备倒换
- 当一个NodeManager处于unhealthy的状态10分钟时,新应用程序失败
- Superior通过REST接口查看已结束或不存在的applicationID,返回的页面提示Error Occurred
- Superior调度模式下,单个NodeManager故障可能导致MapReduce任务失败
- 当应用程序从lost_and_found队列移动到其他队列时,应用程序不能继续执行
- 如何限制存储在ZKstore中的应用程序诊断消息的大小
- 为什么将非ViewFS文件系统配置为ViewFS时MR作业运行失败
- 附录
CarbonData简介
链接复制成功!
更新时间:2020/12/18 GMT+08:00
CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析引擎。
图1 CarbonData基本架构


使用CarbonData的目的是对大数据即席查询提供超快速响应。从根本上说,CarbonData是一个OLAP引擎,采用类似于RDBMS中的表来存储数据。用户可将大量(10TB以上)的数据导入以CarbonData格式创建的表中,CarbonData将以压缩的多维索引列格式自动组织和存储数据。数据被加载到CarbonData后,就可以执行即席查询,CarbonData将对数据查询提供秒级响应。
CarbonData将数据源集成到Spark生态系统,用户可使用Spark SQL执行数据查询和分析。也可以使用Spark提供的第三方工具JDBCServer连接到Spark SQL。
CarbonData结构
CarbonData作为Spark内部数据源运行,不需要额外启动集群节点中的其他进程,CarbonData Engine在Spark Executor进程之中运行。
图2 CarbonData结构


存储在CarbonData Table中的数据被分成若干个CarbonData数据文件,每一次数据查询时,CarbonData Engine模块负责执行数据集的读取、过滤等实际任务。CarbonData Engine作为Spark Executor进程的一部分运行,负责处理数据文件块的一个子集。
Table数据集数据存储在HDFS中。同一Spark集群内的节点可以作为HDFS的数据节点。
CarbonData特性
- SQL功能:CarbonData与Spark SQL完全兼容,支持所有可以直接在Spark SQL上运行的SQL查询操作。
- 简单的Table数据集定义:CarbonData支持易于使用的DDL(数据定义语言)语句来定义和创建数据集。CarbonData DDL十分灵活、易于使用,并且足够强大,可以定义复杂类型的Table。
- 便捷的数据管理:CarbonData为数据加载和维护提供多种数据管理功能。CarbonData支持加载历史数据以及增量加载新数据。加载的数据可以基于加载时间进行删除,也可以撤销特定的数据加载操作。
- CarbonData文件格式是HDFS中的列式存储格式。该格式具有许多新型列存储文件的特性,例如,分割表和数据压缩。CarbonData具有以下独有的特点:
- 伴随索引的数据存储:由于在查询中设置了过滤器,可以显著加快查询性能,减少I/O扫描次数和CPU资源占用。CarbonData索引由多个级别的索引组成,处理框架可以利用这个索引来减少需要安排和处理的任务,也可以通过在任务扫描中以更精细的单元(称为blocklet)进行skip扫描来代替对整个文件的扫描。
- 可选择的数据编码:通过支持高效的数据压缩,可基于压缩/编码数据进行查询,在将结果返回给用户之前,才将编码转化为实际数据,这被称为“延迟物化”。
- 支持一种数据格式应用于多种用例场景:例如,交互式OLAP-style查询,顺序访问(big scan),随机访问(narrow scan)。
CarbonData关键技术和优势
- 快速查询响应:高性能查询是CarbonData关键技术的优势之一。CarbonData查询速度大约是Spark SQL查询的10倍。CarbonData使用的专用数据格式围绕高性能查询进行设计,其中包括多种索引技术和多次的Push down优化,从而对TB级数据查询进行最快响应。
- 高效率数据压缩:CarbonData使用轻量级压缩和重量级压缩的组合压缩算法压缩数据,可以减少60%~80%数据存储空间,很大程度上节省硬件存储成本。
父主题: 概述
