From 73b46cd74cb8c83ab6bb70d688bdc8177160fa96 Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Tue, 4 Aug 2026 00:03:06 +0900 Subject: [PATCH 1/6] [ZEPPELIN-6432] Modernize the Jekyll documentation build --- docs/AGENTS.md | 187 ++++++++++++ docs/Gemfile | 4 +- docs/Gemfile.lock | 288 ++++-------------- docs/README.md | 103 +++---- docs/_config.yml | 53 +--- docs/_includes/JB/analytics | 18 -- .../JB/analytics-providers/getclicky | 12 - .../JB/analytics-providers/google-classic | 11 - .../JB/analytics-providers/google-universal | 11 - .../_includes/JB/analytics-providers/mixpanel | 11 - docs/_includes/JB/analytics-providers/piwik | 10 - docs/_includes/JB/comments | 16 - docs/_includes/JB/comments-providers/disqus | 14 - docs/_includes/JB/comments-providers/facebook | 9 - .../JB/comments-providers/intensedebate | 6 - docs/_includes/JB/comments-providers/livefyre | 6 - docs/_includes/JB/matomo | 33 ++ docs/_includes/JB/sharing | 8 - docs/_includes/themes/zeppelin/default.html | 12 +- docs/_includes/themes/zeppelin/post.html | 2 - .../docs-img/labeled-property-graph-model.svg | 86 ++++++ .../img/docs-img/property-graph-example.svg | 87 ++++++ docs/atom.xml | 28 -- docs/check_external_resources.rb | 79 +++++ docs/rss.xml | 28 -- docs/usage/display_system/basic.md | 4 +- 26 files changed, 571 insertions(+), 555 deletions(-) create mode 100644 docs/AGENTS.md delete mode 100644 docs/_includes/JB/analytics delete mode 100644 docs/_includes/JB/analytics-providers/getclicky delete mode 100644 docs/_includes/JB/analytics-providers/google-classic delete mode 100644 docs/_includes/JB/analytics-providers/google-universal delete mode 100644 docs/_includes/JB/analytics-providers/mixpanel delete mode 100755 docs/_includes/JB/analytics-providers/piwik delete mode 100644 docs/_includes/JB/comments delete mode 100644 docs/_includes/JB/comments-providers/disqus delete mode 100644 docs/_includes/JB/comments-providers/facebook delete mode 100644 docs/_includes/JB/comments-providers/intensedebate delete mode 100644 docs/_includes/JB/comments-providers/livefyre create mode 100644 docs/_includes/JB/matomo delete mode 100644 docs/_includes/JB/sharing create mode 100644 docs/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg create mode 100644 docs/assets/themes/zeppelin/img/docs-img/property-graph-example.svg delete mode 100644 docs/atom.xml create mode 100644 docs/check_external_resources.rb delete mode 100644 docs/rss.xml diff --git a/docs/AGENTS.md b/docs/AGENTS.md new file mode 100644 index 00000000000..a449ac52550 --- /dev/null +++ b/docs/AGENTS.md @@ -0,0 +1,187 @@ + + +# AGENTS.md + +> Scoped guidance for work under `docs/`. This file complements the +> repository-root `AGENTS.md`. + +## Scope And Ownership + +- `docs/` is the source for Apache Zeppelin's versioned product documentation. +- The main `zeppelin.apache.org` website is maintained in + `apache/zeppelin-site`; its homepage does not need to use the same generator + as these versioned docs. +- Markdown, layouts, includes, and assets in this directory are built here. + The generated site is written to `docs/_site/`. +- `docs/_site/` is generated and gitignored. Never edit or commit it. + +## Build Model + +The current build is: + +```text +docs sources + docs/_config.yml + -> Jekyll from docs/Gemfile.lock + -> docs/_site/ + -> zeppelin-site/docs// during a separate publication step +``` + +- `Gemfile` declares Jekyll and its documentation build dependencies. +- `Gemfile.lock` pins the actual Ruby dependency versions. The Docker commands + use `bundle exec` so the pinned Jekyll version is used. +- `_config.yml` supplies `ZEPPELIN_VERSION` and `JB.BASE_PATH`. +- `_includes/JB/setup` applies `JB.BASE_PATH` only for a safe build. Therefore + a publication build must include `--safe`. +- `Rakefile` contains legacy Jekyll-Bootstrap helpers. It is not the primary + build entry point; use the Docker commands below. +- The Maven build does not generate this site. +- Docker is the supported build environment. Do not install or run Ruby, + Bundler, or Jekyll directly on the host. + +## Preview And Build + +Preview with Docker: + +```bash +cd docs +docker run --rm -it \ + -v "$PWD:/docs" \ + -w /docs \ + -p '4000:4000' \ + ruby:4.0.6 \ + bash -lc "bundle install && bundle exec jekyll serve --watch --host 0.0.0.0" +``` + +Open `http://localhost:4000`. The preview intentionally runs without +`--safe`, so links are rooted at `/` instead of the production version path. + +Build the publication artifact with Docker: + +```bash +cd docs +docker run --rm \ + -v "$PWD:/docs" \ + -w /docs \ + ruby:4.0.6 \ + bash -lc "bundle install && bundle exec jekyll build --safe" +``` + +The output must be under `_site/`, and generated links and assets must use the +`JB.BASE_PATH` configured in `_config.yml`. + +When `Gemfile` changes, update `Gemfile.lock` inside Docker: + +```bash +cd docs +docker run --rm \ + -v "$PWD:/docs" \ + -w /docs \ + ruby:4.0.6 \ + bundle lock --update +``` + +Run the publication build after updating the lockfile. + +## Authoring Conventions + +- Preserve the ASF license header in every new source file. +- Follow the front matter used by nearby pages: + + ```yaml + --- + layout: page + title: "Page title" + description: "Short description" + group: section/subsection + --- + ``` + +- Include `{% include JB/setup %}` before page content when following the + existing page layout. +- Prefix internal site links and assets with `{{BASE_PATH}}` when an absolute + site path is needed. Production docs are hosted below `/docs//`, + not at the domain root. +- Update `_includes/themes/zeppelin/_navigation.html` when a page must appear + in the global documentation navigation. +- Keep filenames, headings, and link targets stable unless the task explicitly + includes redirects or link migration. +- Check the corresponding source code or configuration template when + documenting runtime behavior. Do not infer current behavior from an older + documentation page. + +## Version Handling + +- `ZEPPELIN_VERSION` and `JB.BASE_PATH` in `_config.yml` must identify the same + version. +- `dev/change_zeppelin_version.sh` updates both values as part of a repository + version change. Do not change them for an ordinary documentation edit. +- Before producing release docs, verify that `JB.BASE_PATH` is exactly + `/docs/`. + +## Publication Boundary + +- Building this directory does not publish the website. +- The generated `_site/` tree is copied into + `apache/zeppelin-site/docs//` by separate release/site work. +- The `zeppelin-site` repository owns the homepage, ASF staging/publishing, + and the mapping or redirect for `/docs/latest/`. +- Do not modify `zeppelin-site`, historical documentation snapshots, or + publication branches unless the user explicitly includes that work. + +## ASF Website Policy + +- Follow the ASF project website policy at + `https://privacy.apache.org/policies/website-policy.html` and the Infra CSP + guidance at `https://infra.apache.org/csp.html`. +- Do not add Google Analytics or any other third-party analytics, tracker, + tracking pixel, advertising tag, or external monitoring script. +- Do not load JavaScript, CSS, fonts, images, or other assets from non-ASF + domains. Host an asset in this repository when its license permits, or use a + normal external link instead of embedding it. +- Third-party embeds require the consent and DPA handling described by the ASF + policy. Prefer a direct link unless the task explicitly includes an approved + consent flow. +- The production layout uses the ASF-hosted Matomo instance provisioned for + Apache Zeppelin as site ID `69`. Do not replace it with another analytics + service or change its endpoint without Privacy team approval. + +## Verification + +For every documentation change: + +1. Run the Docker publication build above from `docs/`. +2. Confirm `_site/index.html` and the generated file for each changed page + exist. +3. Check generated navigation, links, images, and code blocks for the affected + pages. +4. Confirm generated URLs use the configured `/docs//` prefix. +5. Check the generated site for external trackers and embedded resources: + + ```bash + docker run --rm \ + -v "$PWD:/docs:ro" \ + -w /docs \ + ruby:4.0.6 \ + ruby check_external_resources.rb _site + ``` + +6. Run `git status --short` and keep `_site/` and incidental dependency changes + out of the commit. + +For navigation, layout, CSS, or JavaScript changes, also run the preview server +and inspect the affected pages at desktop and narrow viewport widths. diff --git a/docs/Gemfile b/docs/Gemfile index 9cc8cfef180..160ec9c8fef 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -14,9 +14,7 @@ # limitations under the License. # source 'https://rubygems.org' -gem 'github-pages' -gem 'redcarpet' -gem 'jekyll-twitter-plugin' +gem 'jekyll', '4.4.1' gem 'nokogiri', '1.19.3' gem 'mini_portile2', '2.8.4' diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index e27c883f6f5..7ac28335bcb 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,237 +1,69 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.2.3.1) - base64 - benchmark (>= 0.3) - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - logger (>= 1.4.2) - minitest (>= 5.1, < 6) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) base64 (0.3.0) - benchmark (0.5.0) bigdecimal (4.1.2) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) colorator (1.1.0) - commonmarker (0.23.10) - concurrent-ruby (1.3.6) - connection_pool (3.0.2) - dnsruby (1.72.2) - simpleidn (~> 0.2.1) - drb (2.2.3) + concurrent-ruby (1.3.8) + csv (3.3.5) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.16.0) - ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.9.1) - faraday (2.14.1) - faraday-net_http (>= 2.0, < 3.5) - json - logger - faraday-net_http (3.4.2) - net-http (~> 0.5) - ffi (1.17.0) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.4) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-linux-gnu) forwardable-extended (2.6.0) - gemoji (4.1.0) - github-pages (231) - github-pages-health-check (= 1.18.2) - jekyll (= 3.9.5) - jekyll-avatar (= 0.8.0) - jekyll-coffeescript (= 1.2.2) - jekyll-commonmark-ghpages (= 0.4.0) - jekyll-default-layout (= 0.1.5) - jekyll-feed (= 0.17.0) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.16.1) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.13.0) - kramdown (= 2.4.0) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.4) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.13.6, < 2.0) - rouge (= 3.30.0) - terminal-table (~> 1.4) - github-pages-health-check (1.18.2) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (>= 4, < 8) - public_suffix (>= 3.0, < 6.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (1.14.8) + google-protobuf (4.35.1) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-arm64-darwin) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + http_parser.rb (0.8.1) + i18n (1.15.2) concurrent-ruby (~> 1.0) - jekyll (3.9.5) + jekyll (4.4.1) addressable (~> 2.4) + base64 (~> 0.2) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) - i18n (>= 0.7, < 2) - jekyll-sass-converter (~> 1.0) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (~> 0.3.3) + mercenary (~> 0.3, >= 0.3.6) pathutil (~> 0.9) - rouge (>= 1.7, < 4) + rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) - jekyll-avatar (0.8.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.2.2) - coffee-script (~> 2.2) - coffee-script-source (~> 1.12) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.4.0) - commonmarker (~> 0.23.7) - jekyll (~> 3.9.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 5.0) - jekyll-default-layout (0.1.5) - jekyll (>= 3.0, < 5.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.16.1) - jekyll (>= 3.4, < 5.0) - octokit (>= 4, < 7, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-twitter-plugin (2.1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.19.5) - kramdown (2.4.0) - rexml + json (2.21.1) + kramdown (2.5.2) + rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) - listen (3.9.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - mercenary (0.3.6) + mercenary (0.4.0) mini_portile2 (2.8.4) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.27.0) - net-http (0.9.1) - uri (>= 0.11.1) nokogiri (1.19.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -239,40 +71,28 @@ GEM racc (~> 1.4) nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (5.1.1) + public_suffix (7.0.5) racc (1.8.1) + rake (13.4.2) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - redcarpet (3.6.0) - rexml (3.4.2) - rouge (3.30.0) - rubyzip (2.3.2) + rexml (3.4.4) + rouge (4.7.0) safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - securerandom (0.4.1) - simpleidn (0.2.3) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) - uri (1.1.1) - webrick (1.8.2) + sass-embedded (1.102.0) + google-protobuf (~> 4.31) + rake (>= 13) + sass-embedded (1.102.0-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.102.0-x86_64-linux-gnu) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.6.0) + webrick (1.9.2) PLATFORMS arm64-darwin @@ -280,12 +100,10 @@ PLATFORMS x86_64-linux DEPENDENCIES - github-pages - jekyll-twitter-plugin + jekyll (= 4.4.1) mini_portile2 (= 2.8.4) nokogiri (= 1.19.3) - redcarpet webrick (~> 1.8) BUNDLED WITH - 2.5.16 + 4.0.16 diff --git a/docs/README.md b/docs/README.md index 736b58fa41c..5b8762a73bc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,94 +3,61 @@ This README will walk you through building the documentation of Apache Zeppelin. The documentation is included here with Apache Zeppelin source code. The online documentation at [https://zeppelin.apache.org/docs/](https://zeppelin.apache.org/docs/latest/) is also generated from the files found in here. ## Build documentation -Zeppelin is using [Jekyll](https://jekyllrb.com/) which is a static site generator and [Github Pages](https://pages.github.com/) as a site publisher. For the more details, see [help.github.com/articles/about-github-pages-and-jekyll/](https://help.github.com/articles/about-github-pages-and-jekyll/). +Zeppelin uses [Jekyll](https://jekyllrb.com/) to generate the static versioned documentation published on the Apache Zeppelin website. **Requirements** -``` -# ruby --version >= 2.0.0 -# Install Bundler using gem -gem install bundler - -cd $ZEPPELIN_HOME/docs -# Install all dependencies declared in the Gemfile -bundle install -``` - -For the further information about requirements, please see [here](https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/#requirements). - -On OS X 10.9, you may need to do +- [Docker](https://docs.docker.com/get-docker/) -``` -xcode-select --install -``` - -**Docker** +Ruby, Bundler, and Jekyll run only inside the Docker container. No host Ruby +installation is required. -Local docker environments are also supported and have been tested using: -* [Docker version 20.10.2](https://docs.docker.com/get-docker/) +## Preview documentation -## Run website locally -If you don't want to encounter ugly rendered pages, run the documentation site in your local environment first. +From `$ZEPPELIN_HOME/docs`, run: -In `$ZEPPELIN_HOME/docs`, run one of the desired commands: - -**Run locally** -``` -bundle exec jekyll serve --watch -``` - -**Run locally using docker** -``` +```bash docker run --rm -it \ - -v $PWD:/docs \ - -w /docs \ - -p '4000:4000' \ - ruby:3.3.5 \ - bash -c "bundle install && bundle exec jekyll serve --watch --host 0.0.0.0" + -v "$PWD:/docs" \ + -w /docs \ + -p '4000:4000' \ + ruby:4.0.6 \ + bash -lc "bundle install && bundle exec jekyll serve --watch --host 0.0.0.0" ``` -Using the above command, Jekyll will start a web server at `http://localhost:4000` and watch the `/docs` directory for updates. - - +Jekyll starts at `http://localhost:4000` and watches the `docs/` sources for +updates. ## Contribute to Zeppelin documentation If you wish to help us and contribute to Zeppelin Documentation, please look at [Zeppelin Documentation's contribution guideline](https://zeppelin.apache.org/contribution/contributions.html). - ## For committers only ### Bumping up version in a new release - * `ZEPPELIN_VERSION` and `BASE_PATH` property in _config.yml - -### Deploy to ASF svnpubsub infra - 1. generate static website in `./_site` +- Update `ZEPPELIN_VERSION` and `JB.BASE_PATH` in `_config.yml`. - ``` - # go to /docs under Zeppelin source - bundle exec jekyll build --safe - ``` +### Build versioned documentation - 2. verify no analytics scripts in the generated output +From `$ZEPPELIN_HOME/docs`, run: - ``` - ( - grep -rnE --include='*.html' \ - "google-analytics\.com|googletagmanager\.com|analytics\.js|ga\.js|UA-[0-9]" \ - _site/ - case $? in - 0) echo "FAIL: analytics found"; exit 1 ;; - 1) ;; - *) echo "ERROR: scan failed"; exit 2 ;; - esac - ) - ``` +```bash +docker run --rm \ + -v "$PWD:/docs" \ + -w /docs \ + ruby:4.0.6 \ + bash -lc "bundle install && bundle exec jekyll build --safe" +``` - 3. checkout ASF repo +Check the generated site for external resources and trackers: - ``` - svn co https://svn.apache.org/repos/asf/zeppelin asf-zeppelin - ``` +```bash +docker run --rm \ + -v "$PWD:/docs:ro" \ + -w /docs \ + ruby:4.0.6 \ + ruby check_external_resources.rb _site +``` - 4. copy `zeppelin/docs/_site` to `asf-zeppelin/site/docs/[VERSION]` - 5. `svn commit` +The generated site is written to `_site/`. Copy it to +`zeppelin-site/docs//` as part of the separate website publication +workflow. diff --git a/docs/_config.yml b/docs/_config.yml index cf009ae6ec8..3715a1ecca6 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -2,11 +2,11 @@ # For more see: http://jekyllrb.com/docs/permalinks/ permalink: /:categories/:year/:month/:day/:title -exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md", "vendor", "node_modules", "scss"] +exclude: [".rvmrc", ".rbenv-version", "AGENTS.md", "Gemfile", "Gemfile.lock", "README.md", "Rakefile", "changelog.md", "check_external_resources.rb", "vendor", "node_modules", "scss"] highlighter: rouge -markdown: redcarpet -redcarpet: - extensions: ["tables"] +markdown: kramdown +kramdown: + input: GFM encoding: utf-8 # Themes are encouraged to use these universal variables @@ -18,8 +18,6 @@ author : name : The Apache Software Foundation email : dev@zeppelin.apache.org github : apache - twitter : ASF - feedburner : feedname ZEPPELIN_VERSION : 0.13.0-SNAPSHOT @@ -36,6 +34,7 @@ production_url : http://zeppelin.apache.org # JB : version : 0.3.0 + matomo_site_id : 69 # All links will be namespaced by BASE_PATH if defined. # Links in your website should always be prefixed with {{BASE_PATH}} @@ -77,48 +76,6 @@ JB : archive_path: /archive.html categories_path : /categories.html tags_path : /tags.html - atom_path : /atom.xml - rss_path : /rss.xml - - # Settings for comments helper - # Set 'provider' to the comment provider you want to use. - # Set 'provider' to false to turn commenting off globally. - # - comments : - provider : disqus - disqus : - short_name : jekyllbootstrap - livefyre : - site_id : 123 - intensedebate : - account : 123abc - facebook : - appid : 123 - num_posts: 5 - width: 580 - colorscheme: light - - # Settings for analytics helper - # Set 'provider' to the analytics provider you want to use. - # Set 'provider' to false to turn analytics off globally. - # - analytics : - provider : false - getclicky : - site_id : - mixpanel : - token : '_MIXPANEL_TOKEN_' - piwik : - baseURL : 'myserver.tld/piwik' # Piwik installation address (without protocol) - idsite : '1' # the id of the site on Piwik - - # Settings for sharing helper. - # Sharing is for things like tweet, plusone, like, reddit buttons etc. - # Set 'provider' to the sharing provider you want to use. - # Set 'provider' to false to turn sharing off globally. - # - sharing : - provider : false # Settings for all other include helpers can be defined by creating # a hash with key named for the given helper. ex: diff --git a/docs/_includes/JB/analytics b/docs/_includes/JB/analytics deleted file mode 100644 index 48d87c25fa0..00000000000 --- a/docs/_includes/JB/analytics +++ /dev/null @@ -1,18 +0,0 @@ -{% if site.safe and site.JB.analytics.provider and page.JB.analytics != false %} - -{% case site.JB.analytics.provider %} -{% when "google_classic" %} - {% include JB/analytics-providers/google-classic %} -{% when "google_universal" %} - {% include JB/analytics-providers/google-universal %} -{% when "getclicky" %} - {% include JB/analytics-providers/getclicky %} -{% when "mixpanel" %} - {% include JB/analytics-providers/mixpanel %} -{% when "piwik" %} - {% include JB/analytics-providers/piwik %} -{% when "custom" %} - {% include custom/analytics %} -{% endcase %} - -{% endif %} \ No newline at end of file diff --git a/docs/_includes/JB/analytics-providers/getclicky b/docs/_includes/JB/analytics-providers/getclicky deleted file mode 100644 index e9462f4f67f..00000000000 --- a/docs/_includes/JB/analytics-providers/getclicky +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/docs/_includes/JB/analytics-providers/google-classic b/docs/_includes/JB/analytics-providers/google-classic deleted file mode 100644 index af099078a58..00000000000 --- a/docs/_includes/JB/analytics-providers/google-classic +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/JB/analytics-providers/google-universal b/docs/_includes/JB/analytics-providers/google-universal deleted file mode 100644 index dae744b994a..00000000000 --- a/docs/_includes/JB/analytics-providers/google-universal +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/JB/analytics-providers/mixpanel b/docs/_includes/JB/analytics-providers/mixpanel deleted file mode 100644 index 4406eb048d2..00000000000 --- a/docs/_includes/JB/analytics-providers/mixpanel +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/JB/analytics-providers/piwik b/docs/_includes/JB/analytics-providers/piwik deleted file mode 100755 index f016ed7ca4f..00000000000 --- a/docs/_includes/JB/analytics-providers/piwik +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/JB/comments b/docs/_includes/JB/comments deleted file mode 100644 index 4e9e600f6c0..00000000000 --- a/docs/_includes/JB/comments +++ /dev/null @@ -1,16 +0,0 @@ -{% if site.JB.comments.provider and page.comments != false %} - -{% case site.JB.comments.provider %} -{% when "disqus" %} - {% include JB/comments-providers/disqus %} -{% when "livefyre" %} - {% include JB/comments-providers/livefyre %} -{% when "intensedebate" %} - {% include JB/comments-providers/intensedebate %} -{% when "facebook" %} - {% include JB/comments-providers/facebook %} -{% when "custom" %} - {% include custom/comments %} -{% endcase %} - -{% endif %} \ No newline at end of file diff --git a/docs/_includes/JB/comments-providers/disqus b/docs/_includes/JB/comments-providers/disqus deleted file mode 100644 index 618a7b737bd..00000000000 --- a/docs/_includes/JB/comments-providers/disqus +++ /dev/null @@ -1,14 +0,0 @@ -
- - -blog comments powered by Disqus diff --git a/docs/_includes/JB/comments-providers/facebook b/docs/_includes/JB/comments-providers/facebook deleted file mode 100644 index 6b3e5e06921..00000000000 --- a/docs/_includes/JB/comments-providers/facebook +++ /dev/null @@ -1,9 +0,0 @@ -
- -
\ No newline at end of file diff --git a/docs/_includes/JB/comments-providers/intensedebate b/docs/_includes/JB/comments-providers/intensedebate deleted file mode 100644 index ab0c3c9769c..00000000000 --- a/docs/_includes/JB/comments-providers/intensedebate +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/docs/_includes/JB/comments-providers/livefyre b/docs/_includes/JB/comments-providers/livefyre deleted file mode 100644 index 704b80392b1..00000000000 --- a/docs/_includes/JB/comments-providers/livefyre +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/docs/_includes/JB/matomo b/docs/_includes/JB/matomo new file mode 100644 index 00000000000..136bbb1b773 --- /dev/null +++ b/docs/_includes/JB/matomo @@ -0,0 +1,33 @@ + + + + + diff --git a/docs/_includes/JB/sharing b/docs/_includes/JB/sharing deleted file mode 100644 index f5b11518bd2..00000000000 --- a/docs/_includes/JB/sharing +++ /dev/null @@ -1,8 +0,0 @@ -{% if site.safe and site.JB.sharing.provider and page.JB.sharing != false %} - -{% case site.JB.sharing.provider %} -{% when "custom" %} - {% include custom/sharing %} -{% endcase %} - -{% endif %} \ No newline at end of file diff --git a/docs/_includes/themes/zeppelin/default.html b/docs/_includes/themes/zeppelin/default.html index d2cd0719da3..36d88a36031 100644 --- a/docs/_includes/themes/zeppelin/default.html +++ b/docs/_includes/themes/zeppelin/default.html @@ -9,11 +9,6 @@ - - - @@ -37,9 +32,9 @@ - - - + {% if site.safe %} + {% include JB/matomo %} + {% endif %} @@ -54,6 +49,5 @@ - {% include JB/analytics %} diff --git a/docs/_includes/themes/zeppelin/post.html b/docs/_includes/themes/zeppelin/post.html index 2774711aecb..14934d35b5b 100644 --- a/docs/_includes/themes/zeppelin/post.html +++ b/docs/_includes/themes/zeppelin/post.html @@ -43,7 +43,5 @@

