我正在尝试让 ETL 加载程序在 OSX 机器(10.11.6)上的 OrientDB 2.2.5 上工作,但我一直在输入 JSON 文件上收到 FileNotFoundException ......
我将不再使用 post.csv 和 post.json 文件的教程中的示例。我修改了它们以删除路径,因为它们与我自己的路径结构不太一致。
这是我的 post.csv:
id,title
10,NoSQL movement
20,New Orientdb
post.json 文件:
{
"source": { "file": { "path": "post.csv" } },
"extractor": { "csv": {} },
"transformers": [
{ "vertex": { "class": "Post" } }
],
"loader": {
"orientdb": {
"dbURL": "plocal:dbtest",
"dbType": "graph",
"classes": [
{"name": "Post", "extends": "V"},
{"name": "Comment", "extends": "V"},
{"name": "HasComments", "extends": "E"}
], "indexes": [
{"class":"Post", "fields":["id:integer"], "type":"UNIQUE" }
]
}
}
}
我将环境变量 ORIENTDB_HOME 设置为 orientdb-community-2.2.4 所在的位置,并且 $ORIENTDB_HOME/bin 在我的路径中。
如果我输入以下内容:
$ oetl.sh post.json
输出是这样的:
OrientDB etl v.2.2.4 (build 2.2.x@rf5282664db9300ef3358fb4d7e2066ad418c2e61; 2016-07-08 12:30:59+0000) www.orientdb.com
Exception in thread "main" com.orientechnologies.orient.core.exception.OConfigurationException: Error on loading config file: post.json
at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:131)
at com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:108)
Caused by: java.io.FileNotFoundException: post.json (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at com.orientechnologies.common.io.OIOUtils.readFileAsString(OIOUtils.java:140)
at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:120)
... 1 more
我不确定正确的解决方法是什么...我的问题似乎与另一个先前提出的问题相似,但是由于我在任何路径中都没有空格,因此该解决方法对我不起作用。我尝试在配置文件中设置绝对路径,但这并没有改变任何东西。
我正在从我的posts.json 和posts.csv 文件所在的目录运行oetl.sh,但它似乎仍然无法找到posts.json。
更新:两个文件(posts.json、posts.csv)位于同一目录中。我曾尝试运行 oetl.sh 以及 oetl.sh posts.json,但异常不断发生。我也尝试过编辑 posts.json 以便它也有完整的绝对路径并且不会改变结果。
任何帮助将不胜感激......我认为这可能是某种Java配置问题,但我对Java比较陌生,所以我可能错过了一些环境变量或什么?