Search code examples
mavengruntjsvagrantbowerapache-zeppelin

Issues Installing Zeppelin on CentOS 6 with Vagrant


We are trying to stand up a sandbox/evaluation instance of Zeppelin on a 4-node CentOS 6 cluster with Vagrant and having some issues with dependencies in the build process. Here is the high level script we’re running.

(Have tried running this as privileged account and as a user, with the same results.)

Recreate Steps

  • Install Hadoop 2.7.0 from Binary
  • Install Spark 1.4.0 from Binary
  • Install Maven 3.3.3 from Binary
  • Run the following:

    curl --silent --location  https://rpm.nodesource.com/setup | bash -
    yum install -y nodejs
    git config --global url."https://".insteadOf git://
    git clone https://github.com/apache/incubator-zeppelin.git
    cd incubator-zeppelin
    npm update -g npm
    npm install -g grunt-cli
    npm install -g grunt 
    npm install -g bower
    mvn clean package -Pspark-1.4 -Dhadoop.version=2.7.0 -Phadoop-2.6 -DskipTests
    

Stack Trace

Here’s an example of the stack trace we are receiving when we get to the step for building zeppelin-web:

==> node1: Downloaded: https://repo.maven.apache.org/maven2/com/google/guava/guava/10.0.1/guava-10.0.1.jar (1467 KB at 154.5 KB/sec)
==> node1: [INFO] Installing node version v0.10.18
==> node1: [INFO] Creating temporary directory /home/vagrant/incubator-zeppelin/zeppelin-web/node_tmp
==> node1: [INFO] Downloading Node.js from http://nodejs.org/dist/v0.10.18/node-v0.10.18-linux-x64.tar.gz to /home/vagrant/incubator-zeppelin/zeppelin-web/node_tmp/node.tar.gz
==> node1: [INFO] No proxy was configured, downloading directly
==> node1: [INFO] Extracting Node.js files in node_tmp
==> node1: [INFO] Unpacking /home/vagrant/incubator-zeppelin/zeppelin-web/node_tmp/node.tar.gz into /home/vagrant/incubator-zeppelin/zeppelin-web/node_tmp
==> node1: [INFO] Moving node binary to /home/vagrant/incubator-zeppelin/zeppelin-web/node/node
==> node1: [INFO] Deleting temporary directory /home/vagrant/incubator-zeppelin/zeppelin-web/node_tmp
==> node1: [INFO] Installed node locally.
==> node1: 
==> node1: [INFO] Installing npm version 1.3.8
==> node1: [INFO] Downloading NPM from http://registry.npmjs.org/npm/-/npm-1.3.8.tgz to /home/vagrant/incubator-zeppelin/zeppelin-web/npm.tar.gz
==> node1: [INFO] No proxy was configured, downloading directly
==> node1: [INFO] Extracting NPM files in node/
==> node1: [INFO] Unpacking /home/vagrant/incubator-zeppelin/zeppelin-web/npm.tar.gz into /home/vagrant/incubator-zeppelin/zeppelin-web/node
==> node1: [INFO] Installed NPM locally.
==> node1: [INFO] 
==> node1: [INFO] --- frontend-maven-plugin:0.0.23:npm (npm install) @ zeppelin-web ---
==> node1: [INFO] Running 'npm install --color=false' in /home/vagrant/incubator-zeppelin/zeppelin-web
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-angular-templates
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-dom-munger
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-autoprefixer
==> node1: [ERROR] npm http GET https://registry.npmjs.org/bower
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-concurrent
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-connect
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-clean
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-concat
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-copy
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-cssmin
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-htmlmin
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-jshint
==> node1: [ERROR] npm http GET https://registry.npmjs.org/grunt-contrib-uglify

...

It goes on like that for a while, then fails the whole build.

TL;DR

Is there something missing in terms of prerequisites, or is there some trickery to getting it to build on CentOS 6 that’s not in the documentation? :) Also, this has been posted to the Zeppelin User Board, so feel free to answer there too/instead.


Solution

  • The solution to my problem was to run the following as a non-root user:

    sudo env "PATH=$PATH" mvn clean install -Pspark-1.4 -Pspark.version=1.4.0 -Phadoop.version=2.7.0 -DskipTests
    sudo env "PATH=$PATH" mvn clean install -Pspark-1.4 -Pspark.version=1.4.0 -Phadoop.version=2.7.0 -DskipTests -rf :zeppelin-web