{{ page.title }} {% if page.tagline %}{{page.tagline}}{% endi {% endif %} -
- {% include JB/comments %} diff --git a/docs/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg b/docs/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg new file mode 100644 index 00000000000..0d2a53fa7f0 --- /dev/null +++ b/docs/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg @@ -0,0 +1,86 @@ + + + + Labeled property graph data model + People, notebooks, and a dataset represented as labeled nodes connected by typed relationships with properties. + + + + + + + + + + + + AUTHORED + since: 2024 + + + + VIEWED + date: Jul 18 + + + + READS + format: parquet + + + + READS + format: csv + + + + :Person:Author + name: Mina + team: Analytics + + + + :Person + name: Yun + team: Operations + + + + :Notebook + title: Flight Analysis + version: 3 + + + + :Notebook + title: Revenue Forecast + version: 7 + + + + :Dataset + name: Flight Records + owner: Data Platform + diff --git a/docs/assets/themes/zeppelin/img/docs-img/property-graph-example.svg b/docs/assets/themes/zeppelin/img/docs-img/property-graph-example.svg new file mode 100644 index 00000000000..7ae1a683dca --- /dev/null +++ b/docs/assets/themes/zeppelin/img/docs-img/property-graph-example.svg @@ -0,0 +1,87 @@ + + + + Property graph example + Four nodes connected by labeled, directed edges, with properties attached to both nodes and edges. + + + + + + + + + + + + KNOWS + + since: 2022 + + + + CREATED + + role: owner + + + + CONTRIBUTED + + commits: 18 + + + + READS + + format: parquet + + + name: Mina + age: 34 + + 1 + person + + + 2 + person + + name: Yun + + + title: Flight Analysis + language: Python + + 3 + notebook + + + 4 + dataset + + name: Flight Records + rows: 2.1M + diff --git a/docs/atom.xml b/docs/atom.xml deleted file mode 100644 index 7ec29339dd6..00000000000 --- a/docs/atom.xml +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: nil -title : ---- - - - - {{ site.title }} - - - {{ site.time | date_to_xmlschema }} - {{ site.production_url }} - - {{ site.author.name }} - {{ site.author.email }} - - - {% for post in site.posts %} - - {{ post.title }} - - {{ post.date | date_to_xmlschema }} - {{ site.production_url }}{{ post.id }} - {{ post.content | xml_escape }} - - {% endfor %} - - diff --git a/docs/check_external_resources.rb b/docs/check_external_resources.rb new file mode 100644 index 00000000000..b4d40628461 --- /dev/null +++ b/docs/check_external_resources.rb @@ -0,0 +1,79 @@ +#!/usr/bin/env ruby +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "uri" + +SITE_DIR = ARGV.fetch(0, "_site") +RESOURCE_TAGS = %w[script img iframe link source video audio embed object].freeze +RESOURCE_PATTERN = + /<(#{RESOURCE_TAGS.join("|")})\b[^>]*\b(?:src|href|data)\s*=\s*["']([^"']+)["']/i +CSS_URL_PATTERN = /url\(\s*["']?([^"')]+)["']?\s*\)/i +TRACKER_PATTERN = + /google-analytics|googletag|gtag\s*\(|mixpanel|getclicky|piwik|disqus|connect\.facebook|(?:platform\.)?twitter\.com\/widgets/i +MATOMO_CODE_PATTERN = /matomo\.(?:js|php)|setTrackerUrl|\b_paq\b/i +ASF_MATOMO_URL = "https://analytics.apache.org/" + +def remote_host(value) + return nil unless value.match?(%r{\A(?:https?:)?//}i) + + normalized = value.start_with?("//") ? "https:#{value}" : value + URI.parse(normalized).host || :invalid +rescue URI::InvalidURIError + :invalid +end + +def asf_host?(host) + host != :invalid && (host == "apache.org" || host.end_with?(".apache.org")) +end + +violations = [] + +Dir.glob(File.join(SITE_DIR, "**", "*.html")).sort.each do |file| + File.read(file).scan(RESOURCE_PATTERN) do |tag, value| + host = remote_host(value) + next if host.nil? || asf_host?(host) + + violations << "#{file}: external #{tag} resource #{value}" + end +end + +Dir.glob(File.join(SITE_DIR, "**", "*.css")).sort.each do |file| + File.read(file).scan(CSS_URL_PATTERN) do |match| + value = match.first + host = remote_host(value) + next if host.nil? || asf_host?(host) + + violations << "#{file}: external CSS resource #{value}" + end +end + +Dir.glob(File.join(SITE_DIR, "**", "*.{html,js,css}")).sort.each do |file| + content = File.read(file) + violations << "#{file}: tracker or external embed code" if content.match?(TRACKER_PATTERN) + if content.match?(MATOMO_CODE_PATTERN) && !content.include?(ASF_MATOMO_URL) + violations << "#{file}: Matomo must use #{ASF_MATOMO_URL}" + end +end + +if violations.empty? + puts "No disallowed external resources or trackers found in #{SITE_DIR}" + exit 0 +end + +warn violations.join("\n") +exit 1 diff --git a/docs/rss.xml b/docs/rss.xml deleted file mode 100644 index 8c2a9dd9a8c..00000000000 --- a/docs/rss.xml +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: nil -title : ---- - - - - - {{ site.title }} - {{ site.title }} - {{ site.author.name }} - {{ site.production_url }}{{ site.rss_path }} - {{ site.production_url }} - {{ site.time | date_to_xmlschema }} - {{ site.time | date_to_xmlschema }} - 1800 - -{% for post in site.posts %} - - {{ post.title }} - {{ post.content | xml_escape }} - {{ site.production_url }}{{ post.url }} - {{ site.production_url }}{{ post.id }} - {{ post.date | date_to_xmlschema }} - -{% endfor %} - - - diff --git a/docs/usage/display_system/basic.md b/docs/usage/display_system/basic.md index 01d46297fcf..0f0faebeb8c 100644 --- a/docs/usage/display_system/basic.md +++ b/docs/usage/display_system/basic.md @@ -86,11 +86,11 @@ A [Property Graph](https://github.com/tinkerpop/gremlin/wiki/Defining-a-Property * each edge has a label that denotes the type of relationship between its two vertices. * each edge has a collection of properties defined by a map from key to value. - +![Property graph example]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/property-graph-example.svg) A [Labelled Property Graph](https://neo4j.com/developer/graph-database/#property-graph) is a Property Graph where the nodes can be tagged with **labels** representing their different roles in the graph model - +![Labeled property graph data model]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg) ### What are the APIs? From 44e39ac9c274527eb56a34c1b654257bc069a59c Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Sun, 9 Aug 2026 21:08:56 +0900 Subject: [PATCH 2/6] [ZEPPELIN-6432] Fix unclosed HTML table tags in docs and enable Kramdown warnings --- docs/_config.yml | 1 + docs/interpreter/spark.md | 6 +++--- docs/usage/rest_api/interpreter.md | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 3715a1ecca6..eb2b9317025 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -7,6 +7,7 @@ highlighter: rouge markdown: kramdown kramdown: input: GFM + show_warnings: true encoding: utf-8 # Themes are encouraged to use these universal variables diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md index f7311a2133e..be1098ea65d 100644 --- a/docs/interpreter/spark.md +++ b/docs/interpreter/spark.md @@ -132,17 +132,17 @@ You can also set other Spark properties which are not listed in the table. For a `SPARK_HOME` Location of spark distribution - + spark.master local[*] Spark master uri.
e.g. spark://master_host:7077 - + spark.submit.deployMode The deploy mode of Spark driver program, either "client" or "cluster", Which means to launch driver program locally ("client") or remotely ("cluster") on one of the nodes inside the cluster. - + spark.app.name Zeppelin The name of spark application. diff --git a/docs/usage/rest_api/interpreter.md b/docs/usage/rest_api/interpreter.md index 9d81dd60e06..747427b3485 100644 --- a/docs/usage/rest_api/interpreter.md +++ b/docs/usage/rest_api/interpreter.md @@ -620,7 +620,7 @@ The role of registered interpreters, settings and interpreters group are describ } ``` - +
From 6d8a9958d3d4cf973c8a202007930b2dc93594d9 Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Wed, 12 Aug 2026 16:48:39 +0900 Subject: [PATCH 3/6] [ZEPPELIN-6432] Preserve Markdown rendering under Kramdown --- docs/check_external_resources.rb | 13 +- .../contribution/how_to_contribute_code.md | 2 +- .../contribution/how_to_contribute_website.md | 2 +- .../writing_visualization_transformation.md | 3 +- .../writing_zeppelin_interpreter.md | 2 +- docs/index.md | 5 +- docs/interpreter/bigquery.md | 2 +- docs/interpreter/cassandra.md | 174 ++++++------- docs/interpreter/elasticsearch.md | 8 +- docs/interpreter/flink.md | 36 +-- docs/interpreter/hdfs.md | 5 +- docs/interpreter/livy.md | 4 +- docs/interpreter/mahout.md | 20 +- docs/interpreter/markdown.md | 2 +- docs/interpreter/mongodb.md | 2 +- docs/interpreter/neo4j.md | 2 +- docs/interpreter/python.md | 2 +- docs/interpreter/shell.md | 6 +- docs/interpreter/spark.md | 15 +- docs/quickstart/docker.md | 14 +- .../deployment/flink_and_spark_cluster.md | 4 +- docs/setup/deployment/yarn_install.md | 4 +- docs/setup/operation/configuration.md | 8 +- docs/setup/operation/upgrading.md | 2 +- docs/setup/security/http_security_headers.md | 2 +- docs/setup/security/shiro_authentication.md | 2 +- docs/setup/storage/notebook_storage.md | 20 +- docs/usage/display_system/angular_frontend.md | 8 +- docs/usage/dynamic_form/intro.md | 10 +- docs/usage/interpreter/dynamic_loading.md | 4 +- docs/usage/interpreter/overview.md | 2 +- docs/usage/other_features/zeppelin_context.md | 8 +- docs/usage/rest_api/configuration.md | 12 +- docs/usage/rest_api/credential.md | 26 +- docs/usage/rest_api/helium.md | 80 +++--- docs/usage/rest_api/interpreter.md | 72 +++--- docs/usage/rest_api/notebook.md | 231 +++++++++--------- docs/usage/rest_api/notebook_repository.md | 20 +- docs/usage/rest_api/zeppelin_server.md | 14 +- 39 files changed, 428 insertions(+), 420 deletions(-) diff --git a/docs/check_external_resources.rb b/docs/check_external_resources.rb index b4d40628461..563754687db 100644 --- a/docs/check_external_resources.rb +++ b/docs/check_external_resources.rb @@ -43,7 +43,18 @@ def asf_host?(host) violations = [] -Dir.glob(File.join(SITE_DIR, "**", "*.html")).sort.each do |file| +unless Dir.exist?(SITE_DIR) + warn "Site directory not found: #{SITE_DIR}" + exit 1 +end + +html_files = Dir.glob(File.join(SITE_DIR, "**", "*.html")).sort +if html_files.empty? + warn "No HTML files found in #{SITE_DIR}" + exit 1 +end + +html_files.each do |file| File.read(file).scan(RESOURCE_PATTERN) do |tag, value| host = remote_host(value) next if host.nil? || asf_host?(host) diff --git a/docs/development/contribution/how_to_contribute_code.md b/docs/development/contribution/how_to_contribute_code.md index 645371be2ae..1464c339b35 100644 --- a/docs/development/contribution/how_to_contribute_code.md +++ b/docs/development/contribution/how_to_contribute_code.md @@ -159,6 +159,6 @@ You can find issues for

What is Apache Zeppelin?

-

+

Multi-purpose notebook which supports

-

+

20+ language backends

    @@ -161,4 +161,3 @@ limitations under the License. * [Mailing List](https://zeppelin.apache.org/community.html) * [Apache Zeppelin Wiki](https://cwiki.apache.org/confluence/display/ZEPPELIN/Zeppelin+Home) * [Stackoverflow Questions about Zeppelin (tag: `apache-zeppelin`)](http://stackoverflow.com/questions/tagged/apache-zeppelin) - diff --git a/docs/interpreter/bigquery.md b/docs/interpreter/bigquery.md index da696a74f2e..4f067a279d4 100644 --- a/docs/interpreter/bigquery.md +++ b/docs/interpreter/bigquery.md @@ -51,7 +51,7 @@ limitations under the License. zeppelin.bigquery.sql_dialect - BigQuery SQL dialect (standardSQL or legacySQL). If empty, [query prefix](https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql#sql-prefix) like '#standardSQL' can be used. + BigQuery SQL dialect (standardSQL or legacySQL). If empty, [query prefix](https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql#sql-prefix) like '#standardSQL' can be used. zeppelin.bigquery.region diff --git a/docs/interpreter/cassandra.md b/docs/interpreter/cassandra.md index a49ae7e2421..d2aa4124ee2 100644 --- a/docs/interpreter/cassandra.md +++ b/docs/interpreter/cassandra.md @@ -40,7 +40,7 @@ limitations under the License. In a notebook, to enable the **Cassandra** interpreter, click on the **Gear** icon and select **Cassandra** -
    +
    ![Interpreter Binding]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/cassandra-InterpreterBinding.png) ![Interpreter Selection]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/cassandra-InterpreterSelection.png) @@ -52,7 +52,7 @@ In a paragraph, use **_%cassandra_** to select the **Cassandra** interpreter and To access the interactive help, type **HELP;** -
    +
    ![Interactive Help]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/cassandra-InteractiveHelp.png)
    @@ -69,27 +69,27 @@ The **Cassandra** interpreter accepts the following commands Help command - `HELP` + `HELP` Display the interactive help menu Schema commands - `DESCRIBE KEYSPACE`, `DESCRIBE CLUSTER`, `DESCRIBE TABLES` ... + `DESCRIBE KEYSPACE`, `DESCRIBE CLUSTER`, `DESCRIBE TABLES` ... Custom commands to describe the Cassandra schema Option commands - `@consistency`, `@fetchSize` ... + `@consistency`, `@fetchSize` ... Inject runtime options to all statements in the paragraph Prepared statement commands - `@prepare`, `@bind`, `@remove_prepared` + `@prepare`, `@bind`, `@remove_prepared` Let you register a prepared command and re-use it later by injecting bound values Native CQL statements - All CQL-compatible statements (`SELECT`, `INSERT`, `CREATE`, ...) + All CQL-compatible statements (`SELECT`, `INSERT`, `CREATE`, ...) All CQL statements are executed directly against the Cassandra server @@ -242,7 +242,7 @@ To make schema discovery easier and more interactive, the following commands are DESCRIBE TYPES; - List all existing keyspaces in the cluster and for each, all the user-defined types name + List all existing keyspaces in the cluster and for each, all the user-defined types name DESCRIBE FUNCTIONS; @@ -303,7 +303,7 @@ To make schema discovery easier and more interactive, the following commands are The schema objects (cluster, keyspace, table, type, function and aggregate) are displayed in a tabular format. There is a drop-down menu on the top left corner to expand objects details. On the top right menu is shown the Icon legend. -
    +
    ![Describe Schema]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/cassandra-DescribeSchema.png)
    @@ -444,17 +444,17 @@ Sometimes you want to be able to format output of your statement. Cassandra inte Float precision floatPrecision=value - Precision when formatting float values. Any positive integer value, or `-1` to show everything + Precision when formatting float values. Any positive integer value, or `-1` to show everything Double precision doublePrecision=value - Precision when formatting double values. Any positive integer value, or `-1` to show everything + Precision when formatting double values. Any positive integer value, or `-1` to show everything Decimal precision decimalPrecision=value - Precision when formatting decimal values. Any positive integer value, or `-1` to show everything + Precision when formatting decimal values. Any positive integer value, or `-1` to show everything Timestamp Format @@ -537,7 +537,7 @@ Example: #### @prepare -You can use the syntax _"@prepare[statement-name]=SELECT..."_ to create a prepared statement. +You can use the syntax `@prepare[statement-name]=SELECT...` to create a prepared statement. The _statement-name_ is **mandatory** because the interpreter prepares the given statement with the Java driver and saves the generated prepared statement in an **internal hash map**, using the provided _statement-name_ as search key. @@ -577,9 +577,9 @@ Bound values are not mandatory for the **@bind** statement. However if you provi * **null** is parsed as-is * **boolean** (`true`|`false`) are parsed as-is * collection values must follow the **[standard CQL syntax]**: - * list: ['list_item1', 'list_item2', ...] - * set: {'set_item1', 'set_item2', …} - * map: {'key1': 'val1', 'key2': 'val2', …} + * list: `['list_item1', 'list_item2', ...]` + * set: `{'set_item1', 'set_item2', …}` + * map: `{'key1': 'val1', 'key2': 'val2', …}` * **tuple** values should be enclosed between parenthesis (see **[Tuple CQL syntax]**): ('text', 123, true) * **udt** values should be enclosed between brackets (see **[UDT CQL syntax]**): {stree_name: 'Beverly Hills', number: 104, zip_code: 90020, state: 'California', …} @@ -595,7 +595,7 @@ Bound values are not mandatory for the **@bind** statement. However if you provi #### @remove_prepare To avoid for a prepared statement to stay forever in the prepared statement map, you can use the -**@remove_prepare[statement-name]** syntax to remove it. +`@remove_prepare[statement-name]` syntax to remove it. Removing a non-existing prepared statement yields no error. ## Using Dynamic Forms @@ -675,41 +675,41 @@ Below are the configuration parameters supported by interpreter and their defaul Default Value - `cassandra.cluster` + `cassandra.cluster` Name of the Cassandra cluster to connect to Test Cluster - `cassandra.compression.protocol` - On wire compression. Possible values are: `NONE`, `SNAPPY`, `LZ4` - `NONE` + `cassandra.compression.protocol` + On wire compression. Possible values are: `NONE`, `SNAPPY`, `LZ4` + `NONE` - `cassandra.credentials.username` + `cassandra.credentials.username` If security is enable, provide the login none - `cassandra.credentials.password` + `cassandra.credentials.password` If security is enable, provide the password none - `cassandra.hosts` - + `cassandra.hosts` + Comma separated Cassandra hosts (DNS name or IP address).
    Ex: `192.168.0.12,node2,node3` - `localhost` + `localhost` - `cassandra.interpreter.parallelism` + `cassandra.interpreter.parallelism` Number of concurrent paragraphs(queries block) that can be executed 10 - `cassandra.keyspace` + `cassandra.keyspace` Default keyspace to connect to. @@ -718,11 +718,11 @@ Below are the configuration parameters supported by interpreter and their defaul in all of your queries - `system` + `system` - `cassandra.load.balancing.policy` - + `cassandra.load.balancing.policy` + Load balancing policy. Default = `DefaultLoadBalancingPolicy` To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. At runtime the driver will instantiate the policy using class name. @@ -730,66 +730,66 @@ Below are the configuration parameters supported by interpreter and their defaul DEFAULT - `cassandra.max.schema.agreement.wait.second` + `cassandra.max.schema.agreement.wait.second` Cassandra max schema agreement wait in second 10 - `cassandra.pooling.connection.per.host.local` + `cassandra.pooling.connection.per.host.local` Protocol V3 and above default = 1 1 - `cassandra.pooling.connection.per.host.remote` + `cassandra.pooling.connection.per.host.remote` Protocol V3 and above default = 1 1 - `cassandra.pooling.heartbeat.interval.seconds` + `cassandra.pooling.heartbeat.interval.seconds` Cassandra pool heartbeat interval in secs 30 - `cassandra.pooling.max.request.per.connection` + `cassandra.pooling.max.request.per.connection` Protocol V3 and above default = 1024 1024 - `cassandra.pooling.pool.timeout.millisecs` + `cassandra.pooling.pool.timeout.millisecs` Cassandra pool time out in millisecs 5000 - `cassandra.protocol.version` - Cassandra binary protocol version (`V3`, `V4`, ...) - `DEFAULT` (detected automatically) + `cassandra.protocol.version` + Cassandra binary protocol version (`V3`, `V4`, ...) + `DEFAULT` (detected automatically) cassandra.query.default.consistency - + Cassandra query default consistency level
    Available values: `ONE`, `TWO`, `THREE`, `QUORUM`, `LOCAL_ONE`, `LOCAL_QUORUM`, `EACH_QUORUM`, `ALL` - `ONE` + `ONE` - `cassandra.query.default.fetchSize` + `cassandra.query.default.fetchSize` Cassandra query default fetch size 5000 - `cassandra.query.default.serial.consistency` - + `cassandra.query.default.serial.consistency` + Cassandra query default serial consistency level
    Available values: `SERIAL`, `LOCAL_SERIAL` - `SERIAL` + `SERIAL` - `cassandra.reconnection.policy` - + `cassandra.reconnection.policy` + Cassandra Reconnection Policy. Default = `ExponentialReconnectionPolicy` To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. @@ -798,8 +798,8 @@ Below are the configuration parameters supported by interpreter and their defaul DEFAULT - `cassandra.retry.policy` - + `cassandra.retry.policy` + Cassandra Retry Policy. Default = `DefaultRetryPolicy` To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. @@ -808,23 +808,23 @@ Below are the configuration parameters supported by interpreter and their defaul DEFAULT - `cassandra.socket.connection.timeout.millisecs` + `cassandra.socket.connection.timeout.millisecs` Cassandra socket default connection timeout in millisecs 500 - `cassandra.socket.read.timeout.millisecs` + `cassandra.socket.read.timeout.millisecs` Cassandra socket read timeout in millisecs 12000 - `cassandra.socket.tcp.no_delay` + `cassandra.socket.tcp.no_delay` Cassandra socket TCP no delay true - `cassandra.speculative.execution.policy` - + `cassandra.speculative.execution.policy` + Cassandra Speculative Execution Policy. Default = `NoSpeculativeExecutionPolicy` To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. @@ -833,7 +833,7 @@ Below are the configuration parameters supported by interpreter and their defaul DEFAULT - `cassandra.ssl.enabled` + `cassandra.ssl.enabled` Enable support for connecting to the Cassandra configured with SSL. To connect to Cassandra configured with SSL use true @@ -842,63 +842,63 @@ Below are the configuration parameters supported by interpreter and their defaul false - `cassandra.ssl.truststore.path` + `cassandra.ssl.truststore.path` Filepath for the truststore file to use for connection to Cassandra with SSL. - `cassandra.ssl.truststore.password` + `cassandra.ssl.truststore.password` Password for the truststore file to use for connection to Cassandra with SSL. - `cassandra.format.output` - Output format for data - strict CQL (`cql`), or human-readable (`human`) - `human` + `cassandra.format.output` + Output format for data - strict CQL (`cql`), or human-readable (`human`) + `human` - `cassandra.format.locale` + `cassandra.format.locale` Which locale to use for output (any locale supported by JVM could be specified) - `en_US` + `en_US` - `cassandra.format.timezone` + `cassandra.format.timezone` For which timezone format time/date-related types (any timezone supported by JVM could be specified) - `UTC` + `UTC` - `cassandra.format.timestamp` - Format string for `timestamp` columns (any valid
    DateTimeFormatter pattern could be used) - `yyyy-MM-dd'T'HH:mm:ss.SSSXXX` + `cassandra.format.timestamp` + Format string for `timestamp` columns (any valid DateTimeFormatter pattern could be used) + `yyyy-MM-dd'T'HH:mm:ss.SSSXXX` - `cassandra.format.time` - Format string for `time` columns (any valid DateTimeFormatter pattern could be used) - `HH:mm:ss.SSS` + `cassandra.format.time` + Format string for `time` columns (any valid DateTimeFormatter pattern could be used) + `HH:mm:ss.SSS` - `cassandra.format.date` - Format string for `date` columns (any valid DateTimeFormatter pattern could be used) - `yyyy-MM-dd` + `cassandra.format.date` + Format string for `date` columns (any valid DateTimeFormatter pattern could be used) + `yyyy-MM-dd` - `cassandra.format.float_precision` - Precision when formatting values of `float` type - `5` + `cassandra.format.float_precision` + Precision when formatting values of `float` type + `5` - `cassandra.format.double_precision` - Precision when formatting values of `double` type - `12` + `cassandra.format.double_precision` + Precision when formatting values of `double` type + `12` - `cassandra.format.decimal_precision` - Precision when formatting values of `decimal` type - `-1` (show everything) + `cassandra.format.decimal_precision` + Precision when formatting values of `decimal` type + `-1` (show everything) @@ -908,7 +908,7 @@ Besides these parameters, it's also possible to set other driver parameters by a **4.0** _(Zeppelin {{ site.ZEPPELIN_VERSION }})_ : -* Refactor to use unified Java driver 4.7 ([ZEPPELIN-4378](https://issues.apache.org/jira/browse/ZEPPELIN-4378): +* Refactor to use unified Java driver 4.7 ([ZEPPELIN-4378](https://issues.apache.org/jira/browse/ZEPPELIN-4378)): * changes in configuration were necessary, as new driver has different architecture, and configuration options * interpreter got support for DSE-specific data types, and other extensions * support for `@retryPolicy` is removed, as only single retry policy is shipped with driver @@ -918,7 +918,7 @@ Besides these parameters, it's also possible to set other driver parameters by a **3.1** _(Zeppelin {{ site.ZEPPELIN_VERSION }})_ : -* Upgrade Java driver to 3.7.2 ([ZEPPELIN-4331](https://issues.apache.org/jira/browse/ZEPPELIN-4331); +* Upgrade Java driver to 3.7.2 ([ZEPPELIN-4331](https://issues.apache.org/jira/browse/ZEPPELIN-4331)); **3.0** _(Zeppelin {{ site.ZEPPELIN_VERSION }})_ : @@ -952,6 +952,6 @@ Besides these parameters, it's also possible to set other driver parameters by a [standard CQL syntax]: http://docs.datastax.com/en/cql/3.1/cql/cql_using/use_collections_c.html [Tuple CQL syntax]: http://docs.datastax.com/en/cql/3.1/cql/cql_reference/tupleType.html [UDT CQL syntax]: http://docs.datastax.com/en/cql/3.1/cql/cql_using/cqlUseUDT.html -[Zeppelin Dynamic Form](../usage/dynamic_form/intro.html) -[Interpreter Binding Mode](../usage/interpreter/interpreter_binding_mode.html) +[Zeppelin Dynamic Form]: ../usage/dynamic_form/intro.html +[Interpreter Binding Mode]: ../usage/interpreter/interpreter_binding_mode.html [JIRA]: https://issues.apache.org/jira/browse/ZEPPELIN diff --git a/docs/interpreter/elasticsearch.md b/docs/interpreter/elasticsearch.md index 6e0530a0e58..9ae3113f680 100644 --- a/docs/interpreter/elasticsearch.md +++ b/docs/interpreter/elasticsearch.md @@ -58,12 +58,12 @@ It is generally used as the underlying engine/technology that powers application elasticsearch.basicauth.username - Username for a basic authentication (http) + Username for a basic authentication (http) elasticsearch.basicauth.password - Password for a basic authentication (http) + Password for a basic authentication (http) elasticsearch.result.size @@ -72,7 +72,7 @@ It is generally used as the underlying engine/technology that powers application -
    +
    ![Interpreter configuration]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/elasticsearch-config.png)
    @@ -199,7 +199,7 @@ Suppose we have a JSON document: The data will be flattened like this: -content_length | date | request.headers[0] | request.headers[1] | request.method | request.url | status +content_length | date | `request.headers[0]` | `request.headers[1]` | request.method | request.url | status ---------------|------|--------------------|--------------------|----------------|-------------|------- 1234 | 2015-12-08T21:03:13.588Z | Accept: \*.\* | Host: apache.org | GET | /zeppelin/4cd001cd-c517-4fa9-b8e5-a06b8f4056c4 | 403 diff --git a/docs/interpreter/flink.md b/docs/interpreter/flink.md index 309a2c98205..e97b575cc85 100644 --- a/docs/interpreter/flink.md +++ b/docs/interpreter/flink.md @@ -98,11 +98,12 @@ Apache Flink is supported in Zeppelin with the Flink interpreter group which con * Support multiple insert statements + Multi-tenancy Multiple user can work in one Zeppelin instance without affecting each other. - + Rest API Support You can not only submit Flink job via Zeppelin notebook UI, but also can do that via its rest api (You can use Zeppelin as Flink job server). @@ -176,17 +177,17 @@ You can also add and set other Flink properties which are not listed in the tabl Description - `FLINK_HOME` + `FLINK_HOME` Location of Flink installation. It is must be specified, otherwise you can not use Flink in Zeppelin - `HADOOP_CONF_DIR` + `HADOOP_CONF_DIR` Location of hadoop conf, this is must be set if running in yarn mode - `HIVE_CONF_DIR` + `HIVE_CONF_DIR` Location of hive conf, this is must be set if you want to connect to hive metastore @@ -208,12 +209,12 @@ You can also add and set other Flink properties which are not listed in the tabl jobmanager.memory.process.size 1024m - Total memory size of JobManager, e.g. 1024m. It is official [Flink property](https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/config/) + Total memory size of JobManager, e.g. 1024m. It is official [Flink property](https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/config/) taskmanager.memory.process.size 1024m - Total memory size of TaskManager, e.g. 1024m. It is official [Flink property](https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/config/) + Total memory size of TaskManager, e.g. 1024m. It is official [Flink property](https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/config/) taskmanager.numberOfTaskSlots @@ -253,27 +254,27 @@ You can also add and set other Flink properties which are not listed in the tabl flink.udf.jars.packages - Packages (comma separated) that would be searched for the udf defined in `flink.udf.jars`. Specifying this can reduce the number of classes to scan, otherwise all the classes in udf jar will be scanned. + Packages (comma separated) that would be searched for the udf defined in `flink.udf.jars`. Specifying this can reduce the number of classes to scan, otherwise all the classes in udf jar will be scanned. flink.execution.jars - Additional user jars (comma separated), these jars could be either local files or hdfs files if you have hadoop installed. It can be used to specify Flink connector jars or udf jars (no udf class auto-registration like `flink.udf.jars`) + Additional user jars (comma separated), these jars could be either local files or hdfs files if you have hadoop installed. It can be used to specify Flink connector jars or udf jars (no udf class auto-registration like `flink.udf.jars`) flink.execution.packages - Additional user packages (comma separated), e.g. `org.apache.flink:flink-json:1.10.0` + Additional user packages (comma separated), e.g. `org.apache.flink:flink-json:1.10.0` zeppelin.flink.concurrentBatchSql.max 10 - Max concurrent sql of Batch Sql (`%flink.bsql`) + Max concurrent sql of Batch Sql (`%flink.bsql`) zeppelin.flink.concurrentStreamSql.max 10 - Max concurrent sql of Stream Sql (`%flink.ssql`) + Max concurrent sql of Stream Sql (`%flink.ssql`) zeppelin.pyflink.python @@ -316,17 +317,17 @@ You can also add and set other Flink properties which are not listed in the tabl max number of row returned by sql interpreter - `zeppelin.flink.job.check_interval` + `zeppelin.flink.job.check_interval` 1000 Check interval (in milliseconds) to check Flink job progress - `flink.interpreter.close.shutdown_cluster` + `flink.interpreter.close.shutdown_cluster` true Whether shutdown Flink cluster when closing interpreter - `zeppelin.interpreter.close.cancel_job` + `zeppelin.interpreter.close.cancel_job` true Whether cancel Flink job when closing interpreter @@ -745,12 +746,12 @@ In this section, we will list and explain all the supported local properties in refreshInterval 3000 - Used in `%flink.ssql` to specify frontend refresh interval for streaming data visualization. + Used in `%flink.ssql` to specify frontend refresh interval for streaming data visualization. template {0} - Used in `%flink.ssql` to specify html template for `single` type of streaming data visualization, And you can use `{i}` as placeholder for the {i}th column of the result. + Used in `%flink.ssql` to specify html template for `single` type of streaming data visualization, And you can use `{i}` as placeholder for the {i}th column of the result. parallelism @@ -760,7 +761,7 @@ In this section, we will list and explain all the supported local properties in maxParallelism - Used in %flink.ssql & %flink.bsql to specify the flink sql job max parallelism in case you want to change parallelism later. For more details, refer this [link](https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/parallel.html#setting-the-maximum-parallelism) + Used in %flink.ssql & %flink.bsql to specify the flink sql job max parallelism in case you want to change parallelism later. For more details, refer this [link](https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/parallel.html#setting-the-maximum-parallelism) savepointDir @@ -797,4 +798,3 @@ Zeppelin is shipped with several Flink tutorial notes which may be helpful for y [Join our community](http://zeppelin.apache.org/community.html) to discuss with others. - diff --git a/docs/interpreter/hdfs.md b/docs/interpreter/hdfs.md index bec3785aad5..37fca3af67b 100644 --- a/docs/interpreter/hdfs.md +++ b/docs/interpreter/hdfs.md @@ -54,8 +54,8 @@ limitations under the License. This interpreter connects to HDFS using the HTTP WebHDFS interface. It supports the basic shell file commands applied to HDFS, it currently only supports browsing. -* You can use ls [PATH] and ls -l [PATH] to list a directory. If the path is missing, then the current directory is listed. ls supports a -h flag for human readable file sizes. -* You can use cd [PATH] to change your current directory by giving a relative or an absolute path. +* You can use `ls [PATH]` and `ls -l [PATH]` to list a directory. If the path is missing, then the current directory is listed. `ls` supports a `-h` flag for human readable file sizes. +* You can use `cd [PATH]` to change your current directory by giving a relative or an absolute path. * You can invoke pwd to see your current directory. > **Tip :** Use ( Ctrl + . ) for autocompletion. @@ -73,4 +73,3 @@ Here is an example: ```bash $> curl "http://localhost:50070/webhdfs/v1/?op=LISTSTATUS" ``` - diff --git a/docs/interpreter/livy.md b/docs/interpreter/livy.md index b48ad0472ba..1db8a86eed1 100644 --- a/docs/interpreter/livy.md +++ b/docs/interpreter/livy.md @@ -173,7 +173,7 @@ Example: `spark.driver.memory` to `livy.spark.driver.memory` zeppelin.livy.http.headers key_1: value_1; key_2: value_2 - custom http headers when calling livy rest api. Each http header is separated by `;`, and each header is one key value pair where key value is separated by `:` + custom http headers when calling livy rest api. Each http header is separated by `;`, and each header is one key value pair where key value is separated by `:` zeppelin.livy.tableWithUTFCharacters @@ -244,7 +244,7 @@ That means you can query the table via `%livy.sql` when this table is registered Livy debugging: If you see any of these in error console -> Connect to livyhost:8998 [livyhost/127.0.0.1, livyhost/0:0:0:0:0:0:0:1] failed: Connection refused +> Connect to livyhost:8998 `[livyhost/127.0.0.1, livyhost/0:0:0:0:0:0:0:1]` failed: Connection refused Looks like the livy server is not up yet or the config is wrong diff --git a/docs/interpreter/mahout.md b/docs/interpreter/mahout.md index ecab15668c6..0baa8987eae 100644 --- a/docs/interpreter/mahout.md +++ b/docs/interpreter/mahout.md @@ -47,28 +47,28 @@ The `add_mahout.py` script contains several command line arguments for advanced Example - `--zeppelin_home` - This is the path to the Zeppelin installation. This flag is not needed if the script is run from the top-level installation directory or from the `zeppelin/scripts/mahout` directory. - `/path/to/zeppelin` + `--zeppelin_home` + This is the path to the Zeppelin installation. This flag is not needed if the script is run from the top-level installation directory or from the `zeppelin/scripts/mahout` directory. + `/path/to/zeppelin` - `--mahout_home` - If the user has already installed Mahout, this flag can set the path to `MAHOUT_HOME`. If this is set, downloading Mahout will be skipped. - `/path/to/mahout_home` + `--mahout_home` + If the user has already installed Mahout, this flag can set the path to `MAHOUT_HOME`. If this is set, downloading Mahout will be skipped. + `/path/to/mahout_home` - `--restart_later` + `--restart_later` Restarting is necessary for updates to take effect. By default the script will restart Zeppelin for you. Restart will be skipped if this flag is set. NA - `--force_download` + `--force_download` This flag will force the script to re-download the binary even if it already exists. This is useful for previously failed downloads. NA - `--overwrite_existing` - This flag will force the script to overwrite existing `%sparkMahout` and `%flinkMahout` interpreters. Useful when you want to just start over. + `--overwrite_existing` + This flag will force the script to overwrite existing `%sparkMahout` and `%flinkMahout` interpreters. Useful when you want to just start over. NA diff --git a/docs/interpreter/markdown.md b/docs/interpreter/markdown.md index a9c830652db..907925e664c 100644 --- a/docs/interpreter/markdown.md +++ b/docs/interpreter/markdown.md @@ -27,7 +27,7 @@ limitations under the License. [Markdown](http://daringfireball.net/projects/markdown/) is a plain text formatting syntax designed so that it can be converted to HTML. Apache Zeppelin uses [flexmark](https://github.com/vsch/flexmark-java) and [markdown4j](https://github.com/jdcasey/markdown4j) as markdown parsers. -In Zeppelin notebook, you can use ` %md ` in the beginning of a paragraph to invoke the Markdown interpreter and generate static html from Markdown plain text. +In Zeppelin notebook, you can use `%md` in the beginning of a paragraph to invoke the Markdown interpreter and generate static html from Markdown plain text. In Zeppelin, Markdown interpreter is enabled by default and uses the [flexmark](https://github.com/vsch/flexmark-java) parser. diff --git a/docs/interpreter/mongodb.md b/docs/interpreter/mongodb.md index 84c813fc69e..6dc51f52391 100644 --- a/docs/interpreter/mongodb.md +++ b/docs/interpreter/mongodb.md @@ -46,7 +46,7 @@ Second, create mongodb interpreter in Zeppelin. mongo.shell.path mongosh - MongoDB shell local path.
    Use `which mongosh` to get local path in linux or mac.
    (For below [version 5.0](https://www.mongodb.com/docs/manual/release-notes/5.0/#shell-changes), check `mongo`) + MongoDB shell local path.
    Use `which mongosh` to get local path in linux or mac.
    (For below [version 5.0](https://www.mongodb.com/docs/manual/release-notes/5.0/#shell-changes), check `mongo`) mongo.shell.command.table.limit diff --git a/docs/interpreter/neo4j.md b/docs/interpreter/neo4j.md index 436532ff56a..50476e213d1 100644 --- a/docs/interpreter/neo4j.md +++ b/docs/interpreter/neo4j.md @@ -76,7 +76,7 @@ The Neo4j Interpreter supports all Neo4j versions since v3 via the official [Neo -
    +
    ![Interpreter configuration]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/neo4j-config.png)
    diff --git a/docs/interpreter/python.md b/docs/interpreter/python.md index 8600975c1d2..661fb500b40 100644 --- a/docs/interpreter/python.md +++ b/docs/interpreter/python.md @@ -382,7 +382,7 @@ Python interpreter create a variable `z` which represent `ZeppelinContext` for y z.checkbox(name, options, defaultChecked=[]) - Create dynamic form Checkbox `name` with options and defaultChecked. options should be a list of Tuple(first element is key, + Create dynamic form Checkbox `name` with options and defaultChecked. options should be a list of Tuple(first element is key, the second element is the displayed value) e.g. z.checkbox("f3", [("o1","1"), ("o2","2")],["o1"]) diff --git a/docs/interpreter/shell.md b/docs/interpreter/shell.md index 865b9150fb4..70c7a971a97 100644 --- a/docs/interpreter/shell.md +++ b/docs/interpreter/shell.md @@ -28,7 +28,7 @@ Zeppelin Shell has two interpreters the default is the %sh interpreter. ### Shell interpreter Shell interpreter uses [Apache Commons Exec](https://commons.apache.org/proper/commons-exec) to execute external processes. -In Zeppelin notebook, you can use ` %sh ` in the beginning of a paragraph to invoke system shell and run commands. +In Zeppelin notebook, you can use `%sh` in the beginning of a paragraph to invoke system shell and run commands. ### Terminal interpreter Terminal interpreter uses [hterm](https://chromium.googlesource.com/apps/libapps/+/HEAD/hterm), [Pty4J](https://github.com/JetBrains/pty4j) analog terminal operation. @@ -110,7 +110,7 @@ export KINIT_FAIL_THRESHOLD=10 The shell interpreter also supports interpolation of `ZeppelinContext` objects into the paragraph text. The following example shows one use of this facility: -####In Scala cell: +#### In Scala cell: ```scala z.put("dataFileName", "members-list-003.parquet") @@ -119,7 +119,7 @@ val members = spark.read.parquet(z.get("dataFileName")) // ... ``` -####In later Shell cell: +#### In later Shell cell: ```bash %sh diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md index be1098ea65d..fa533e27547 100644 --- a/docs/interpreter/spark.md +++ b/docs/interpreter/spark.md @@ -89,12 +89,12 @@ Apache Spark is supported in Zeppelin with Spark interpreter group which consist You can visualize Spark Dataset/DataFrame vis Python's plotting libraries. - + Multi-tenancy Multiple user can work in one Zeppelin instance without affecting each other. - + Rest API Support You can not only submit Spark job via Zeppelin notebook UI, but also can do that via its rest api (You can use Zeppelin as Spark job server). @@ -129,7 +129,7 @@ You can also set other Spark properties which are not listed in the table. For a Description - `SPARK_HOME` + `SPARK_HOME` Location of spark distribution @@ -143,6 +143,7 @@ You can also set other Spark properties which are not listed in the table. For a The deploy mode of Spark driver program, either "client" or "cluster", Which means to launch driver program locally ("client") or remotely ("cluster") on one of the nodes inside the cluster. + spark.app.name Zeppelin The name of spark application. @@ -188,21 +189,21 @@ You can also set other Spark properties which are not listed in the table. For a Comma-separated list of Maven coordinates of jars to include on the driver and executor classpaths. The coordinates should be groupId:artifactId:version. If spark.jars.ivySettings is given artifacts will be resolved according to the configuration in the file, otherwise artifacts will be searched for in the local maven repo, then maven central and finally any additional remote repositories given by the command-line option --repositories. - `PYSPARK_PYTHON` + `PYSPARK_PYTHON` python Python binary executable to use for PySpark in both driver and executors (default is python). Property spark.pyspark.python take precedence if it is set - `PYSPARK_DRIVER_PYTHON` + `PYSPARK_DRIVER_PYTHON` python - Python binary executable to use for PySpark in driver only (default is `PYSPARK_PYTHON`). + Python binary executable to use for PySpark in driver only (default is `PYSPARK_PYTHON`). Property spark.pyspark.driver.python take precedence if it is set zeppelin.pyspark.useIPython false - Whether use IPython when the ipython prerequisites are met in `%spark.pyspark` + Whether use IPython when the ipython prerequisites are met in `%spark.pyspark` zeppelin.spark.concurrentSQL diff --git a/docs/quickstart/docker.md b/docs/quickstart/docker.md index 5ae3afcc3b5..3f8d7fea0c6 100644 --- a/docs/quickstart/docker.md +++ b/docs/quickstart/docker.md @@ -165,8 +165,8 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z 1. Configuring in the zeppelin-env.sh Because there are only spark binary files in the interpreter image, no spark conf files are included. - The configuration file in the `spark-/conf/` local to the zeppelin service needs to be uploaded to the `/spark/conf/` directory in the spark interpreter container. - So you need to setting `export SPARK_CONF_DIR=/spark--path/conf/` in the `zeppelin-env.sh` file. + The configuration file in the `spark-<version>/conf/` local to the zeppelin service needs to be uploaded to the `/spark/conf/` directory in the spark interpreter container. + So you need to setting `export SPARK_CONF_DIR=/spark-<version>-path/conf/` in the `zeppelin-env.sh` file. 2. Configuring in the spark Properties @@ -174,7 +174,7 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z | properties name | Value | Description | | ----- | ----- | ----- | - | SPARK\_CONF_DIR | /spark--path.../conf/ | Spark--path/conf/ path local on the zeppelin service | + | SPARK\_CONF_DIR | /spark-<version>-path.../conf/ | Spark-<version>-path/conf/ path local on the zeppelin service | #### HADOOP\_CONF_DIR @@ -182,8 +182,8 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z 1. Configuring in the zeppelin-env.sh Because there are only spark binary files in the interpreter image, no configuration files are included. - The configuration file in the `hadoop-/etc/hadoop` local to the zeppelin service needs to be uploaded to the spark interpreter container. - So you need to setting `export HADOOP_CONF_DIR=hadoop--path/etc/hadoop` in the `zeppelin-env.sh` file. + The configuration file in the `hadoop-<version>/etc/hadoop` local to the zeppelin service needs to be uploaded to the spark interpreter container. + So you need to setting `export HADOOP_CONF_DIR=hadoop-<version>-path/etc/hadoop` in the `zeppelin-env.sh` file. 2. Configuring in the spark Properties @@ -191,7 +191,7 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z | properties name | Value | Description | | ----- | ----- | ----- | - | HADOOP\_CONF_DIR | hadoop--path/etc/hadoop | hadoop--path/etc/hadoop path local on the zeppelin service | + | HADOOP\_CONF_DIR | hadoop-<version>-path/etc/hadoop | hadoop-<version>-path/etc/hadoop path local on the zeppelin service | #### Accessing Spark UI (or Service running in interpreter container) @@ -215,4 +215,4 @@ Zeppelin can run locally (such as inside your IDE in debug mode) and able to run | Configuration variable | Value | Description | | ----- | ----- | ----- | | `ZEPPELIN_RUN_MODE` | `docker` | Make Zeppelin run interpreter on Docker | -| `ZEPPELIN_DOCKER_CONTAINER_IMAGE` | `:` | Zeppelin interpreter docker image to use | +| `ZEPPELIN_DOCKER_CONTAINER_IMAGE` | `<image>:<version>` | Zeppelin interpreter docker image to use | diff --git a/docs/setup/deployment/flink_and_spark_cluster.md b/docs/setup/deployment/flink_and_spark_cluster.md index de87ec7eb7c..ab1f20d21e8 100644 --- a/docs/setup/deployment/flink_and_spark_cluster.md +++ b/docs/setup/deployment/flink_and_spark_cluster.md @@ -253,7 +253,7 @@ build-target/bin/start-cluster.sh In a browser, navigate to http://`yourip`:8082 to see the Flink Web-UI. Click on 'Task Managers' in the left navigation bar. Ensure there is at least one Task Manager present. -
    ![alt text]({{BASE_PATH}}/assets/themes/zeppelin/img/screenshots/flink-webui.png "The Flink Web-UI")
    +
    ![alt text]({{BASE_PATH}}/assets/themes/zeppelin/img/screenshots/flink-webui.png "The Flink Web-UI")
    If no task managers are present, restart the Flink cluster with the following commands: @@ -330,7 +330,7 @@ spark/sbin/start-master.sh --webui-port 8082 Open a browser and navigate to http://`yourip`:8082 to ensure the Spark master is running. -
    ![alt text]({{BASE_PATH}}/assets/themes/zeppelin/img/screenshots/spark-master-webui1.png "It should look like this...")
    +
    ![alt text]({{BASE_PATH}}/assets/themes/zeppelin/img/screenshots/spark-master-webui1.png "It should look like this...")
    Toward the top of the page there will be a *URL*: spark://`yourhost`:7077. Note this URL, the Spark Master URI, it will be needed in subsequent steps. diff --git a/docs/setup/deployment/yarn_install.md b/docs/setup/deployment/yarn_install.md index 4c7e87bf599..58cf90d6ccf 100644 --- a/docs/setup/deployment/yarn_install.md +++ b/docs/setup/deployment/yarn_install.md @@ -109,7 +109,7 @@ hdp-select status hadoop-client | sed 's/hadoop-client - \(.*\)/\1/' cd /home/zeppelin/zeppelin bin/zeppelin-daemon.sh start ``` -After successful start, visit http://[zeppelin-server-host-name]:8080 with your web browser. +After successful start, visit `http://[zeppelin-server-host-name]:8080` with your web browser. ### Stop Zeppelin @@ -123,7 +123,7 @@ Zeppelin provides various distributed processing frameworks to process data that ### Hive Zeppelin supports Hive through JDBC interpreter. You might need the information to use Hive and can find in your hive-site.xml -Once Zeppelin server has started successfully, visit http://[zeppelin-server-host-name]:8080 with your web browser. Click on Interpreter tab next to Notebook dropdown. Look for Hive configurations and set them appropriately. Set them as per Hive installation on YARN cluster. +Once Zeppelin server has started successfully, visit `http://[zeppelin-server-host-name]:8080` with your web browser. Click on Interpreter tab next to Notebook dropdown. Look for Hive configurations and set them appropriately. Set them as per Hive installation on YARN cluster. Click on Save button. Once these configurations are updated, Zeppelin will prompt you to restart the interpreter. Accept the prompt and the interpreter will reload the configurations. ### Spark diff --git a/docs/setup/operation/configuration.md b/docs/setup/operation/configuration.md index 0a53f5179ee..1e994e0263e 100644 --- a/docs/setup/operation/configuration.md +++ b/docs/setup/operation/configuration.md @@ -51,7 +51,7 @@ Sources descending by priority:
    ZEPPELIN_PORT
    zeppelin.server.port
    8080 - Zeppelin server port
    + Zeppelin server port
    Note: Please make sure you're not using the same port with Zeppelin web application development port (default: 9000). @@ -302,7 +302,7 @@ Sources descending by priority:
    ZEPPELIN_NOTEBOOK_S3_CANNED_ACL
    zeppelin.notebook.s3.cannedAcl
    - Save notebooks to S3 with the given [Canned ACL](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/CannedAccessControlList.html) which determines the S3 permissions. + Save notebooks to S3 with the given [Canned ACL](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/CannedAccessControlList.html) which determines the S3 permissions.
    ZEPPELIN_NOTEBOOK_S3_PATH_STYLE_ACCESS
    @@ -422,7 +422,7 @@ Sources descending by priority:
    ZEPPELIN_NOTEBOOK_GIT_REMOTE_USERNAME
    zeppelin.notebook.git.remote.username
    token - GitHub username. By default it is `token` to use GitHub's API + GitHub username. By default it is `token` to use GitHub's API
    ZEPPELIN_NOTEBOOK_GIT_REMOTE_ACCESS_TOKEN
    @@ -434,7 +434,7 @@ Sources descending by priority:
    ZEPPELIN_NOTEBOOK_GIT_REMOTE_ORIGIN
    zeppelin.notebook.git.remote.origin
    token - GitHub remote name. Default is `origin` + GitHub remote name. Default is `origin`
    ZEPPELIN_RUN_MODE
    diff --git a/docs/setup/operation/upgrading.md b/docs/setup/operation/upgrading.md index 673fcac59c7..b34521ad122 100644 --- a/docs/setup/operation/upgrading.md +++ b/docs/setup/operation/upgrading.md @@ -58,7 +58,7 @@ So, copying `notebook` and `conf` directory should be enough. ### Upgrading from Zeppelin 0.6 to 0.7 - From 0.7, we don't use `ZEPPELIN_JAVA_OPTS` as default value of `ZEPPELIN_INTP_JAVA_OPTS` and also the same for `ZEPPELIN_MEM`/`ZEPPELIN_INTP_MEM`. If user want to configure the jvm opts of interpreter process, please set `ZEPPELIN_INTP_JAVA_OPTS` and `ZEPPELIN_INTP_MEM` explicitly. If you don't set `ZEPPELIN_INTP_MEM`, Zeppelin will set it to `-Xms1024m -Xmx1024m -XX:MaxMetaspaceSize=512m` by default. - - Mapping from `%jdbc(prefix)` to `%prefix` is no longer available. Instead, you can use %[interpreter alias] with multiple interpreter setttings on GUI. + - Mapping from `%jdbc(prefix)` to `%prefix` is no longer available. Instead, you can use `%[interpreter alias]` with multiple interpreter setttings on GUI. - Usage of `ZEPPELIN_PORT` is not supported in ssl mode. Instead use `ZEPPELIN_SSL_PORT` to configure the ssl port. Value from `ZEPPELIN_PORT` is used only when `ZEPPELIN_SSL` is set to `false`. - The support on Spark 1.1.x to 1.3.x is deprecated. - From 0.7, we uses `pegdown` as the `markdown.parser.type` option for the `%md` interpreter. Rendered markdown might be different from what you expected diff --git a/docs/setup/security/http_security_headers.md b/docs/setup/security/http_security_headers.md index 95dcd2d0d44..4d7566dd25f 100644 --- a/docs/setup/security/http_security_headers.md +++ b/docs/setup/security/http_security_headers.md @@ -27,7 +27,7 @@ Apache Zeppelin can be configured to include HTTP Headers which aids in preventi ## Setting up HTTP Strict Transport Security (HSTS) Response Header -Enabling HSTS Response Header prevents Man-in-the-middle attacks by automatically redirecting HTTP requests to HTTPS when Zeppelin Server is running on SSL. Read on how to configure SSL for Zeppelin [here] (../operation/configuration.html). Even if web page contains any resource which gets served over HTTP or any HTTP links, it will automatically be redirected to HTTPS for the target domain. +Enabling HSTS Response Header prevents Man-in-the-middle attacks by automatically redirecting HTTP requests to HTTPS when Zeppelin Server is running on SSL. Read on how to configure SSL for Zeppelin [here](../operation/configuration.html). Even if web page contains any resource which gets served over HTTP or any HTTP links, it will automatically be redirected to HTTPS for the target domain. It also prevents MITM attack by not allowing User to override the invalid certificate message, when Attacker presents invalid SSL certificate to the User. The following property needs to be updated in the zeppelin-site.xml in order to enable HSTS. You can choose appropriate value for "max-age". diff --git a/docs/setup/security/shiro_authentication.md b/docs/setup/security/shiro_authentication.md index 98cebc937ae..d5ded4e1711 100644 --- a/docs/setup/security/shiro_authentication.md +++ b/docs/setup/security/shiro_authentication.md @@ -322,7 +322,7 @@ Since Shiro provides **url-based security**, you can hide the information by com ``` In this case, only who have `admin` role can see **Interpreter Setting**, **Credential** and **Configuration** information. -If you want to grant this permission to other users, you can change **roles[ ]** as you defined at `[users]` section. +If you want to grant this permission to other users, you can change **`roles[ ]`** as you defined at `[users]` section. ### Apply multiple roles in Shiro configuration By default, Shiro will allow access to a URL if only user is part of "**all the roles**" defined like this: diff --git a/docs/setup/storage/notebook_storage.md b/docs/setup/storage/notebook_storage.md index e7a5b26ccc0..4d7e3cadc20 100644 --- a/docs/setup/storage/notebook_storage.md +++ b/docs/setup/storage/notebook_storage.md @@ -41,7 +41,7 @@ There are few notebook storage systems available for a use out of the box: Multiple storage systems can be used at the same time by providing a comma-separated list of the class-names in the configuration. By default, only first two of them will be automatically kept in sync by Zeppelin. -
    +
    ## Notebook Storage in local Git repository @@ -55,7 +55,7 @@ To enable versioning for all your local notebooks though a standard Git reposito ``` -
    +
    ## Notebook Storage in hadoop compatible file system repository @@ -71,7 +71,7 @@ If your hadoop cluster is kerberized, then you need to specify `zeppelin.server. ``` -
    +
    ## Notebook Storage in S3 @@ -83,7 +83,7 @@ Notebooks may be stored in S3, and optionally encrypted. The [``DefaultAWSCrede - Credential profiles file at the default location (````~/.aws/credentials````) used by the AWS CLI - Instance profile credentials delivered through the Amazon EC2 metadata service -
    +
    The following folder structure will be created in S3: ``` @@ -205,7 +205,7 @@ Or using the following setting in **zeppelin-site.xml**: ``` -
    +
    ### S3 Object Permissions @@ -226,7 +226,7 @@ Or using the following setting in **zeppelin-site.xml**: ``` -
    +
    #### S3 Enable Path Style Access @@ -246,7 +246,7 @@ Or using the following setting in **zeppelin-site.xml**: ``` -
    +
    ## Notebook Storage in Azure @@ -308,7 +308,7 @@ Optionally, you can specify Azure folder structure name in the file **zeppelin-s ``` -
    +
    ## Notebook Storage in Google Cloud Storage @@ -414,13 +414,13 @@ file for authentication with GCS, update the following property : ``` -
    +
    ## Notebook Storage in OSS Notebooks may be stored in Aliyun OSS. -
    +
    The following folder structure will be created in OSS: ``` diff --git a/docs/usage/display_system/angular_frontend.md b/docs/usage/display_system/angular_frontend.md index affdc282869..6a2cbd0a0ec 100644 --- a/docs/usage/display_system/angular_frontend.md +++ b/docs/usage/display_system/angular_frontend.md @@ -24,8 +24,8 @@ limitations under the License.
    ## Basic Usage -In addition to the [backend Angular API](./angular_backend.html) to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS **z** object on the front-end side to expose the same capabilities. -This **z** object is accessible in the Angular isolated scope for each paragraph. +In addition to the [backend Angular API](./angular_backend.html) to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS **`z`** object on the front-end side to expose the same capabilities. +This **`z`** object is accessible in the Angular isolated scope for each paragraph. ### Bind / Unbind Variables @@ -126,6 +126,7 @@ How does the front-end AngularJS API compares to the [backend Angular API](./ang Back-end API + Initiate binding z.angularbind(var, initialValue, paragraphId) @@ -161,8 +162,7 @@ How does the front-end AngularJS API compares to the [backend Angular API](./ang z.runNote(noteId) - - + Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end. diff --git a/docs/usage/dynamic_form/intro.md b/docs/usage/dynamic_form/intro.md index 8328bd00878..8c6c67f4494 100644 --- a/docs/usage/dynamic_form/intro.md +++ b/docs/usage/dynamic_form/intro.md @@ -102,7 +102,7 @@ Some language backends can programmatically create forms. For example [ZeppelinC Here are some examples: ### Text input form -
    +
    {% highlight scala %} @@ -125,7 +125,7 @@ print("Hello "+z.textbox("name")) Use `z.input()` instead in version 0.7.3 or prior. `z.input()` is deprecated in 0.8.0. ### Text input form with default value -
    +
    {% highlight scala %} @@ -148,7 +148,7 @@ print("Hello "+z.textbox("name", "sun")) Use `z.input()` instead in version 0.7.3 or prior. `z.input()` is deprecated in 0.8.0. ### Password form -
    +
    {% highlight scala %} @@ -169,7 +169,7 @@ print("Password is "+ z.password("my_password")) ### Select form -
    +
    {% highlight scala %} @@ -202,7 +202,7 @@ print("Hello "+z.select("day", [("1","mon"), #### Checkbox form -
    +
    {% highlight scala %} diff --git a/docs/usage/interpreter/dynamic_loading.md b/docs/usage/interpreter/dynamic_loading.md index 404421bfa68..107d85b2734 100644 --- a/docs/usage/interpreter/dynamic_loading.md +++ b/docs/usage/interpreter/dynamic_loading.md @@ -40,7 +40,7 @@ You can **load** interpreters located in Maven repository using REST API, like t ``` http://[zeppelin-server]:[zeppelin-port]/api/interpreter/load/[interpreter_group_name]/[interpreter_name] ``` -The Restful method will be **POST**. And the parameters you need are: +The Restful method will be **`POST`**. And the parameters you need are: 1. **Artifact:** Maven artifact ( groupId:artifactId:version ) @@ -89,7 +89,7 @@ If you want to **unload** the interpreters using REST API, ``` http://[zeppelin-server]:[zeppelin-port]/api/interpreter/unload/[interpreter_group_name]/[interpreter_name] ``` -In this case, the Restful method will be **DELETE**. +In this case, the Restful method will be **`DELETE`**.
    ## What is the next step after Loading ? diff --git a/docs/usage/interpreter/overview.md b/docs/usage/interpreter/overview.md index 862fb69074c..6833cf09aa3 100644 --- a/docs/usage/interpreter/overview.md +++ b/docs/usage/interpreter/overview.md @@ -51,7 +51,7 @@ The interpreter settings are the configuration of a given interpreter on the Zep -Properties are exported as environment variables on the system if the property name consists of upper-case characters, numbers or underscores ([A-Z_0-9]). Otherwise, the property is set as a common interpreter property. +Properties are exported as environment variables on the system if the property name consists of upper-case characters, numbers or underscores (`[A-Z_0-9]`). Otherwise, the property is set as a common interpreter property. e.g. You can define `SPARK_HOME` and `HADOOP_CONF_DIR` in spark's interpreter setting, they are be passed to Spark interpreter process as environment variable which is used by Spark. You may use parameters from the context of the interpreter by adding #{contextParameterName} in the interpreter property value. The parameter can be of the following types: string, number, boolean. diff --git a/docs/usage/other_features/zeppelin_context.md b/docs/usage/other_features/zeppelin_context.md index ad9f09c305f..a4a87474d53 100644 --- a/docs/usage/other_features/zeppelin_context.md +++ b/docs/usage/other_features/zeppelin_context.md @@ -56,7 +56,7 @@ other interpreters that can access the `z` object (Flink already support to show `ZeppelinContext` extends map and it's shared between the Apache Spark and Python environments. So you can put some objects using Scala (in an Apache Spark cell) and read it from Python, and vice versa. -
    +
    {% highlight scala %} @@ -143,7 +143,7 @@ bank = z.getAsDataFrame('bank') `ZeppelinContext` provides functions for creating forms. In Scala and Python environments, you can create forms programmatically. -
    +
    {% highlight scala %} @@ -229,7 +229,7 @@ Some interpreters can interpolate object values from `z` into the paragraph text interpolated into a paragraph text by using such a pattern containing the object's name. The following example shows one use of this facility: -####In Scala cell: +#### In Scala cell: ```scala %spark @@ -237,7 +237,7 @@ The following example shows one use of this facility: z.put("minAge", 35) ``` -####In later SQL cell: +#### In later SQL cell: ```sql %spark.sql diff --git a/docs/usage/rest_api/configuration.md b/docs/usage/rest_api/configuration.md index 249e1ad1077..3e9e4072849 100644 --- a/docs/usage/rest_api/configuration.md +++ b/docs/usage/rest_api/configuration.md @@ -38,12 +38,12 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method return all key/value pair of configurations on the server.
    + This ```GET``` method return all key/value pair of configurations on the server.
    Note: For security reason, some pairs would not be shown. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/configurations/all``` + ```http://[zeppelin-server]:[zeppelin-port]/api/configurations/all``` Success code @@ -56,7 +56,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample JSON response - + ```json { @@ -98,12 +98,12 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method return all prefix matched key/value pair of configurations on the server.
    + This ```GET``` method return all prefix matched key/value pair of configurations on the server.
    Note: For security reason, some pairs would not be shown. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/configurations/prefix/[prefix]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/configurations/prefix/[prefix]``` Success code @@ -116,7 +116,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample JSON response - + ```json { diff --git a/docs/usage/rest_api/credential.md b/docs/usage/rest_api/credential.md index c66d0986f69..28fbb313a9c 100644 --- a/docs/usage/rest_api/credential.md +++ b/docs/usage/rest_api/credential.md @@ -38,11 +38,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns all key/value pairs of the credential information on the server. + This ```GET``` method returns all key/value pairs of the credential information on the server. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/credential``` + ```http://[zeppelin-server]:[zeppelin-port]/api/credential``` Success code @@ -55,7 +55,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample JSON response - + ```json { @@ -85,11 +85,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```PUT``` method creates the credential information with new properties. + This ```PUT``` method creates the credential information with new properties. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/credential/``` + ```http://[zeppelin-server]:[zeppelin-port]/api/credential/``` Success code @@ -101,7 +101,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON input - + ```json { @@ -114,7 +114,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -133,11 +133,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```DELETE``` method deletes the credential information. + This ```DELETE``` method deletes the credential information. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/credential``` + ```http://[zeppelin-server]:[zeppelin-port]/api/credential``` Success code @@ -149,7 +149,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json {"status":"OK"} @@ -166,11 +166,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```DELETE``` method deletes a given credential entity. + This ```DELETE``` method deletes a given credential entity. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/credential/[entity]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/credential/[entity]``` Success code @@ -182,7 +182,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json {"status":"OK"} diff --git a/docs/usage/rest_api/helium.md b/docs/usage/rest_api/helium.md index 35db5858e7d..21d5d48262a 100644 --- a/docs/usage/rest_api/helium.md +++ b/docs/usage/rest_api/helium.md @@ -38,11 +38,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns all the available helium packages in configured registries. + This ```GET``` method returns all the available helium packages in configured registries. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/package``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/package``` Success code @@ -54,7 +54,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -95,11 +95,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns all enabled helium packages in configured registries. + This ```GET``` method returns all enabled helium packages in configured registries. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/enabledPackage``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/enabledPackage``` Success code @@ -111,7 +111,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -152,11 +152,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns specified helium package information + This ```GET``` method returns specified helium package information URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/package/[Package Name]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/package/[Package Name]``` Success code @@ -168,7 +168,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -209,11 +209,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns suggested helium package for the paragraph. + This ```GET``` method returns suggested helium package for the paragraph. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/suggest/[Note ID]/[Paragraph ID]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/suggest/[Note ID]/[Paragraph ID]``` Success code @@ -228,7 +228,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -269,11 +269,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```POST``` method loads helium package to target paragraph. + This ```POST``` method loads helium package to target paragraph. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/load/[Note ID]/[Paragraph ID]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/load/[Note ID]/[Paragraph ID]``` Success code @@ -288,7 +288,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -308,11 +308,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns bundled helium visualization javascript. When refresh=true (optional) is provided, Zeppelin rebuilds bundle. Otherwise, it's provided from cache + This ```GET``` method returns bundled helium visualization javascript. When refresh=true (optional) is provided, Zeppelin rebuilds bundle. Otherwise, it's provided from cache URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/bundle/load/[Package Name][?refresh=true]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/bundle/load/[Package Name][?refresh=true]``` Success code @@ -332,11 +332,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```POST``` method enables a helium package. Needs artifact name in input payload + This ```POST``` method enables a helium package. Needs artifact name in input payload URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/enable/[Package Name]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/enable/[Package Name]``` Success code @@ -356,7 +356,7 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Sample JSON response - + ```json {"status":"OK"} @@ -372,11 +372,11 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Description - This ```POST``` method disables a helium package. + This ```POST``` method disables a helium package. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/disable/[Package Name]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/disable/[Package Name]``` Success code @@ -388,7 +388,7 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Sample JSON response - + ```json {"status":"OK"} @@ -404,11 +404,11 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Description - This ```GET``` method returns display order of enabled visualization packages. + This ```GET``` method returns display order of enabled visualization packages. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/order/visualization``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/order/visualization``` Success code @@ -420,7 +420,7 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Sample JSON response - + ```json {"status":"OK","body":["zeppelin_horizontalbar","zeppelin-bubblechart"]} @@ -436,11 +436,11 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Description - This ```POST``` method sets visualization packages display order. + This ```POST``` method sets visualization packages display order. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/order/visualization``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/order/visualization``` Success code @@ -452,7 +452,7 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Sample JSON input - + ```json ["zeppelin-bubblechart", "zeppelin_horizontalbar"] @@ -461,7 +461,7 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Sample JSON response - + ```json {"status":"OK"} @@ -477,11 +477,11 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA Description - This ```GET``` method returns configuration for all Helium packages + This ```GET``` method returns configuration for all Helium packages URL - ```http://[zeppelin-server]:[zeppelin-port]/api/helium/config``` + ```http://[zeppelin-server]:[zeppelin-port]/api/helium/config``` Success code @@ -494,17 +494,17 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA
    - ### Get configuration for specific package +### Get configuration for specific package - + - + @@ -523,11 +523,11 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA - + - + @@ -540,17 +540,17 @@ zeppelin-examples/zeppelin-example-clock/target/zeppelin-example-clock-0.7.0-SNA
    DescriptionThis ```GET``` method returns configuration for the specified package name and artifactThis ```GET``` method returns configuration for the specified package name and artifact
    URL```http://[zeppelin-server]:[zeppelin-port]/api/helium/config/[Package Name]/[Artifact]``````http://[zeppelin-server]:[zeppelin-port]/api/helium/config/[Package Name]/[Artifact]```
    Success code
    DescriptionThis ```POST``` method updates configuration for specified package name and artifactThis ```POST``` method updates configuration for specified package name and artifact
    URL```http://[zeppelin-server]:[zeppelin-port]/api/helium/config/[Package Name]/[Artifact]``````http://[zeppelin-server]:[zeppelin-port]/api/helium/config/[Package Name]/[Artifact]```
    Success code

    - ### Get Spell configuration for single package +### Get Spell configuration for single package - + - + diff --git a/docs/usage/rest_api/interpreter.md b/docs/usage/rest_api/interpreter.md index 747427b3485..8e22f3e8ed3 100644 --- a/docs/usage/rest_api/interpreter.md +++ b/docs/usage/rest_api/interpreter.md @@ -40,11 +40,11 @@ The role of registered interpreters, settings and interpreters group are describ - + - + @@ -56,7 +56,7 @@ The role of registered interpreters, settings and interpreters group are describ - - + - + @@ -133,7 +133,7 @@ The role of registered interpreters, settings and interpreters group are describ - - + - + @@ -220,7 +220,7 @@ The role of registered interpreters, settings and interpreters group are describ - - + - + @@ -284,7 +284,7 @@ The role of registered interpreters, settings and interpreters group are describ - - - + - + @@ -375,7 +375,7 @@ The role of registered interpreters, settings and interpreters group are describ - - - + - + @@ -467,7 +467,7 @@ The role of registered interpreters, settings and interpreters group are describ - - + - + @@ -500,7 +500,7 @@ The role of registered interpreters, settings and interpreters group are describ - - - + - + @@ -543,7 +543,7 @@ The role of registered interpreters, settings and interpreters group are describ - - - + - + @@ -594,11 +594,11 @@ The role of registered interpreters, settings and interpreters group are describ - + - + @@ -610,7 +610,7 @@ The role of registered interpreters, settings and interpreters group are describ - - +
    DescriptionThis ```GET``` method returns specified package Spell configurationThis ```GET``` method returns specified package Spell configuration
    URL```http://[zeppelin-server]:[zeppelin-port]/api/helium/spell/config/[Package Name]``````http://[zeppelin-server]:[zeppelin-port]/api/helium/spell/config/[Package Name]```
    Success code
    DescriptionThis ```GET``` method returns all the registered interpreters available on the server.This ```GET``` method returns all the registered interpreters available on the server.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter```
    Success code
    Sample JSON response + ```json { @@ -117,11 +117,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```GET``` method returns all the interpreters settings registered on the server.This ```GET``` method returns all the interpreters settings registered on the server.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting```
    Success code
    Sample JSON response + ```json { @@ -201,11 +201,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```GET``` method returns a registered interpreter setting on the server.This ```GET``` method returns a registered interpreter setting on the server.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[setting ID]``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[setting ID]```
    Success code
    Sample JSON response + ```json { @@ -265,11 +265,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```POST``` method adds a new interpreter setting using a registered interpreter to the server.This ```POST``` method adds a new interpreter setting using a registered interpreter to the server.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting```
    Success code
    Sample JSON input + ```json { @@ -316,7 +316,7 @@ The role of registered interpreters, settings and interpreters group are describ
    Sample JSON response + ```json { @@ -359,11 +359,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```PUT``` method updates an interpreter setting with new properties.This ```PUT``` method updates an interpreter setting with new properties.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[interpreter ID]``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[interpreter ID]```
    Success code
    Sample JSON input + ```json { @@ -407,7 +407,7 @@ The role of registered interpreters, settings and interpreters group are describ
    Sample JSON response + ```json { @@ -451,11 +451,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```DELETE``` method deletes an given interpreter setting.This ```DELETE``` method deletes an given interpreter setting.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[interpreter ID]``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/[interpreter ID]```
    Success code
    Sample JSON response + ```json {"status":"OK"} @@ -484,11 +484,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```PUT``` method restarts the given interpreter id.This ```PUT``` method restarts the given interpreter id.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/restart/[interpreter ID]``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/setting/restart/[interpreter ID]```
    Success code
    Sample JSON input (Optional) + ```json { @@ -511,7 +511,7 @@ The role of registered interpreters, settings and interpreters group are describ
    Sample JSON response + ```json {"status":"OK"} @@ -527,11 +527,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```POST``` method adds new repository.This ```POST``` method adds new repository.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/repository``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/repository```
    Success code
    Sample JSON input + ```json { @@ -556,7 +556,7 @@ The role of registered interpreters, settings and interpreters group are describ
    Sample JSON response + ```json {"status":"OK"} @@ -572,11 +572,11 @@ The role of registered interpreters, settings and interpreters group are describ
    DescriptionThis ```DELETE``` method delete repository with given id.This ```DELETE``` method delete repository with given id.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/repository/[repository ID]``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/repository/[repository ID]```
    Success code
    DescriptionThis ```GET``` method returns available types for interpreter property.This ```GET``` method returns available types for interpreter property.
    URL```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/property/types``````http://[zeppelin-server]:[zeppelin-port]/api/interpreter/property/types```
    Success code
    Sample JSON response + ```json { @@ -620,7 +620,7 @@ The role of registered interpreters, settings and interpreters group are describ } ```

    @@ -630,11 +630,11 @@ The role of registered interpreters, settings and interpreters group are describ Description - This ```GET``` method returns interpreter settings metadata info. + This ```GET``` method returns interpreter settings metadata info. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/metadata/[setting ID]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/interpreter/metadata/[setting ID]``` Success code diff --git a/docs/usage/rest_api/notebook.md b/docs/usage/rest_api/notebook.md index 0f858024f83..76a17c15755 100644 --- a/docs/usage/rest_api/notebook.md +++ b/docs/usage/rest_api/notebook.md @@ -37,13 +37,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method lists the available notes on your server. + This ```GET``` method lists the available notes on your server. Notebook JSON contains the ```name``` and ```id``` of all notes. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook``` Success code @@ -55,7 +55,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -83,13 +83,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method creates a new note using the given name or default name if none given. + This ```POST``` method creates a new note using the given name or default name if none given. The body field of the returned JSON contains the new note id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook``` Success code @@ -101,7 +101,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (without paragraphs) - + ```json {"name": "name of new note"} @@ -110,7 +110,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (with initial paragraphs) - + ```json { @@ -143,7 +143,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -162,13 +162,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets the status of all paragraphs by the given note id. + This ```GET``` method gets the status of all paragraphs by the given note id. The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` Success code @@ -180,7 +180,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -212,13 +212,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method retrieves an existing note's information using the given id. + This ```GET``` method retrieves an existing note's information using the given id. The body field of the returned JSON contain information about paragraphs in the note. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` Success code @@ -230,7 +230,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -319,12 +319,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```DELETE``` method deletes a note by the given note id. + This ```DELETE``` method deletes a note by the given note id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` Success code @@ -336,7 +336,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK","message": ""} @@ -351,7 +351,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method clones a note by the given id and create a new note using the given name + This ```POST``` method clones a note by the given id and create a new note using the given name or default name if none given. If what you want to copy is a certain version of note, you need to specify the revisionId. The body field of the returned JSON contains the new note id. @@ -359,7 +359,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]``` Success code @@ -371,7 +371,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json { @@ -383,7 +383,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -402,12 +402,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method renames a note by the given id using the given name. + This ```PUT``` method renames a note by the given id using the given name. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/rename``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/rename``` Success code @@ -423,7 +423,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json {"name": "new name of a note"} @@ -432,7 +432,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status":"OK"} @@ -448,12 +448,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method exports a note by the given id and generates a JSON + This ```GET``` method exports a note by the given id and generates a JSON URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[noteId]``` Success code @@ -463,8 +463,9 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Fail code 500 - sample JSON response - + + sample JSON response + ```json { @@ -503,12 +504,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method imports a note from the note JSON input + This ```POST``` method imports a note from the note JSON input URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/import``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/import``` Success code @@ -520,7 +521,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json @@ -554,7 +555,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -572,7 +573,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - + This ```POST``` method runs all paragraphs in the given note id.
    If you can not find Note id 404 returns. If there is a problem with the interpreter returns a 412 error. @@ -580,7 +581,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` Success code @@ -592,7 +593,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -601,7 +602,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON error response - + ```json { @@ -628,12 +629,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```DELETE``` method stops all paragraphs in the given note id. + This ```DELETE``` method stops all paragraphs in the given note id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]``` Success code @@ -645,7 +646,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status":"OK"} @@ -660,12 +661,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method clear all paragraph results from note of given id. + This ```PUT``` method clear all paragraph results from note of given id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/clear``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/clear``` Success code @@ -685,14 +686,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} ``` - @@ -703,13 +703,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method create a new paragraph using JSON payload. + This ```POST``` method create a new paragraph using JSON payload. The body field of the returned JSON contain the new paragraph id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph``` Success code @@ -721,7 +721,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (add to the last) - + ```json { @@ -733,7 +733,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (add to specific index) - + ```json { @@ -746,7 +746,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (providing paragraph config) - + ```json { @@ -770,7 +770,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -789,13 +789,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method retrieves an existing paragraph's information using the given id. + This ```GET``` method retrieves an existing paragraph's information using the given id. The body field of the returned JSON contain information about paragraph. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` Success code @@ -807,7 +807,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -865,13 +865,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets the status of a single paragraph by the given note and paragraph id. + This ```GET``` method gets the status of a single paragraph by the given note and paragraph id. The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` Success code @@ -883,7 +883,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -907,12 +907,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method update paragraph contents using given id, e.g. {"text": "hello"} + This ```PUT``` method update paragraph contents using given id, e.g. {"text": "hello"} URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` Success code @@ -936,7 +936,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json { @@ -948,7 +948,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -966,12 +966,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method update paragraph configuration using given id so that user can change paragraph setting such as graph type, show or hide editor/result and paragraph size, etc. You can update certain fields you want, for example you can update colWidth field only by sending request with payload {"colWidth": 12.0}. + This ```PUT``` method update paragraph configuration using given id so that user can change paragraph setting such as graph type, show or hide editor/result and paragraph size, etc. You can update certain fields you want, for example you can update colWidth field only by sending request with payload {"colWidth": 12.0}. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/config``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/config``` Success code @@ -995,7 +995,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json { @@ -1030,7 +1030,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1101,12 +1101,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```DELETE``` method deletes a paragraph by the given note and paragraph id. + This ```DELETE``` method deletes a paragraph by the given note and paragraph id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]``` Success code @@ -1118,7 +1118,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK","message": ""} @@ -1133,12 +1133,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method runs the paragraph asynchronously by given note and paragraph id. This API always return SUCCESS even if the execution of the paragraph fails later because the API is asynchronous + This ```POST``` method runs the paragraph asynchronously by given note and paragraph id. This API always return SUCCESS even if the execution of the paragraph fails later because the API is asynchronous URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` Success code @@ -1150,7 +1150,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (optional, only needed when if you want to update dynamic form's value) - + ```json { @@ -1165,7 +1165,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -1180,12 +1180,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method runs the paragraph synchronously by given note and paragraph id. This API can return SUCCESS or ERROR depending on the outcome of the paragraph execution + This ```POST``` method runs the paragraph synchronously by given note and paragraph id. This API can return SUCCESS or ERROR depending on the outcome of the paragraph execution URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[noteId]/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[noteId]/[paragraphId]``` Success code @@ -1197,7 +1197,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input (optional, only needed when if you want to update dynamic form's value) - + ```json { @@ -1212,7 +1212,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -1221,7 +1221,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON error - + ```json { @@ -1244,12 +1244,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```DELETE``` method stops the paragraph by given note and paragraph id. + This ```DELETE``` method stops the paragraph by given note and paragraph id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[noteId]/[paragraphId]``` Success code @@ -1261,7 +1261,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -1276,12 +1276,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method moves a paragraph to the specific index (order) from the note. + This ```POST``` method moves a paragraph to the specific index (order) from the note. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/move/[newIndex]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/paragraph/[paragraphId]/move/[newIndex]``` Success code @@ -1293,7 +1293,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK","message": ""} @@ -1308,12 +1308,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - ```GET``` request will return list of matching paragraphs + ```GET``` request will return list of matching paragraphs URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]``` Success code @@ -1325,7 +1325,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Sample JSON response - + ```json { @@ -1351,13 +1351,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method adds cron job by the given note id. + This ```POST``` method adds cron job by the given note id. Default value of ```releaseResource``` is ```false```. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` Success code @@ -1369,7 +1369,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json {"cron": "cron expression of note", "releaseResource": "false"} @@ -1378,7 +1378,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -1394,12 +1394,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```DELETE``` method removes cron job by the given note id. + This ```DELETE``` method removes cron job by the given note id. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` Success code @@ -1411,7 +1411,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json {"status": "OK"} @@ -1427,13 +1427,13 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets cron job expression of given note id. + This ```GET``` method gets cron job expression of given note id. The body field of the returned JSON contains the cron expression and ```releaseResource``` flag. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[noteId]``` Success code @@ -1445,7 +1445,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1470,12 +1470,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets a note authorization information. + This ```GET``` method gets a note authorization information. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions``` Success code @@ -1491,7 +1491,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1523,12 +1523,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method set note authorization information. + This ```PUT``` method set note authorization information. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/permissions``` Success code @@ -1544,7 +1544,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json { @@ -1566,7 +1566,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1588,12 +1588,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets the revisions of a note. + This ```GET``` method gets the revisions of a note. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision``` Success code @@ -1605,7 +1605,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1634,12 +1634,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```POST``` method saves a revision for a note. + This ```POST``` method saves a revision for a note. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision``` Success code @@ -1655,7 +1655,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON input - + ```json { @@ -1666,7 +1666,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1683,12 +1683,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```GET``` method gets a revision of a note. + This ```GET``` method gets a revision of a note. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision/{revisionId}``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision/{revisionId}``` Success code @@ -1700,7 +1700,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1787,12 +1787,12 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, Description - This ```PUT``` method reverts a note to a specified version + This ```PUT``` method reverts a note to a specified version URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision/{revisionId}``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook/[noteId]/revision/{revisionId}``` Success code @@ -1804,7 +1804,7 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, sample JSON response - + ```json { @@ -1815,4 +1815,3 @@ Notebooks REST API supports the following operations: List, Create, Get, Delete, - diff --git a/docs/usage/rest_api/notebook_repository.md b/docs/usage/rest_api/notebook_repository.md index 2536d61b253..9bba0e336d3 100644 --- a/docs/usage/rest_api/notebook_repository.md +++ b/docs/usage/rest_api/notebook_repository.md @@ -38,11 +38,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns all the available notebook repositories. + This ```GET``` method returns all the available notebook repositories. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories``` Success code @@ -54,7 +54,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -88,11 +88,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method triggers reloading and broadcasting of the note list. + This ```GET``` method triggers reloading and broadcasting of the note list. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories/reload``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories/reload``` Success code @@ -104,7 +104,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { @@ -124,11 +124,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```PUT``` method updates a specific notebook repository. + This ```PUT``` method updates a specific notebook repository. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories``` + ```http://[zeppelin-server]:[zeppelin-port]/api/notebook-repositories``` Success code @@ -144,7 +144,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON input - + ```json { @@ -158,7 +158,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Sample JSON response - + ```json { diff --git a/docs/usage/rest_api/zeppelin_server.md b/docs/usage/rest_api/zeppelin_server.md index 67ae96c0339..562db52a6dd 100644 --- a/docs/usage/rest_api/zeppelin_server.md +++ b/docs/usage/rest_api/zeppelin_server.md @@ -38,11 +38,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```GET``` method returns Zeppelin version + This ```GET``` method returns Zeppelin version URL - ```http://[zeppelin-server]:[zeppelin-port]/api/version``` + ```http://[zeppelin-server]:[zeppelin-port]/api/version``` Success code @@ -54,7 +54,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample JSON response - + ```json { @@ -78,11 +78,11 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple Description - This ```PUT``` method is used to update the root logger's log level of the server. + This ```PUT``` method is used to update the root logger's log level of the server. URL - ```http://[zeppelin-server]:[zeppelin-port]/api/log/level/``` + ```http://[zeppelin-server]:[zeppelin-port]/api/log/level/``` Success code @@ -94,7 +94,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample JSON response - + ```json { @@ -105,7 +105,7 @@ If you work with Apache Zeppelin and find a need for an additional REST API, ple sample error JSON response - + ```json { From 405d9957dcddd4d6e1b19e4c775c1c68bbd5ad11 Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Wed, 12 Aug 2026 17:53:10 +0900 Subject: [PATCH 4/6] [ZEPPELIN-6432] Fix placeholder rendering in docs --- .../helium/writing_visualization_transformation.md | 2 +- docs/quickstart/docker.md | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/development/helium/writing_visualization_transformation.md b/docs/development/helium/writing_visualization_transformation.md index 744453a8cc7..273e3c727dc 100644 --- a/docs/development/helium/writing_visualization_transformation.md +++ b/docs/development/helium/writing_visualization_transformation.md @@ -201,7 +201,7 @@ Here is an example. |`widget` | `checkbox` | Use [checkbox](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox) widget. | |`widget` | `textarea` | Use [textarea](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) widget. | |`widget` | `option` | Use [select + option](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) widget. This parameter should have `optionValues` field as well. | -|`optionValues` | (Array<string>) | Available option values used with the `option` widget | +|`optionValues` | `(Array)` | Available option values used with the `option` widget |
    diff --git a/docs/quickstart/docker.md b/docs/quickstart/docker.md index 3f8d7fea0c6..99767a95445 100644 --- a/docs/quickstart/docker.md +++ b/docs/quickstart/docker.md @@ -165,8 +165,8 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z 1. Configuring in the zeppelin-env.sh Because there are only spark binary files in the interpreter image, no spark conf files are included. - The configuration file in the `spark-<version>/conf/` local to the zeppelin service needs to be uploaded to the `/spark/conf/` directory in the spark interpreter container. - So you need to setting `export SPARK_CONF_DIR=/spark-<version>-path/conf/` in the `zeppelin-env.sh` file. + The configuration file in the `spark-/conf/` local to the zeppelin service needs to be uploaded to the `/spark/conf/` directory in the spark interpreter container. + So you need to setting `export SPARK_CONF_DIR=/spark--path/conf/` in the `zeppelin-env.sh` file. 2. Configuring in the spark Properties @@ -174,7 +174,7 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z | properties name | Value | Description | | ----- | ----- | ----- | - | SPARK\_CONF_DIR | /spark-<version>-path.../conf/ | Spark-<version>-path/conf/ path local on the zeppelin service | + | SPARK\_CONF_DIR | `/spark--path.../conf/` | `Spark--path/conf/` path local on the zeppelin service | #### HADOOP\_CONF_DIR @@ -182,8 +182,8 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z 1. Configuring in the zeppelin-env.sh Because there are only spark binary files in the interpreter image, no configuration files are included. - The configuration file in the `hadoop-<version>/etc/hadoop` local to the zeppelin service needs to be uploaded to the spark interpreter container. - So you need to setting `export HADOOP_CONF_DIR=hadoop-<version>-path/etc/hadoop` in the `zeppelin-env.sh` file. + The configuration file in the `hadoop-/etc/hadoop` local to the zeppelin service needs to be uploaded to the spark interpreter container. + So you need to setting `export HADOOP_CONF_DIR=hadoop--path/etc/hadoop` in the `zeppelin-env.sh` file. 2. Configuring in the spark Properties @@ -191,7 +191,7 @@ Supports all running modes of `local[*]`, `yarn-client`, and `yarn-cluster` of z | properties name | Value | Description | | ----- | ----- | ----- | - | HADOOP\_CONF_DIR | hadoop-<version>-path/etc/hadoop | hadoop-<version>-path/etc/hadoop path local on the zeppelin service | + | HADOOP\_CONF_DIR | `hadoop--path/etc/hadoop` | `hadoop--path/etc/hadoop` path local on the zeppelin service | #### Accessing Spark UI (or Service running in interpreter container) @@ -215,4 +215,4 @@ Zeppelin can run locally (such as inside your IDE in debug mode) and able to run | Configuration variable | Value | Description | | ----- | ----- | ----- | | `ZEPPELIN_RUN_MODE` | `docker` | Make Zeppelin run interpreter on Docker | -| `ZEPPELIN_DOCKER_CONTAINER_IMAGE` | `<image>:<version>` | Zeppelin interpreter docker image to use | +| `ZEPPELIN_DOCKER_CONTAINER_IMAGE` | `:` | Zeppelin interpreter docker image to use | From 36b9825fc788aaea1cccec8860b225f747710451 Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Wed, 12 Aug 2026 22:45:54 +0900 Subject: [PATCH 5/6] [ZEPPELIN-6432] Run docs containers as current user --- docs/AGENTS.md | 14 ++++++++++++++ docs/README.md | 11 ++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/AGENTS.md b/docs/AGENTS.md index a449ac52550..4c80f860062 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -60,6 +60,10 @@ Preview with Docker: ```bash cd docs docker run --rm -it \ + --user "$(id -u):$(id -g)" \ + -e HOME=/tmp \ + -e BUNDLE_PATH=/tmp/bundle \ + -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ -p '4000:4000' \ @@ -69,12 +73,19 @@ docker run --rm -it \ Open `http://localhost:4000`. The preview intentionally runs without `--safe`, so links are rooted at `/` instead of the production version path. +The container uses the current user's UID and GID so generated files remain +owned by that user on the host. Bundler writes its disposable files under +`/tmp` inside the container. Build the publication artifact with Docker: ```bash cd docs docker run --rm \ + --user "$(id -u):$(id -g)" \ + -e HOME=/tmp \ + -e BUNDLE_PATH=/tmp/bundle \ + -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ ruby:4.0.6 \ @@ -89,6 +100,9 @@ When `Gemfile` changes, update `Gemfile.lock` inside Docker: ```bash cd docs docker run --rm \ + --user "$(id -u):$(id -g)" \ + -e HOME=/tmp \ + -e BUNDLE_PATH=/tmp/bundle \ -v "$PWD:/docs" \ -w /docs \ ruby:4.0.6 \ diff --git a/docs/README.md b/docs/README.md index 5b8762a73bc..79b8cd741b6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,6 +18,10 @@ From `$ZEPPELIN_HOME/docs`, run: ```bash docker run --rm -it \ + --user "$(id -u):$(id -g)" \ + -e HOME=/tmp \ + -e BUNDLE_PATH=/tmp/bundle \ + -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ -p '4000:4000' \ @@ -26,7 +30,8 @@ docker run --rm -it \ ``` Jekyll starts at `http://localhost:4000` and watches the `docs/` sources for -updates. +updates. The container runs with the current user's UID and GID so generated +files are not owned by `root` on the host. ## Contribute to Zeppelin documentation If you wish to help us and contribute to Zeppelin Documentation, please look at [Zeppelin Documentation's contribution guideline](https://zeppelin.apache.org/contribution/contributions.html). @@ -42,6 +47,10 @@ From `$ZEPPELIN_HOME/docs`, run: ```bash docker run --rm \ + --user "$(id -u):$(id -g)" \ + -e HOME=/tmp \ + -e BUNDLE_PATH=/tmp/bundle \ + -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ ruby:4.0.6 \ From c375d15bc658415f82354a7329e02ce3bfbdfc26 Mon Sep 17 00:00:00 2001 From: Jongyoul Lee Date: Wed, 12 Aug 2026 22:54:56 +0900 Subject: [PATCH 6/6] [ZEPPELIN-6432] Use the Ruby image bundle directory --- docs/AGENTS.md | 13 +++++-------- docs/README.md | 6 ++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/docs/AGENTS.md b/docs/AGENTS.md index 4c80f860062..7f2b05cef5e 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -61,8 +61,7 @@ Preview with Docker: cd docs docker run --rm -it \ --user "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -e BUNDLE_PATH=/tmp/bundle \ + -e HOME=/usr/local/bundle \ -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ @@ -74,8 +73,8 @@ docker run --rm -it \ Open `http://localhost:4000`. The preview intentionally runs without `--safe`, so links are rooted at `/` instead of the production version path. The container uses the current user's UID and GID so generated files remain -owned by that user on the host. Bundler writes its disposable files under -`/tmp` inside the container. +owned by that user on the host. The Ruby image's writable gem directory is +also used as the container home for that user. Build the publication artifact with Docker: @@ -83,8 +82,7 @@ Build the publication artifact with Docker: cd docs docker run --rm \ --user "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -e BUNDLE_PATH=/tmp/bundle \ + -e HOME=/usr/local/bundle \ -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ @@ -101,8 +99,7 @@ When `Gemfile` changes, update `Gemfile.lock` inside Docker: cd docs docker run --rm \ --user "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -e BUNDLE_PATH=/tmp/bundle \ + -e HOME=/usr/local/bundle \ -v "$PWD:/docs" \ -w /docs \ ruby:4.0.6 \ diff --git a/docs/README.md b/docs/README.md index 79b8cd741b6..a14a176e442 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,8 +19,7 @@ From `$ZEPPELIN_HOME/docs`, run: ```bash docker run --rm -it \ --user "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -e BUNDLE_PATH=/tmp/bundle \ + -e HOME=/usr/local/bundle \ -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \ @@ -48,8 +47,7 @@ From `$ZEPPELIN_HOME/docs`, run: ```bash docker run --rm \ --user "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -e BUNDLE_PATH=/tmp/bundle \ + -e HOME=/usr/local/bundle \ -e BUNDLE_FROZEN=true \ -v "$PWD:/docs" \ -w /docs \