1

我想将 CSV 批量上传到 cassandra 2.0.3。现在我已经成功地将 CSV 转换为 sstables。

但是,当我运行 sstableloader 时,会出现如下错误消息。这个错误是否会影响我的批量加载,因为我在 cassandra 2.0.3 中找不到导入的数据?

VirtualBox:~/apache-cassandra-2.0.3$ ./bin/sstableloader -d localhost airlines/flight/
ERROR 16:08:04,832 Unable to initialize MemoryMeter (jamm not specified as javaagent).  This means Cassandra will be unable to measure object sizes accurately and may consequently OOM.
Established connection to initial hosts
Opening sstables and calculating sections to stream
Streaming relevant part of airlines/flight/airlines-flight-jb-1-Data.db to [/127.0.0.1, /127.0.0.2]
progress: [/127.0.0.2 1/1 (100%)] [/127.0.0.1 1/1 (100%)] [total: 100% - 0MB/s (avg: 0MB/s)]
4

1 回答 1

1

我将我的 sstableloader 作业包装在一个 bash 脚本中,最初,我遇到了完全相同的错误。我做了一些挖掘,发现设置 JAVA_TOOL_OPTIONS 环境变量解决了我的问题。

这是我的脚本:

#!/bin/bash

# ------------------------
# paths to the cassandra source tree, cassandra jar and java
CASSANDRA_HOME="/usr/share/cassandra"
JAVA_AGENT="-javaagent:$CASSANDRA_HOME/lib/jamm-0.2.5.jar"
export JAVA_TOOL_OPTIONS=$JAVA_AGENT
# ------------------------

# ------------------------
# Initialize Parameters
SSTLOADER=`which sstableloader`
SSDATADIR=/usr/share/cassandra/scripts/sstable_load/data/<schema_name>/<column family>

CASSNODE="192.168.2.1"

# ------------------------
log_dir=/usr/share/cassandra/scripts/sstable_load/logs
dt=`date +'%Y%m%d_%H%M%S'`
logdest=$log_dir/sstabloader_"$dt".log
# ------------------------

exec 1>$logdest
echo "Job Started: " `date`
echo "Job Logged To: " $logdest
echo

# ------------------------
# Run the SSTableLoader Command
$SSTLOADER -v -d $CASSNODE -u <user> -pw <password> $SSDATADIR


echo
echo "Job Completed: " `date`

exit 0

将 <> 中的脚本条目替换为您的适当信息。

希望这对你有用。

请投票。

于 2014-10-16T18:31:05.553 回答