mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
### What is this PR for? This is to give Windows first-class support for running Zeppelin without the need for Cygwin or other hacks. ### What type of PR is it? Improvement ### Todos * [x] - Fix notebook dir path handling which right now assumes URI compatible string (see https://github.com/apache/incubator-zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/VFSNotebookRepo.java#L63) * [x] - Add documentation for configuring and running on Windows * [x] - Independent code review of the CMD scripts to ensure they're correct ### Is there a relevant Jira issue? ZEPPELIN-647 ### How should this be tested? * Pull this PR * Build * Override default ZEPPELIN_NOTEBOOK_DIR in zeppelin-env.cmd to be an absolute file URI such as file:///c:/notebook * Start with bin\zeppelin.cmd * If using any Hadoop system ensure you have winutils.exe in your HADOOP_HOME\bin, see (https://github.com/steveloughran/winutils) ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? Yes Author: Silvio Fiorito <silvio.fiorito@granturing.com> Author: Silvio Fiorito <Silvio Fiorito> Closes #734 from granturing/windows-support and squashes the following commits:8aadd45[Silvio Fiorito] Fixes to handle spaces in paths properly, both for ZEPPELIN_HOME and CLASSPATH73aaf4f[Silvio Fiorito] Default to the appropriate interpreter when running on Windowsdb28fe9[Silvio Fiorito] Support for running unit tests on Windows using the appropriate interpreter scripta1e3097[Silvio Fiorito] Support for Windows CMD shell interpreter82acdcf[Silvio Fiorito] Merge branch 'master' into windows-support9e8b309[Silvio Fiorito] Initital doc updates for running on Windows03baf62[Silvio Fiorito] Additional fix for embedded pyspark environment variables2b9f01c[Silvio Fiorito] Fix for pyspark PYTHONPATH environment variable not being set properly due to delayed expansionc700808[Silvio Fiorito] Check for Windows path before creating URI to prevent URISyntaxExecptiond30e4b9[Silvio Fiorito] And again fix indentations missed last time5b49d3e[Silvio Fiorito] Cleaned up indentation9e40482[Silvio Fiorito] Initial support for Windows platform, startup scripts
91 lines
3.1 KiB
Batchfile
91 lines
3.1 KiB
Batchfile
@echo off
|
|
|
|
REM Licensed to the Apache Software Foundation (ASF) under one or more
|
|
REM contributor license agreements. See the NOTICE file distributed with
|
|
REM this work for additional information regarding copyright ownership.
|
|
REM The ASF licenses this file to You under the Apache License, Version 2.0
|
|
REM (the "License"); you may not use this file except in compliance with
|
|
REM the License. You may obtain a copy of the License at
|
|
REM
|
|
REM http://www.apache.org/licenses/LICENSE-2.0
|
|
REM
|
|
REM Unless required by applicable law or agreed to in writing, software
|
|
REM distributed under the License is distributed on an "AS IS" BASIS,
|
|
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
REM See the License for the specific language governing permissions and
|
|
REM limitations under the License.
|
|
|
|
setlocal enableextensions enabledelayedexpansion
|
|
|
|
set bin=%~dp0
|
|
|
|
if not "%1"=="--config" goto MAIN
|
|
|
|
:SET_CONFIG
|
|
shift
|
|
set conf_dir=%~f1
|
|
shift
|
|
if not exist "%conf_dir%" (
|
|
echo ERROR: %conf_dir% is not a directory
|
|
echo Usage: %~n0 [--config ^<conf-dir^>]
|
|
exit /b 1
|
|
) else (
|
|
set ZEPPELIN_CONF_DIR=%conf_dir%
|
|
)
|
|
|
|
:MAIN
|
|
call "%bin%\common.cmd"
|
|
|
|
set HOSTNAME=%COMPUTERNAME%
|
|
set ZEPPELIN_LOGFILE=%ZEPPELIN_LOG_DIR%\zeppelin-%ZEPPELIN_IDENT_STRING%-%HOSTNAME%.log
|
|
|
|
set ZEPPELIN_SERVER=org.apache.zeppelin.server.ZeppelinServer
|
|
set JAVA_OPTS=%JAVA_OPTS% -Dzeppelin.log.file="%ZEPPELIN_LOGFILE%"
|
|
|
|
if exist "%ZEPPELIN_HOME%\zeppelin-interpreter\target\classes" (
|
|
set ZEPPELIN_CLASSPATH=%ZEPPELIN_CLASSPATH%;"%ZEPPELIN_HOME%\zeppelin-interpreter\target\classes"
|
|
)
|
|
|
|
if exist "%ZEPPELIN_HOME%\zeppelin-zengine\target\classes" (
|
|
set ZEPPELIN_CLASSPATH=%ZEPPELIN_CLASSPATH%;"%ZEPPELIN_HOME%\zeppelin-zengine\target\classes"
|
|
)
|
|
|
|
if exist "%ZEPPELIN_HOME%\zeppelin-server\target\classes" (
|
|
set ZEPPELIN_CLASSPATH=%ZEPPELIN_CLASSPATH%;"%ZEPPELIN_HOME%\zeppelin-server\target\classes"
|
|
)
|
|
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%"
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%\lib"
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%\zeppelin-interpreter\target\lib"
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%\zeppelin-zengine\target\lib"
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%\zeppelin-server\target\lib"
|
|
call "%bin%\functions.cmd" ADDJARINDIR "%ZEPPELIN_HOME%\zeppelin-web\target\lib"
|
|
|
|
if not defined CLASSPATH (
|
|
set CLASSPATH=%ZEPPELIN_CLASSPATH%
|
|
) else (
|
|
set CLASSPATH=%CLASSPATH%;%ZEPPELIN_CLASSPATH%
|
|
)
|
|
|
|
if not defined ZEPPELIN_CLASSPATH_OVERRIDES (
|
|
set CLASSPATH=%ZEPPELIN_CLASSPATH%
|
|
) else (
|
|
set CLASSPATH=%ZEPPELIN_CLASSPATH_OVERRIDES%;%ZEPPELIN_CLASSPATH%
|
|
)
|
|
|
|
if not exist %ZEPPELIN_LOG_DIR% (
|
|
echo Log dir doesn't exist, create %ZEPPELIN_LOG_DIR%
|
|
mkdir "%ZEPPELIN_LOG_DIR%"
|
|
)
|
|
|
|
if not exist %ZEPPELIN_PID_DIR% (
|
|
echo Pid dir doesn't exist, create %ZEPPELIN_PID_DIR%
|
|
mkdir "%ZEPPELIN_PID_DIR%"
|
|
)
|
|
|
|
if not exist %ZEPPELIN_NOTEBOOK_DIR% (
|
|
echo Notebook dir doesn't exist, create %ZEPPELIN_NOTEBOOK_DIR%
|
|
mkdir "%ZEPPELIN_NOTEBOOK_DIR%"
|
|
)
|
|
|
|
"%ZEPPELIN_RUNNER%" %JAVA_OPTS% -cp %CLASSPATH% %ZEPPELIN_SERVER% "%*"
|