本教程旨在为正在构建,部署和使用CarbonData的最终用户和开发人员提供故障排除。
加载数据时,出现tablestatus.lock问题
症状:17/11/11 16:48:13 ERROR LocalFileLock: main hdfs:/localhost:9000/carbon/store/default/hdfstable/tablestatus.lock(No such file or directory) java.io.FileNotFoundException: hdfs:/localhost:9000/carbon/store/default/hdfstable/tablestatus.lock (Nosuch file or directory) at java.io.FileOutputStream.open0(NativeMethod) at java.io.FileOutputStream.open(FileOutputStream.java:270)at java.io.FileOutputStream.(FileOutputStream.java:213) atjava.io.FileOutputStream.(FileOutputStream.java:101)
原因:可能的原因如果在创建Carbon会话时使用作为存储路径,则可能会出现错误,因为默认值为LOCALLOCK
解决:创建carbon会话之前,进行如下设置:
importorg.apache.carbondata.core.util.CarbonProperties
importorg.apache.carbondata.core.constants.CarbonCommonConstants
CarbonProperties.getInstance().addProperty(CarbonCommonConstants.LOCK_TYPE,“HDFSLOCK”)
无法加载Thrift库
症状:
Thrift引发以下异常
thrift: error while loading shared libraries: libthriftc.so.0: cannot open shared object file: No such file or directory
原因:包含库的目录的完整路径未正确配置。
解决:遵循https://thrift.apache.org/docs/install上的Apache Thrift文档以正确安装Thrift。
无法启动Spark Shell
症状:
Shell提示以下错误:
org.apache.spark.sql.CarbonContext a n o n anon anonapache s p a r k spark sparksql$catalyst $analysis O v e r r i d e C a t a l o g OverrideCatalog OverrideCatalogsetter o r g org orgapache s p a r k spark sparksql c a t a l y s t catalyst catalystanalysis O v e r r i d e C a t a l o g OverrideCatalog OverrideCatalogKaTeX parse error: Expected group after '_' at position 10: overrides_̲e
原因:Spark版本和所选的Spark版本不匹配。
解决:
1.确保您的Spark版本和为Spark选择的版本正确。
2.使用以下命令"mvn -Pspark-2.1 -Dspark.version {yourSparkVersion} clean package"
注意:不要使用“ mvn clean package”而不指定配置文件。
无法在集群上执行负载查询
症状:
加载查询失败,出现以下异常:Dictionary file is locked for updation.
原因:在集群的所有节点中carbon.properties文件都不相同。
解决:
请按照以下步骤操作,以确保carbon.properties文件在所有节点上都是一致的:
1.将carbon.properties文件从主节点复制到集群中的所有其他节点。 例如,您可以使用ssh将此文件复制到所有节点。
2.为了使更改生效,请重新启动Spark集群。
无法在集群上执行插入查询
症状:
加载查询失败,出现以下异常:Dictionary file is locked for updation.
原因:在集群的所有节点中carbon.properties文件都不相同。
解决:
请按照以下步骤操作,以确保carbon.properties文件在所有节点上都是一致的:
1.将carbon.properties文件从主节点复制到集群中的所有其他节点。 例如,您可以使用ssh将此文件复制到所有节点。
2.为了使更改生效,请重新启动Spark集群。
无法通过thrift连接到hiveuser
症状:
我们得到以下异常:Cannot connect to hiveuser.
原因:外部进程没有访问权限。
解决:确保mysql中的Hiveuser必须允许其访问外部进程。
在创建表期间无法读取Metastore数据库
症状:
尝试连接时,出现以下异常:Cannot read the metastore db
原因:Metastore数据库功能失调。
解决:从Spark目录中的carbon.metastore中删除metastore数据库。
无法在集群上加载数据
症状:
数据加载失败,但有以下异常:Data Load failure exception
原因:
以下问题可能会导致失败:
1.群的所有节点的core-site.xml,hive-site.xml,yarn-site和carbon.properties不一致。
2.在carbon.properties中未正确配置hdfs ddl的路径
解决:
请按照以下步骤操作以确保以下配置文件在所有节点上均一致:
1.从主节点复制core-site.xml,hive-site.xml,yarn-site,carbon.properties文件到集群中的所有其他节点。 例如,可以使用scp将此文件复制到所有节点。注意:在主节点的carbon.properties中将路径设置为hdfs ddl。
2.为了使更改生效,请重新启动Spark集群。
无法在集群上插入数据
症状:
数据加载失败,但有以下异常:Data Load failure exception
原因:
以下问题可能会导致失败:
1.群的所有节点的core-site.xml,hive-site.xml,yarn-site和carbon.properties不一致。
2.在carbon.properties中未正确配置hdfs ddl的路径
解决:
请按照以下步骤操作以确保以下配置文件在所有节点上均一致:
1.从主节点复制core-site.xml,hive-site.xml,yarn-site,carbon.properties文件到集群中的所有其他节点。 例如,可以使用scp将此文件复制到所有节点。注意:在主节点的carbon.properties中将路径设置为hdfs ddl。
2.为了使更改生效,请重新启动Spark集群。
多个工作人员无法在表上执行并发操作(加载,插入,更新)
症状:
执行失败,但以下异常:Table is locked for updation.
原因:不支持并发。
解决:工作人员必须等待查询执行完成,并且表必须释放锁才能使另一个查询执行成功。
无法创建具有单个数字列的表
症状:
执行失败,但以下异常:Table creation fails.
原因:不支持行为。
解决:创建表时必须将单个列考虑尺寸。