1. limit 5 offset 2
kylin中的limit 5 offset 2中的offset不是分页,而是第几条数据,2代表从第三条开始,最初下标为0.
2. 用户admin找不到
kylin在save model和cube时报错:用户admin找不到,kylin_job_conf.xml找不到 原因是hdfs gateway,重装hdfs gateway服务即可。
3. org.apache.hadoop.hbase.ipc.CallTimeoutException
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=1, exceptions: Tue Jul 10 04:49:03 GMT+08:00 2018, RpcRetryingCaller{globalStartTime=1531169338842, pause=100, retries=1}, java.io.IOException: Call to B28-243-18/172.16.3.18:60020 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=624483812, waitTime=5001, operationTimeout=5000 expired. 在kylin源码(org.apache.kylin.storage.hbase)中: newParams.put("hbase.rpc.timeout", kylinConfig.getHbaseRpcTimeout()); public String getHbaseRpcTimeout() { return getOptional("kylin.metadata.hbase-rpc-timeout", "5000"); } protected String getOptional(String prop, String dft) {
final String property = System.getProperty(prop);
return property != null ? StrSubstitutor.replace(property, System.getenv())
: StrSubstitutor.replace(properties.getProperty(prop, dft), System.getenv());
}
这里可以看到kylin会读取kylin.properties文件,如果是空会读取kylin-defaults.properties文件的配置,这里在源码配置文件当中没有kylin.metadata.hbase-rpc-timeout配置,所以会默认赋值为5000ms 而页面上的server config读取的是kylin.properties,如果是空会读取kylin-defaults.properties文件,所以如果要修改配置需要修改kylin.properties
服务寻找配置文件过程:首先加载KYLIN_HOME,然后找到$KYLIN_HOME/conf/kylin.properties,想要覆盖这个文件,后缀需要为.override,就是kylin.properties.override
4. kylin_metadata@hbase
表示元数据存储在hbase中的kylin_metadata表中。
5. 数据类型与datasource数据类型不一致
kylin cube:measures步骤中,数据类型如果和hive表数据类型不统一,或者hive表数据类型变化后measures这里没有修改,那么元数据中记的是更改之前的数据类型,容易发生类型转换的错误,在Build Base Cuboid步骤报错:no counters for job,实际job的错误为类型转换错误。
6. 自主选择计算引擎
在kylin build cube时,如果使用mr引擎跑任务,hive的参数可以在kylin_hive_conf.xml中配置。