This section describes how to manually install ODF and its prerequisites.
ODF is installed on an application server like jetty. Its prereqs (Kafka and Atlas) can run on separate machines, they simple must be reachable over the network.
ODF's configuration is stored in Zookeeper which is a prereq for Kafka.
ODF has two prerequisites:
Apache Atlas is an open metadata infrastructure that is currently in incubator status. There is currently no binary download available, you have to build it yourself. Alternatively, you can download a version that we built here.
After you built the distribution, simply unpack the tar ball, and run bin/atlas_start.py
. Atlas will be started on port 21443 as default, so point your browser to https://localhost:21443 to look at the Atlas UI. Note that starting Atlas can take up to a minute.
To stop, run bin/atlas_stop.py
.
See the Atlas section in the Troubleshooting guide for common issues and how to workaround them.
Apache Kafka is an open source project that implements a messaging infrastructure. ODF uses Kafka for notifications and queueing up requests to discovery services.
To install Kafka, download the version 0.8.2.1 with Scala 2.10 (which is the version we used in our tests) from the Kafka website, see here.
After unpacking the tar ball these steps should get you going:
bin/zookeeper-server-start.sh config/zookeeper.properties
.bin/kafka-server-start.sh config/server.properties
By default, Zookeeper is running on port 2181 and Kafka runs on port 9092. You can change the Zookeeper port by changing the properties clientPort
in config/zookeeper.properties
and zookeeper.connect
in config/server.properties
. Change the Kafka port by changing port
in config/server.properties
.
For Windows, run the respective .bat commands in the bin\windows
directory.
The only ODF artifact you need for deployment is the war file built by the odf-web maven project, which can typically be found here:
odf-web/target/odf-web-0.1.0-SNAPSHOT.war
To tell ODF which Zookeeper / Kafka to use you will need to set the Java system property odf.zookeeper.connect
to point to the Zookeeper host and port. The value is typically the same string as the zookeeper.connect
property in the Kafka installation config/server.properties
file:
-Dodf.zookeeper.connect=zkserver.example.org:2181
Note that if this property is not set, the default is localhost:52181
.
ODF should run on any application server. As of now we have done most of our testing on Jetty.
Jetty is an open source web and application server. We have used version 9.2.x for our testing (the most current one that supports Java 7). Download it from the web site https://eclipse.org/jetty/.
Here are some quick start instructions for creating a new Jetty base. Compare the respective Jetty documentation section here.
First, for in order to enable basic authentication, the following configuration needs to be added to the etc/jetty.xml
file, right before the closing </Configure>
tag at the end of the file:
<Call name="addBean"> <Arg> <New class="org.eclipse.jetty.security.HashLoginService"> <Set name="name">ODF Realm</Set> <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> </New> </Arg> </Call>
Secondly, a etc/realm.properties
file needs to be added that contains the credentials of the ODF users in the following format:
<username>: <password>[,<rolename> ...]
Then, you will have to create and initialize new directory where you deploy your web apps and copy the ODF war there. These commands should do the trick:
mkdir myjettybase cd myjettybase java -jar $JETTY_HOME\start.jar --add-to-startd=https,ssl,deploy cp $ODFDIR/odf-web-0.1.0-SNAPSHOT.jar webapps java -Dodf.zookeeper.connect=zkserver.example.org:2181 -jar $JETTY_HOME\start.jar
The first java command initializes the jetty base directory by creating a directory start.d
which contains some config files (e.g. http.ini contains the port the server runs on) and the empty webapps
directory. The copy command copies the ODF war file to the webapps folder. The last command starts Jetty (on default port 8443). You can stop it by hitting Ctrl-C.
You should see a message like this one indicating that the app was found and started.
2016-02-26 08:28:24.033:INFO:oejsh.ContextHandler:Scanner-0: Started o.e.j.w.WebAppContext@-545d793e{/odf-web-0.1.0-SNAPSHOT,file:/C:/temp/jetty-0.0.0.0-8443-odf-web-0.1.0-SNAPSHOT.war-_odf-web-0.1.0-SNAPSHOT-any-8485458047819836926.dir/webapp/,AVAILABLE}{myjettybase\webapps\odf-web-0.1.0-SNAPSHOT.war}
Point your browser to https://localhost:8443/odf-web-0.1.0-SNAPSHOT to see the ODF console.
Stay tuned