查看原文
其他

社区版Inceptor常见问题整理

星环科技 星环科技 2022-07-18

在初次接触Inceptor的时候,很多用户会对某些基本概念持有疑问,或者在使用的过程中遇到一些问题。本文针对这些待解决的问题,整理出常见的Q&A,希望能够为读者答疑解惑。

另外,社区版TDH已经在腾讯云市场正式上线,可以在腾讯云上直接安装“星环一站式大数据平台(Transwarp Data Hub)社区版”(https://market.cloud.tencent.com/products/3985)。点击文末的“阅读原文”将跳转至对应安装页面。


Inceptor Q&A


Inceptor是什么?

Inceptor基于Hadoop技术平台打造,是高效的批处理分析型数据库,可以有效解决大规模数据处理和分析的多种技术难题。社区版Inceptor完整支持SQL 2003标准,提供标准JDBC/ODBC连接支持,从而方便对接第三方软件。

Inceptor的使用手册在哪里获取?

请访问星环在线手册服务Transpedia(https://docs.transwarp.cn/)。

Inceptor的交互方法?

Inceptor使用Beeline作为命令行工具,让远程客户端向Inceptor提交请求并获取结果。

执行下面指令进入Inceptor交互界面:

beeline -u "jdbc:hive2://<inceptor_server>:10000/<database_name>"

<inceptor_server>可以是服务器ip或者hostname。

如何创建一张表并实现查询?

这里将提供Inceptor建表与查询的快速入门。

进入beeline交互界面后执行下述语句创建一张表:

CREATE TABLE quickstart (a INT, b STRING) ;

将位于HDFS上的数据导入表中:

LOAD DATA INPATH '/tmp/quickstart.txt' OVERWRITE INTO TABLE quickstart;

查看表中的数据(仅列出前面10行):

SELECT * FROM quickstart limit 10;

执行SQL语句时出错应该如何处理?

通过返回的报错信息和错误码,查询Transpedia(https://docs.transwarp.io/)的《Inceptor错误代码与信息查询手册》,了解相应的报错原因并获得解决方法。

社区版Inceptor支持哪些类型的表?

社区版Inceptor的表按不同维度可以划分为不同种类:

  • 按Inceptor的所有权可分为:外部表(或简称为外表)和托管表。

  • 按表的存储格式分类可分为:TEXT表、ORC表、CSV表。

  • 按表是否分区可分为:分区表和非分区表。

  • 按表是否分桶可分为:分桶表和非分桶表。

什么是外表和托管表?

Inceptor对外表不具有所有权,创建外表时会创建元数据,但是不会重新生成数据。删除外表时,仅会删除元数据,不会删除数据。不适合做统计分析,适合查询。通过CREATE EXTERNAL TABLE创建。

Inceptor对内表具有所有权,创建内表不仅创建元数据,同时还会创建一份新的数据。删除内表时,不仅会删除元数据,还会删除表中的数据。通过CREATE TABLE创建。

分区时要注意什么?

建议采用范围分区的方式分区而不是单值分区。

建议选择日期字段或地区字段为分区字段,这样通常可以适应业务需求同时保证适当的分区大小。

不推荐使用二级分区。

分区数控制在0-200个,最大不要超过200个分区。

建议单个分区内桶的数目略小于Inceptor配置的CPU数目。

设计一个分区数据时,尽量确保一轮CPU能处理完所有数据。

建议单个分区分桶数在500个以内,分区数和分桶数的乘积在10000以内。

分桶时要注意什么?

分桶字段尽量选择选值域均匀重复率不高的字段,如主键。

分桶生成文件后应该检查最大桶的文件大小,尽量避免数据倾斜。

单个桶压缩前小于1000MB,通常记录数小于1000w。

由于分桶数不能随着数据的增加而增加,所以有数据增量的表需要同时进行分区与分桶。

beeline中为什么无法显示Table完整字段的数据?

可能是因为表中数据的宽度超出了beeline的默认显示宽度,可以通过传递下面两个参数调整可显示宽度:

  • maxWidth:可显示的最大总宽度,单位:字符数。

  • maxColumnWidth:每个字段可显示的最大宽度,单位:字符数。

例如下述语句:

# 连接Server并将beeline可显示最大宽度设置为1500个字符,每个字段最长可以显示1500个字符。

beeline -u jdbc:hive2://localhost:10000/default --maxWidth=1500 --maxColumnWidth=1500

Inceptor的执行模式?

支持Local和Cluster两种执行模式。Cluster适用于批处理业务,Local模式适用于低延时、高并发、参与计算数据量少的场景。

通过参数ngmr.exec.mode进行切换,该参数支持两个取值:local和cluster(默认)。

出现报错Address already in use service SparkUI failed after 0 retries,应该怎么处理?

机器的4040端口被占用,因为TDH需要将该端口分配给Inceptor UI,所以请释放占用。

启动时出现报错could not create serversocket on address 0.0.0.0/0.0.0.0:10000,应该怎么处理?

机器的10000端口被占用,因为TDH需要将该端口分配给Inceptor Server,所以请释放占用。

Manager上Inceptor提示some executor are not started,同时查看4040页面发现只有部分Executors被启动,应该如何处理?

导致这种情况出现的原因通常是,当前可用的CPU或者内存少于启动Executor需要的资源,不足以启动。

例如,查看日志/var/log/inceptorsql1/hive-server2.log发现,节点启动Executor需要2384M,4个core,但是当前可用的资源仅为4096M,3个vcore,所以导致该节点的Executor无法启动。

解决方法:

如果可以的话请释放资源。如果资源无法释放,但同时希望Inceptor可以正常运行,请用如下方式解决。

首先在Manager界面的YARN的服务配置项中,通过以下两个参数确认YARN可以分配给Container的CPU个数和内存大小。

  • yarn.nodemanager.resource.cpu-vcores

  • yarn.nodemanager.resource.memory-mb

然后结合上述两个参数的大小,在Transwarp Manager上的Inceptor资源分配页面调整Inceptor Executor的资源设置,减少启动Executor所需的内存和内核数(需分别不大于上面两个参数),从而满足启动要求。 

如何对表的列进行增加、删除和修改?

增加列:

ALTER TABLE [table] ADD COLUMNS ([column] [datat_type], [column] [data_type], ...);

删除列:

ALTER TABLE [table] DELETE COLUMNS ([column1], [column2], ...);

重命名列:

ALTER TABLE [table] CHANGE COLUMN [old_column_name] [new_column_name] [data_type];

如何查看SQL语句执行计划?

执行EXPLAIN语法,例如:

EXPLAIN SELECT * FROM table1;

如何将原集群中的表迁移到新的集群?

第一步:进入旧集群,登录Inceptor,查看数据库,找到待迁移的表,执行语句:

show create table <dest_tbl>;

该语句返回目标表的建表语句,请记录该结果。

第二步:在旧集群中确定目标数据库<dest_db>和目标表<dest_tbl>位于HDFS的位置,可以通过执行下述命令一层层展开目录找到目标。

sudo -u hdfs hdfs dfs -ls /<dir>

第三步:在新的集群登录Inceptor,建立新的数据库。

第四步:通过Manager确定两套集群的HDFS NameNode的active节点。

执行下述命令将原集群中的表拷贝到新集群的正确数据库下:

hadoop distcp hdfs://<Active NameNode1 ip>:8020/path/to/<dest_tbl> hdfs://<Active NameNode2 ip>:8020/path/to/<dest_db>

第五步进入新集群的Inceptor,用通过第一步获得的建表语句,创建新表即可。

如果目标表是分区表,还需要手动挂载分区,在beeline中执行形如下面所示的SQL语句:

alter table [表名] add partition (<p_key>='<p_value>')

location <hdfs_partition_address>;

其中<p_key>是分区键,<p_value>是分区值。

CSV文件导入Inceptor时,如何消除引用符号,例如双引号(")?

数据示例:

"1","alex","dba"

"2","james","dba"

采用下面的建表语句,通过设置quote.delim属性,可以在数据导入Inceptor时消除双引号:

drop table csv_table;

create external table csv_table(col1 string,col2 string,col3 string)

stored as csvfile

location '/temp/csv/data'

tblproperties('field.delim'=',', 'quote.delim'='"', 'line.delim'='\n');

quote.delim属性用于指定作为quote_delimiter的字符,默认值为“"”。

这个字符的作用为:如果字段本身包含了分隔符、换行符或者NULL值字符作为数据的一部分,将该字段放在两个quote_delimiter字符之间则可以让Inceptor将字段内部出现的分隔符和换行符作为数据的一部分处理。


关于其他问题


本文列举的都是关于Inceptor的比较常见的问题。对于其他任何问题,欢迎登录星环论坛(http://support.transwarp.cn)进行查询或者提供反馈,或者邮件联系support@transwarp.io。


点击或回复关键词,查看相关内容


公司

简介 | 星环科技成长大事记 

投资 | 星环科技获腾讯领投2.35亿C轮融资,与腾讯云达成战略合作


产品

产品 | 星环的划时代版本-Transwarp Data Hub 5.0

TDH社区版 | TDH社区版提供官方下载

评测 | 大数据产品最新测试基准看哪家(TPC-H or TPC-DS)?

流式计算 | 用Slipstream构建复杂事件处理应用

Holodesk | 业界最强的SQL引擎Inceptor为何这么快?

培训 | 学完这些课程,你也是大数据专家了!

认证考试 | 数据中心联盟—星环联合认证体系首次认证考试报名中


技术

技术 | 原创技术干货大合集!

技术支持 | 最完整的星环技术支持体系

评测 | 大数据产品最新测试基准看哪家(TPC-H or TPC-DS)?

TED视频 | TEDxLujiazui精彩视频:【大数据 大趋势】

白话大数据 | 白话大数据合集


案例

银行 | 河南农信:数据辅助决策,决策引领创新

证券 | 中泰证券:剑指大数据处理 多券商革新IT架构

智能金融 | 星环科技发布证券业大数据战略规划纲要(白皮书)

运营商 | 运营商的新方向-运用Hadoop技术将大数据资产变现

交通 | 大数据在智慧高速中的创新应用

物流 | 星环Hadoop发行版助快递业迎战“双十一”

邮政 | 中国邮政大数据平台建设

税务 | 大数据提升税务系统核心能力

审计 |让数据成为竞争力

视频监控 | Hadoop大数据在实时视频监控的应用场景

广电 | Hadoop企业级应用新添重磅案例

电力 | 华南某市供电局全景可视化大数据平台案例

能源 | 厉害了,我的营销大数据!

智能工厂 | 大数据技术助力中国石化智能工厂

农业 | 农业大数据的研究与实践

医药 | 医药产业链大数据前沿探讨

速记

【速记】河南农信 牛玲玲:数据辅助决策,决策引领创新

【速记】数起科技 李明国:让数据成为竞争力

【速记】天士力 刘晓煜:医药产业链大数据前沿探讨

【速记】国家农业信息化工程技术研究中心 陈天恩:农业大数据的研究与实践

【速记】同济大学教授 王伟:同济-星环“数据科学与大数据实践平台”建设

【速记】第一创业证券 瞿任雄:基于星环TDH大数据平台构建新一代券商数据中心






您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存