我正在尝试使用sqoop将Hadoop HDFS中的JSON文档加载到Couchbase中。我能够正确加载文档,但文档的TTL是0.我想在一段时间内使文档失效,而不是让它们永远存在。是否可以使用Schoop的Couchbase连接器?
正如我所说,文件正确加载,没有TTL。
该文件如下:
key1@{"key": "key1", "message": "A message here"}
key2@{"key": "key2", "message": "Another message"}
sqoop调用如下所示:
sqoop export -D mapred.map.child.java.opts="-Xmx4096m" \
-D mapred.job.map.memory.mb=6000 \
--username ${COUCHBASE_BUCKET} \
--password-file ${COUCHBASE_PASSWORD_FILE} \
--table ignored \
--connect ${COUCHBASE_URL} \
--export-dir ${INPUT_DIR} \
--verbose \
--input-fields-terminated-by '@' \
--lines-terminated-by '\n' \
-m 2
感谢您的帮助。
答案 0 :(得分:0)
我认为没有简单的用户界面/设置。必须在连接器中修改代码。
答案 1 :(得分:0)
当前的sqoop插件版本中没有TTL选项。但是,如果您只想为所有导入的对象设置相同的TTL,则可以非常轻松地自行添加代码。请看这里的第212行:https://github.com/couchbase/couchbase-hadoop-plugin/blob/master/src/java/com/couchbase/sqoop/mapreduce/db/CouchbaseOutputFormat.java#L212
您只需要为set
来电添加TTL参数即可。如果您想彻底了解它,可以从命令行获取TTL值并将其放在DB配置对象中,以便在代码中使用它。