es通過JDBC導數測試

停不下的腳步發表於2017-05-10

硬體環境:
1、mac 10.12
2、8G記憶體、256G SSD
3、2.4GHz I5

測試資料
50G CSV格式
每行6個欄位

測試一:使用es預設配置
es版本2.3.4
es-jdbc版本2.3.4.0
通過es-jdbc方式耗時40小時+
索引建立完成12億+
索引所佔空間為52G左右

測試二:使用es預設配置
es版本5.3.0
logstash版本5.3.1
通過logstash-input-jdbc方式,匯入失敗,資料太大

測試三:使用優化後配置
es版本2.3.4
es-jdbc版本2.3.4.0
修改配置檔案
indices.store.throttle.max_bytes_per_sec: 200mb
indices.store.throttle.type: none
index.translog.flush_threshold_size: 1GB
index.refresh_interval: -1
index.number_of_replicas: 0
index.number_of_shards: 20
索引完成一半,導數進行了10小時左右時JAVA heap溢位
索引所佔磁碟空間為110G左右

使用es-jdbc方式的配置檔案

!/bin/sh

bin=JDBCIMPORTERHOME/binlib=

JDBC_IMPORTER_HOME/bin lib=
JDBC_IMPORTER_HOME/lib
echo ‘{
“type” : “jdbc”,
“jdbc”: {
“elasticsearch.autodiscover”:true,
“elasticsearch.cluster”:”my-application”,
“url”:”jdbc:mysql://127.0.0.1:3306/test”,
“user”:”root”,
“password”:”root”,
“sql”:”select * from qqinfo”,
“elasticsearch” : {
“host” : “127.0.0.1”,
“port” : 9300
},
“index” : “myindex1”,
“type” : “mytype1”
}
}’| java -cp “lib/"Dlog4j.configurationFile=
{lib}/*" -Dlog4j.configurationFile=
{bin}/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter

使用logstash-input-jdbc方式的配置檔案
input {
jdbc {
jdbc_driver_library => “/Users/luobao/study/apache-hive-0.13.1-bin/lib/mysql-connector-java-5.1.34.jar”
jdbc_driver_class => “com.mysql.jdbc.Driver”
jdbc_connection_string => “jdbc:mysql://127.0.0.1:3306/test”
jdbc_user => “root”
jdbc_password => “root”
# or jdbc_password_filepath => “/path/to/my/password_file”
statement => “SELECT * from qqinfo”
jdbc_paging_enabled => “false”
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => “localhost:9200”
index => “contacts”
}
}

相關文章