背景
由于公司内部调整,apahce druid 集群需迁移。深度存储的路径也需要调整。
迁移hdfs中的文件
这个我们有专门的人员迁移的,具体操作不详。应该就是借助工具,在hdfs中进行 segements的迁移。
使用工具insert-segment-to-db
这个在使用时,注意版本。后期druid 升级后,包名进行过调整,导致使用的命令有差异。 官网给出的导入命令
java -Ddruid.metadata.storage.type=mysql -Ddruid.metadata.storage.connector.connectURI=jdbc\:mysql\://localhost\:3306/druid -Ddruid.metadata.storage.connector.user=druid -Ddruid.metadata.storage.connector.password=diurd -Ddruid.extensions.loadList=[\"mysql-metadata-storage\",\"druid-hdfs-storage\"] -Ddruid.storage.type=hdfs-Ddruid.storage.type=hdfs-cp $DRUID_CLASSPATH org.apache.druid.cli.Main tools insert-segment-to-db --workingDir hdfs://host:port//druid/storage/wikipedia --updateDescriptor true
在实际导入的过程中,设置DRUID_CLASSPATH 过程中出现问题,导致无法读取到hdfs中的文件。此处需设置,druid 的lib 于hadoop 的配置 以下命令是个人导入的命令。
java -Ddruid.metadata.storage.type=mysql -Ddruid.metadata.storage.connector.connectURI=jdbc:mysql://ip:3306/druid -Ddruid.metadata.storage.connector.user=druid -Ddruid.metadata.storage.connector.password= -Ddruid.extensions.loadList=[\"mysql-metadata-storage\",\"druid-hdfs-storage\"] -Ddruid.storage.type=hdfs -cp "conf/druid/_common:/home/ant/druid/apache-druid-0.13.0-incubating/lib/*" org.apache.druid.cli.Main tools insert-segment-to-db --workingDir hdfs://hodoop//druid/segments/wikipedia1 --updateDescriptor true
注意
导入数据时,尽量保持环境属于安全模式,也就是没有数据写入。