故障排除
本教程旨在为正在构建,部署和使用 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 (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:101)
可能原因
当你创建 carbonsession 时使用 作为存储路径,你可能会遇到这种错误,因为默认的锁类型是 LOCALLOCK。
处理
创建 carbonsession 之前,进行如下设置:
import org.apache.carbondata.core.util.CarbonProperties
import org.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
可能原因
包含类库目录的完整路径没有被正确配置。
处理
启动 Spark Shell 失败
现象
shell 提示以下的错误 :
org.apache.spark.sql.CarbonContext$$anon$$apache$spark$sql$catalyst$analysis
$OverrideCatalog$_setter_$org$apache$spark$sql$catalyst$analysis
$OverrideCatalog$$overrides_$e
可能原因
Spark 版本和编译 Carbondata 指定的 Spark 配置不匹配。
处理
请确保 Spark 版本和编译 Carbondata 指定的 Spark 配置匹配。
使用以下命令 :
"mvn -Pspark-2.1 -Dspark.version {yourSparkVersion} clean package"
注意 : 避免直接使用 "mvn clean package" 而不指定配置参数。
无法在集群上执行加载查询.
现象
加载查询时遇到以下异常:
Dictionary file is locked for updation.
可能原因
集群中所有节点上 carbon.properties 文件可能不一致。
处理
按照下面步骤确保所有节点上的 carbon.properties 文件一致:
将 master 节点上的 carbon.properties 文件复制到集群中其他所有节点上。
比如, 你可以使用 ssh 将该文件复制到所有节点上。
为了使修改生效,重启 Spark 集群。
无法在集群上执行插入查询.
现象
插入查询时遇到以下异常:
Dictionary file is locked for updation.
可能原因
集群中所有节点上 carbon.properties 文件可能不一致。
处理
按照下面步骤确保所有节点上的 carbon.properties 文件一致:
将 master 节点上的 carbon.properties 文件复制到集群中其他所有节点上。
比如, 你可以使用 scp 将该文件复制到所有节点上。
为了使修改生效,重启 Spark 集群。
无法通过 thrift 连接到 hiveuser
现象
遇到以下异常 :
Cannot connect to hiveuser.
可能原因
外部进程没有访问权限。
处理
确保 mysql 中的 Hiveuser 能够允许访问外部进程。
无法在创建表时读取 Metastore 数据库。
现象
我们在尝试连接时遇到以下异常 :
Cannot read the metastore db
可能原因
元数据库可能出现功能障碍。
处理
从 Spark 目录的 carbon.metastore 中删除 metastore db。
无法在集群上加载数据
现象
数据加载时遇到以下异常 :
Data Load failure exception
可能原因
下面原因可能导致这个异常 :
集群中所有节点上的 core-site.xml、hive-site.xml、yarn-site 以及 carbon.properties 等文件可能不一致。
carbon.properties 中关于 hdfs ddl 没有正确的配置。
处理
按照下面步骤确保所有节点上的配置文件一致:
将 master 节点上的 core-site.xml、hive-site.xml、yarn-site 以及 carbon.properties 文件复制到集群中其他所有节点上。
比如, 你可以使用 scp 将该文件复制到所有节点上。
注意 : 在主节点的 carbon.properties 中设置好 hdfs ddl 路径。
为了使修改生效,重启 Spark 集群。
无法在集群上插入数据
现象
数据插入时遇到以下异常 :
Data Load failure exception
可能原因
下面原因可能导致这个异常 :
集群中所有节点上的 core-site.xml、hive-site.xml、yarn-site 以及 carbon.properties 等文件可能不一致。
carbon.properties 中关于 hdfs ddl 没有正确的配置。
处理
按照下面步骤确保所有节点上的配置文件一致:
将 master 节点上的 core-site.xml、hive-site.xml、yarn-site 以及 carbon.properties 文件复制到集群中其他所有节点上。
比如, 你可以使用 scp 将该文件复制到所有节点上。
注意 : 在主节点的 carbon.properties 中设置好 hdfs ddl 路径。
为了使修改生效,重启 Spark 集群。
多个用户无法在表上执行并发操作(加载,插入,更新)
现象
运行时遇到以下异常:
Table is locked for updation.
可能原因
不支持并发。
处理
用户必须等待查询执行完成,并且确保该表的锁被释放,以便其他查询能够执行成功。
无法创建拥有单个数字类型列的表格
现象
运行时遇到以下异常 :
Table creation fails.
可能原因
不支持这种行为
处理
创建表格必须提供一个维度列。