ARP connector not work

I created a connector following https://www.dremio.com/tutorials/how-to-create-an-arp-connector/.

  • put odps-jdbc-3.2.1.jar to /opt/dremio/jars/3rdparty/
  • put dremio-maxcompute-plugin-3.2.4-201906051751050278-1bcce62.jar to /opt/dremio/jars/

Datasource is here.

MacomputeConf.java file:

@SourceType(value = "MAXCOMPUTE", label = "Maxcompute")
public class MaxcomputeConf extends AbstractArpConf<MaxcomputeConf> {
  private static final String ARP_FILENAME = "arp/implementation/maxcompute-arp.yaml";
  private static final ArpDialect ARP_DIALECT =
      AbstractArpConf.loadArpFile(ARP_FILENAME, (ArpDialect::new));
  private static final String DRIVER = "com.aliyun.odps.jdbc.OdpsDriver";

However, it not work with error:

2020-07-10 11:25:13,710 [main] ERROR ROOT - Dremio is exiting. Failure while starting services.
java.lang.NoClassDefFoundError: com/dremio/exec/store/jdbc/dialect/DremioSqlDialect
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.dremio.common.scanner.persistence.ScanResult.getAnnotatedClasses(ScanResult.java:175)
	at com.dremio.exec.catalog.ConnectionReaderImpl.getCandidateSources(ConnectionReaderImpl.java:89)
	at com.dremio.exec.catalog.ConnectionReaderImpl.makeReader(ConnectionReaderImpl.java:70)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.dremio.exec.catalog.ConnectionReader.of(ConnectionReader.java:69)
	at com.dremio.dac.cmd.upgrade.Upgrade.run(Upgrade.java:242)
	at com.dremio.dac.cmd.upgrade.Upgrade.run(Upgrade.java:183)
	at com.dremio.dac.daemon.DremioDaemon.main(DremioDaemon.java:141)
Caused by: java.lang.ClassNotFoundException: com.dremio.exec.store.jdbc.dialect.DremioSqlDialect
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 13 common frames omitted

Hi @koolay,
You’ll need to rebuild the dremio-maxcompute-plugin-3.2.4-201906051751050278-1bcce62.jar against the version of Dremio you are planning to run it against.

The DremioSqlDialect class has moved.

@jduong
It works with newer dremio-version.
Thank you!