1、解压缩:

tar -xzvf apache-druid-0.17.0-bin.tar.gz -C /home

2、修改服务器配置:

配置文件路径:
conf/druid/cluster
1)配置元数据存储
conf/druid/cluster/_common/common.runtime.properties

例如配置mysql为元数据存储
在mysql中配置好访问权限:
— create a druid database, make sure to use utf8mb4 as encoding
CREATE DATABASE druid DEFAULT CHARACTER SET utf8mb4;
— create a druid user
CREATE USER ‘druid’@’%’ IDENTIFIED BY ‘Druid,123’;
— grant the user all the permissions on the database we just created
GRANT ALL PRIVILEGES ON druid.* TO ‘druid’@’%’;
flush privileges;

在druid中配置
druid.extensions.loadList=[“mysql-metadata-storage”]
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql:///druid
druid.metadata.storage.connector.user=druid
druid.metadata.storage.connector.password=diurd

配置深度存储
将数据存储配置为S3或者HDFS
比如配置HDFS,修改
conf/druid/cluster/_common/common.runtime.properties
druid.extensions.loadList=[“druid-hdfs-storage”]

druid.storage.type=local
#druid.storage.storageDirectory=var/druid/segments

druid.storage.type=hdfs
druid.storage.storageDirectory=/druid/segments

druid.indexer.logs.type=file
#druid.indexer.logs.directory=var/druid/indexing-logs

druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=/druid/indexing-logs
将Hadoop配置XML(core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml)放在Druid中conf/druid/cluster/_common/目录。
cp core-site.xml /home/apache-druid-0.17.0/conf/druid/cluster/_common/
hdfs-site.xml /home/apache-druid-0.17.0/conf/druid/cluster/_common/
cp yarn-site.xml /home/apache-druid-0.17.0/conf/druid/cluster/_common/
cp mapred-site.xml /home/apache-druid-0.17.0/conf/druid/cluster/_common/

配置zookeeper连接
修改conf/druid/cluster/_common/
druid.zk.service.host

修改完成配置后,复制文件到其它节点:
scp -r apache-druid-0.17.0/ bigdata-2:/home
scp -r apache-druid-0.17.0/ bigdata-3:/home
scp -r apache-druid-0.17.0/ bigdata-4:/home
scp -r apache-druid-0.17.0/ bigdata-5:/home

3、启动
启动前注意打开端口限制

主节点:
derby 1527
zk 2181
Coordinator 8081
Overlord 8090

数据节点:
Historical 8083
Middle Manager 8091, 8100–8199

查询节点:
Broker 8082
Router 8088

如果有端口冲突,需要提前修改端口。
druid.plaintextPort

4、启动:
启动主节点
由于我们使用外部zk 所以使用no-zk启动
bin/start-cluster-master-no-zk-server
nohup bin/start-cluster-master-no-zk-server >/dev/null 2>&1 &

启动数据服务器
bin/start-cluster-data-server
nohup bin/start-cluster-data-server >/dev/null 2>&1 &

启动查询服务器
bin/start-cluster-query-server
nohup bin/start-cluster-query-server >/dev/null 2>&1 &

5、常见问题:
1)问题:
Unknown provider[mysql] of Key[type=io.druid.metadata.MetadataStorageConnector, annotation=[none]], known options[[derby]] at io.druid.guice.PolyBind.createChoiceWithDefault(PolyBind.java:86) (via modules: com.google.inject.util.Modules$OverrideModule -> com.google.inject.util.Modules$OverrideModule -> io.druid.metadata.storage.derby.DerbyMetadataStorageDruidModule) while locating io.druid.metadata.MetadataStorageConnector
解决:在配置文件conf/druid/cluster/_common/common.runtime.properties中,修改如下内容,即添加mysql-metadata-storage。
druid.extensions.loadList=[“druid-hdfs-storage”, “druid-kafka-indexing-service”, “druid-datasketches”,”mysql-metadata-storage”]

2)问题:
Caused by: org.apache.druid.java.util.common.ISE: Could not find com.mysql.jdbc.Driver on the classpath. The MySQL Connector library is not included in the Druid distribution but is required to use MySQL. Please download a compatible library (for example ‘mysql-connector-java-5.1.38.jar’) and place it under ‘extensions/mysql-metadata-storage/‘. See https://druid.apache.org/downloads for more details.

解决:在如下目录中添加mysql的jdbc驱动文件。
/home/apache-druid-0.17.0/extensions/mysql-metadata-storage
即:
cp mysql-connector-java-8.0.13.jar /home/apache-druid-0.17.0/extensions/mysql-metadata-storage/

3)问题:
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
解决:在连接数据库的url中,加上allowPublicKeyRetrieval=true

4)问题:诡异问题记录:不要直接kill远程桌面,而是输入exit退出,否则进程会自动退出。