I have Phoenix 4.7.0 working correctly with HBase 1.1.
I am trying to start the tephra transaction manager started on my hbase masters, but it complains about a missing method.
What I have done is untarred HBase to /opt/hbase. I then copied phoenix-4.7.0-HBase-1.1-server.jar and phoenix-4.7.0-HBase-1.1-client-without-hbase into /opt/hbase/lib
<configuration>
<property>
<name>hbase.master.loadbalancer.class</name>
<value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
</property>
<property>
<name>data.tx.snapshot.dir</name>
<value>/tmp/tephra/snapshots</value>
</property>
<property>
<name>data.tx.timeout</name>
<value>60</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>f826338-zookeeper.f826338</value>
</property>
</configuration>
However, if I check the logs, it shows that it can't elect a leader because it can't find the method addListener() in the TransactionManager class:
-# cat tephra-service--f826338-hmaster1.f826338.
Thu Mar 31 02:23:42 UTC 2016 Starting tephra service on f826338-hmaster1.f826338
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) 0
memory(kbytes) unlimited
locked memory(kbytes) 64
process 1048576
nofiles 1048576
vmemory(kbytes) unlimited
locks unlimited
Command: /usr/lib/jvm/java-8-oracle/bin/java -XX:+UseConcMarkSweepGC -cp /opt/hbase/bin/../lib/*:/opt/hbase/bin/../conf/:/opt/hbase/phoenix-assembly/target/*:/opt/hbase/lib/: co.cask.tephra.TransactionServiceMain
2016-03-31 02:23:43,320 INFO [main] zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2016-03-31 02:23:43,321 INFO [main] zookeeper.ZooKeeper: Client environment:
host.name=f826338-hmaster1.f826338
2016-03-31 02:23:43,321 INFO [main] zookeeper.ZooKeeper: Client environment:java.version=1.8.0_74
2016-03-31 02:23:43,321 INFO [main] zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation
2016-03-31 02:23:43,321 INFO [main] zookeeper.ZooKeeper: Client environment:java.home=/usr/lib/jvm/java-8-oracle/jre
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:java.class.path=/opt/hbase/bin/../lib/hadoop-mapreduce-client-core-2.5.1.jar:/opt/hbase/bin/../lib/api-asn1-api-1.0.0-M20.jar:/opt/hbase/bin/../lib/hadoop-mapreduce-client-app-2.5.1.jar:/opt/hbase/bin/../lib/commons-beanutils-1.7.0.jar:/opt/hbase/bin/../lib/jsp-2.1-6.1.14.jar:/opt/hbase/bin/../lib/jasper-compiler-5.5.23.jar:/opt/hbase/bin/../lib/hbase-rest-1.1.3.jar:/opt/hbase/bin/../lib/hadoop-annotations-2.5.1.jar:/opt/hbase/bin/../lib/hbase-hadoop2-compat-1.1.3.jar:/opt/hbase/bin/../lib/hadoop-common-2.5.1.jar:/opt/hbase/bin/../lib/disruptor-3.3.0.jar:/opt/hbase/bin/../lib/jackson-core-asl-1.9.13.jar:/opt/hbase/bin/../lib/aopalliance-1.0.jar:/opt/hbase/bin/../lib/jaxb-api-2.2.2.jar:/opt/hbase/bin/../lib/jaxb-impl-2.2.3-1.jar:/opt/hbase/bin/../lib/java-xmlbuilder-0.4.jar:/opt/hbase/bin/../lib/protobuf-java-2.5.0.jar:/opt/hbase/bin/../lib/junit-4.12.jar:/opt/hbase/bin/../lib/hbase-shell-1.1.3.jar:/opt/hbase/bin/../lib/phoenix-4.7.0-HBase-1.1-server.jar:/opt/hbase/bin/../lib/hbase-it-1.1.3.jar:/opt/hbase/bin/../lib/jruby-complete-1.6.8.jar:/opt/hbase/bin/../lib/spymemcached-2.11.6.jar:/opt/hbase/bin/../lib/hbase-server-1.1.3-tests.jar:/opt/hbase/bin/../lib/slf4j-log4j12-1.7.5.jar:/opt/hbase/bin/../lib/api-util-1.0.0-M20.jar:/opt/hbase/bin/../lib/jets3t-0.9.0.jar:/opt/hbase/bin/../lib/netty-all-4.0.23.Final.jar:/opt/hbase/bin/../lib/paranamer-2.3.jar:/opt/hbase/bin/../lib/jersey-core-1.9.jar:/opt/hbase/bin/../lib/servlet-api-2.5-6.1.14.jar:/opt/hbase/bin/../lib/leveldbjni-all-1.8.jar:/opt/hbase/bin/../lib/commons-io-2.4.jar:/opt/hbase/bin/../lib/commons-logging-1.2.jar:/opt/hbase/bin/../lib/commons-compress-1.4.1.jar:/opt/hbase/bin/../lib/jersey-guice-1.9.jar:/opt/hbase/bin/../lib/xmlenc-0.52.jar:/opt/hbase/bin/../lib/apacheds-kerberos-codec-2.0.0-M15.jar:/opt/hbase/bin/../lib/hadoop-mapreduce-client-common-2.5.1.jar:/opt/hbase/bin/../lib/jetty-sslengine-6.1.26.jar:/opt/hbase/bin/../lib/hbase-hadoop-compat-1.1.3.jar:/opt/hbase/bin/../lib/jsch-0.1.42.jar:/opt/hbase/bin/../lib/jcodings-1.0.8.jar:/opt/hbase/bin/../lib/hadoop-client-2.5.1.jar:/opt/hbase/bin/../lib/hbase-it-1.1.3-tests.jar:/opt/hbase/bin/../lib/jersey-json-1.9.jar:/opt/hbase/bin/../lib/commons-collections-3.2.2.jar:/opt/hbase/bin/../lib/hbase-server-1.1.3.jar:/opt/hbase/bin/../lib/jetty-util-6.1.26.jar:/opt/hbase/bin/../lib/asm-3.1.jar:/opt/hbase/bin/../lib/javax.inject-1.jar:/opt/hbase/bin/../lib/servlet-api-2.5.jar:/opt/hbase/bin/../lib/jetty-6.1.26.jar:/opt/hbase/bin/../lib/jersey-server-1.9.jar:/opt/hbase/bin/../lib/hbase-annotations-1.1.3.jar:/opt/hbase/bin/../lib/jackson-mapper-asl-1.9.13.jar:/opt/hbase/bin/../lib/commons-cli-1.2.jar:/opt/hbase/bin/../lib/joni-2.1.2.jar:/opt/hbase/bin/../lib/jettison-1.3.3.jar:/opt/hbase/bin/../lib/jasper-runtime-5.5.23.jar:/opt/hbase/bin/../lib/jackson-jaxrs-1.9.13.jar:/opt/hbase/bin/../lib/commons-math-2.2.jar:/opt/hbase/bin/../lib/hbase-resource-bundle-1.1.3.jar:/opt/hbase/bin/../lib/hbase-common-1.1.3.jar:/opt/hbase/bin/../lib/jsp-api-2.1-6.1.14.jar:/opt/hbase/bin/../lib/httpclient-4.2.5.jar:/opt/hbase/bin/../lib/hadoop-yarn-client-2.5.1.jar:/opt/hbase/bin/../lib/guice-servlet-3.0.jar:/opt/hbase/bin/../lib/snappy-java-1.0.4.1.jar:/opt/hbase/bin/../lib/httpcore-4.1.3.jar:/opt/hbase/bin/../lib/hadoop-hdfs-2.5.1.jar:/opt/hbase/bin/../lib/commons-httpclient-3.1.jar:/opt/hbase/bin/../lib/hbase-protocol-1.1.3.jar:/opt/hbase/bin/../lib/commons-net-3.1.jar:/opt/hbase/bin/../lib/commons-configuration-1.6.jar:/opt/hbase/bin/../lib/hadoop-mapreduce-client-jobclient-2.5.1.jar:/opt/hbase/bin/../lib/hbase-examples-1.1.3.jar:/opt/hbase/bin/../lib/hbase-procedure-1.1.3.jar:/opt/hbase/bin/../lib/apacheds-i18n-2.0.0-M15.jar:/opt/hbase/bin/../lib/findbugs-annotations-1.3.9-1.jar:/opt/hbase/bin/../lib/commons-el-1.0.jar:/opt/hbase/bin/../lib/commons-digester-1.8.jar:/opt/hbase/bin/../lib/netty-3.2.4.Final.jar:/opt/hbase/bin/../lib/guice-3.0.jar:/opt/hbase/bin/../lib/avro-1.7.4.jar:/opt/hbase/bin/../lib/commons-daemon-1.0.13.jar:/opt/hbase/bin/../lib/hbase-thrift-1.1.3.jar:/opt/hbase/bin/../lib/xz-1.0.jar:/opt/hbase/bin/../lib/jsr305-1.3.9.jar:/opt/hbase/bin/../lib/hadoop-yarn-common-2.5.1.jar:/opt/hbase/bin/../lib/commons-beanutils-core-1.8.0.jar:/opt/hbase/bin/../lib/hbase-prefix-tree-1.1.3.jar:/opt/hbase/bin/../lib/hadoop-yarn-server-common-2.5.1.jar:/opt/hbase/bin/../lib/htrace-core-3.1.0-incubating.jar:/opt/hbase/bin/../lib/commons-math3-3.1.1.jar:/opt/hbase/bin/../lib/jamon-runtime-2.3.1.jar:/opt/hbase/bin/../lib/hbase-client-1.1.3.jar:/opt/hbase/bin/../lib/slf4j-api-1.7.7.jar:/opt/hbase/bin/../lib/activation-1.1.jar:/opt/hbase/bin/../lib/zookeeper-3.4.6.jar:/opt/hbase/bin/../lib/commons-lang-2.6.jar:/opt/hbase/bin/../lib/hbase-annotations-1.1.3-tests.jar:/opt/hbase/bin/../lib/commons-codec-1.9.jar:/opt/hbase/bin/../lib/hadoop-mapreduce-client-shuffle-2.5.1.jar:/opt/hbase/bin/../lib/hbase-common-1.1.3-tests.jar:/opt/hbase/bin/../lib/guava-12.0.1.jar:/opt/hbase/bin/../lib/hadoop-auth-2.5.1.jar:/opt/hbase/bin/../lib/libthrift-0.9.0.jar:/opt/hbase/bin/../lib/metrics-core-2.2.0.jar:/opt/hbase/bin/../lib/hadoop-yarn-api-2.5.1.jar:/opt/hbase/bin/../lib/jackson-xc-1.9.13.jar:/opt/hbase/bin/../lib/log4j-1.2.17.jar:/opt/hbase/bin/../lib/jersey-client-1.9.jar:/opt/hbase/bin/../lib/phoenix-4.7.0-HBase-1.1-client-without-hbase.jar:/opt/hbase/bin/../conf/:/opt/hbase/phoenix-assembly/target/*:/opt/hbase/lib/:
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:java.compiler=<NA>
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:
os.name=Linux
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:os.arch=amd64
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:os.version=4.4.6-coreos
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:
user.name=root
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:user.home=/root
2016-03-31 02:23:43,322 INFO [main] zookeeper.ZooKeeper: Client environment:user.dir=/opt/hbase
2016-03-31 02:23:43,323 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=f826338-zookeeper.f826338 sessionTimeout=90000 watcher=co.cask.tephra.zookeeper.TephraZKClientService$5@647fd8ce
2016-03-31 02:23:43,343 INFO [main-SendThread(f826338-zookeeper.f826338:2181)] zookeeper.ClientCnxn: Opening socket connection to server f826338-zookeeper.f826338/
172.18.0.2:2181. Will not attempt to authenticate using SASL (unknown error)
2016-03-31 02:23:43,403 INFO [main-SendThread(f826338-zookeeper.f826338:2181)] zookeeper.ClientCnxn: Socket connection established to f826338-zookeeper.f826338/
172.18.0.2:2181, initiating session
2016-03-31 02:23:43,409 INFO [main-SendThread(f826338-zookeeper.f826338:2181)] zookeeper.ClientCnxn: Session establishment complete on server f826338-zookeeper.f826338/
172.18.0.2:2181, sessionid = 0x153ca00257d001c, negotiated timeout = 40000
2016-03-31 02:23:43,438 INFO [main] inmemory.InMemoryTransactionService: Configuring TransactionService, address: 0.0.0.0, port: 15165, threads: 20, io threads: 2, max read buffer (bytes): 16777216
2016-03-31 02:23:43,439 INFO [main] tephra.TransactionServiceMain: Starting TransactionServiceMain
2016-03-31 02:23:43,455 INFO [main] zookeeper.LeaderElection: Start leader election on f826338-zookeeper.f826338/tx.service/leader with guid 0e34975e-fc4f-4ff7-a7be-429f9535ab84
2016-03-31 02:23:43,504 INFO [leader-election-tx.service-leader] metrics.DefaultMetricsCollector: Configured metrics report to emit every 60 seconds
2016-03-31 02:23:43,553 WARN [leader-election-tx.service-leader] zookeeper.LeaderElection: Exception thrown when calling leader() method. Withdraw from the leader election process.
java.lang.NoSuchMethodError: co.cask.tephra.TransactionManager.addListener(Lcom/google/common/util/concurrent/Service$Listener;Ljava/util/concurrent/Executor;)V
at co.cask.tephra.distributed.TransactionService$1.leader(TransactionService.java:83)
at org.apache.twill.internal.zookeeper.LeaderElection.becomeLeader(LeaderElection.java:229)
at org.apache.twill.internal.zookeeper.LeaderElection.access$1800(LeaderElection.java:53)
at org.apache.twill.internal.zookeeper.LeaderElection$5.onSuccess(LeaderElection.java:207)
at org.apache.twill.internal.zookeeper.LeaderElection$5.onSuccess(LeaderElection.java:186)
at com.google.common.util.concurrent.Futures$5.run(Futures.java:768)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)