范例 14:指定连接(Connection)
到目前为止的范例都是在本地计算机完成加载(默认主机)。我们可以使用 -h 参数指定主机的IP或名称。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -h 127.0.0.1
范例 14.1:指定端口(Port)
如果您很不幸遇到了DSE或Cassandra 监听端口不同于9042的情况,您可以用-port 参数连接指定端口。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -h 127.0.0.1 -port 9042
范例 14.2:指定用户名/密码
如果您的集群受到了用户名/密码的认证保护,您可以使用-u 和 -p 参数传入这些信息。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -u cassandra -p cassandra
注:当通过命令行上传密码时,您应该注意这会在系统日志、环境等地方显示。
范例 14.3:连接到启用Kerberos的集群
您也可以在Kerberos启用的集群上使用dsbulk。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id --driver.auth.provider DseGSSAPIAuthProvider --driver.auth.saslService --driver.auth.principal -
以下为设置细节:
-
服务(service) - 服务的名称,与~/.cassandra/cqlshrc中的服务名相同。
-
主机(host) - 必须要是在Kerberos注册的主机名和~/.cassandra/cqlshrc里的主机名一样。
-
主体(principal) - 使用的Kerberos主体,可以通过klist获得。
范例 15: 指定一致性等级(Consistency Level)
dsbulk默认的一致性等级是LOCAL_ONE。您可以通过-cl 参数指定想要的一致性等级,这是--driver.query.consistency 的简写。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -cl LOCAL_QUORUM
范例 16:错误和日志记录(Errors and Logging)
面对现实,数据永远不会像你想象的这么干净。事情会发生,错误也会产生,没关系。就像我们讨论过的,dsbulk可以记录错误,并将错误的记录放到一个“错误的文件“中以便日后查看。但是,dsbulk有其他的参数来控制错误的行为。
范例 16.1:错误上限(Max Errors)
有时候,加载的数据很糟糕以至于你要告诉dsbulk停下。您可以使用 -maxErrors 参数指定最大的错误数,是--log.maxErrors 的缩写,默认为10:
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id --log.maxErrors 3
范例 16.2:指定日志目录(Logging Directory)
dsbulk 在dsbulk运行的当前目录创建一个叫logs的子目录,来写入日志。您可以用 -logDir 参数指定一个不同的地址,这是--log.directory 的缩写:
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -logDir /tmp/logs
范例 16.3:设置日志记录的详细度(Logging Verbosity)
dsbulk有一个可以调高或调低日志的详细度的方法,通过 --log.verbosity 参数。从最少到最细分为有效的等级0,1和2。例如,获取最少的输出:
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id --log.verbosity 0
范例 17: 监控(Monitoring)
dsbulk有一些方法监控dsbulk的进程。两种主要的方法是向当前屏幕(screen)报告或者向JMX报告。
范例 17.1:设置报告频率
当前屏幕报告进程频率默认为每5秒一次。频率可以通过 -reportRate 参数设置,这是--monitoring.reportRate 的缩写。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -reportRate 2s
或者:
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id -reportRate "2 seconds"
范例 17.2:启用/禁用JMX
默认情况下,dsbulk会通过JMX 提供检测指标,您可以通过--monitoring.jmx 禁用JMX。
$ dsbulk load -url /tmp/dsbulkblog/iris.csv -k dsbulkblog -t iris_with_id --monit