Ubuntu 16.04下Jena Fuseki启动报错:File Initialization Exception
解决Jena Fuseki启动时"Existing file"初始化异常问题
你踩的这个坑其实很常见——--loc参数的用法完全错了!这个参数是用来指定TDB数据库的存储目录,而不是直接指向你的JSON压缩数据集文件。当你运行./fuseki-server --loc="/home/dataset.json.bz2" /ds时,Fuseki尝试把你指定的路径当作TDB数据库目录来初始化,但发现它已经是一个实实在在的文件,自然就抛出了"Existing file"的异常。
下面是一步到位的解决办法:
正确操作流程
1. 先创建一个空的TDB存储目录
找个合适的位置新建空文件夹,比如:
mkdir /home/my_tdb_dataset
2. 用TDB加载工具导入压缩数据集
Fuseki的bin目录下自带tdbloader工具,专门用来把数据导入TDB存储目录,它还能自动识别并处理bz2压缩文件。执行这条命令:
./tdbloader --loc=/home/my_tdb_dataset /home/dataset.json.bz2
耐心等待数据导入完成,这个过程的时间取决于你的数据集大小。
3. 启动Fuseki服务器指向TDB目录
现在再用--loc参数指向刚才的TDB目录,就能正常启动服务了:
./fuseki-server --loc="/home/my_tdb_dataset" /ds
备选方案(适合小数据集)
如果你的数据集不大,也可以不用导入TDB,直接用--file参数加载单个文件(Fuseki会自动处理压缩格式),命令如下:
./fuseki-server --file="/home/dataset.json.bz2" /ds
不过要注意,这种方式下Fuseki是只读模式,而且每次重启都会重新加载文件,大数据集的话性能会很差,只适合测试或者小数据场景。
内容的提问来源于stack exchange,提问作者Aman
相关产品推荐
相关产品推荐

