(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{140:function(e,a,r){"use strict";r.r(a),r.d(a,"frontMatter",(function(){return s})),r.d(a,"metadata",(function(){return b})),r.d(a,"toc",(function(){return c})),r.d(a,"default",(function(){return o}));var t=r(3),n=r(7),i=(r(0),r(144)),s={title:"Download Apache Submarine"},b={unversionedId:"download",id:"download",isDocsHomePage:!1,title:"Download Apache Submarine",description:"\x3c!--",source:"@site/docs/download.md",slug:"/download",permalink:"/docs/download",editUrl:"https://github.com/apache/submarine/edit/master/website/docs/download.md",version:"current"},c=[{value:"Verify the integrity of the files",id:"verify-the-integrity-of-the-files",children:[]},{value:"Old releases",id:"old-releases",children:[]}],p={toc:c};function o(e){var a=e.components,r=Object(n.a)(e,["components"]);return Object(i.b)("wrapper",Object(t.a)({},p,r,{components:a,mdxType:"MDXLayout"}),Object(i.b)("p",null,"The latest release of Apache Submarine is ",Object(i.b)("inlineCode",{parentName:"p"},"0.5.0"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Apache Submarine ",Object(i.b)("inlineCode",{parentName:"li"},"0.5.0")," released on Dec 17, 2020 (",Object(i.b)("a",{parentName:"li",href:"http://submarine.apache.org/releases/submarine-release-0.5.0.html"},"release notes"),") (",Object(i.b)("a",{parentName:"li",href:"https://github.com/apache/submarine/tree/rel/release-0.5.0"},"git tag"),")",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Binary package:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.5.0/submarine-dist-0.5.0-hadoop-2.9.tar.gz"},"submarine-dist-0.5.0-hadoop-2.9.tar.gz")," (505 MB, ",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.5.0/submarine-dist-0.5.0-hadoop-2.9.tar.gz.sha512"},"checksum"),", ",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.5.0/submarine-dist-0.5.0-hadoop-2.9.tar.gz.asc"},"signature"),")"),Object(i.b)("li",{parentName:"ul"},"Source:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.5.0/submarine-dist-0.5.0-src.tar.gz"},"submarine-dist-0.5.0-src.tar.gz")," (5.0 MB, ",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.5.0/submarine-dist-0.5.0-src.tar.gz.sha512"},"checksum"),", ",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.5.0/submarine-dist-0.5.0-src.tar.gz.asc"},"signature"),"))"),Object(i.b)("li",{parentName:"ul"},"Docker images:",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},Object(i.b)("a",{parentName:"li",href:"https://hub.docker.com/layers/apache/submarine/mini-0.5.0/images/sha256-e3248c8c6336b245539028043783b91135eaffe9302dec05fe13571a0f2902a6"},"mini-submarine")," ",Object(i.b)("inlineCode",{parentName:"li"},"docker pull apache/submarine:mini-0.5.0")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("a",{parentName:"li",href:"https://hub.docker.com/layers/apache/submarine/server-0.5.0/images/sha256-1805df8fd8e5274d16be8cdf39900d8576119c0caac7598db29990ebe138bf5c"},"submarine server")," ",Object(i.b)("inlineCode",{parentName:"li"},"docker pull apache/submarine:server-0.5.0")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("a",{parentName:"li",href:"https://hub.docker.com/layers/apache/submarine/database-0.5.0/images/sha256-073889e773c1b44cef9f518dc2fc468ebc420200f6087e2a943438677dadc9e5"},"submarine database")," ",Object(i.b)("inlineCode",{parentName:"li"},"docker pull apache/submarine:database-0.5.0")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("a",{parentName:"li",href:"https://hub.docker.com/layers/apache/submarine/jupyter-notebook-0.5.0/images/sha256-f3cc2510c208b752ef4be7b383ee8f2325e4fc538696078bdb604d62fa47e4be"},"submarine jupyter-notebook")," ",Object(i.b)("inlineCode",{parentName:"li"},"docker pull apache/submarine:jupyter-notebook-0.5.0")))),Object(i.b)("li",{parentName:"ul"},"SDK:",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},Object(i.b)("a",{parentName:"li",href:"https://pypi.org/project/apache-submarine/0.5.0/"},"PySubmarine")," ",Object(i.b)("inlineCode",{parentName:"li"},"pip install apache-submarine==0.5.0"))))))),Object(i.b)("h2",{id:"verify-the-integrity-of-the-files"},"Verify the integrity of the files"),Object(i.b)("p",null,"It is essential that you ",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/info/verification.html"},"verify")," the integrity of the downloaded files using the PGP or MD5 signatures. This signature should be matched against the ",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dist/submarine/KEYS"},"KEYS")," file."),Object(i.b)("pre",null,Object(i.b)("code",{parentName:"pre"},"gpg --import KEYS\ngpg --verify submarine-dist-X.Y.Z-src.tar.gz.asc\n")),Object(i.b)("h2",{id:"old-releases"},"Old releases"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Apache Submarine 0.4.0 released on Jul 05, 2020 (",Object(i.b)("a",{parentName:"p",href:"http://submarine.apache.org/releases/submarine-release-0.4.0.html"},"release notes"),") (",Object(i.b)("a",{parentName:"p",href:"https://github.com/apache/submarine/tree/rel/release-0.4.0"},"git tag"),")"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Binary package with submarine:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.4.0/submarine-dist-0.4.0-hadoop-2.9.tar.gz"},"submarine-dist-0.4.0-hadoop-2.9.tar.gz")," (550 MB,\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.4.0/submarine-dist-0.4.0-hadoop-2.9.tar.gz.sha512"},"checksum"),",\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.4.0/submarine-dist-0.4.0-hadoop-2.9.tar.gz.asc"},"signature"),")"),Object(i.b)("li",{parentName:"ul"},"Source:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.4.0/submarine-dist-0.4.0-src.tar.gz"},"submarine-dist-0.4.0-src.tar.gz")," (6 MB,\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.4.0/submarine-dist-0.4.0-src.tar.gz.sha512"},"checksum"),",\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.4.0/submarine-dist-0.4.0-src.tar.gz.asc"},"signature"),")"),Object(i.b)("li",{parentName:"ul"},"Docker images:\n",Object(i.b)("em",{parentName:"li"},Object(i.b)("a",{parentName:"em",href:"https://hub.docker.com/layers/apache/submarine/mini-0.4.0/images/sha256-a8e7bd98f1f0325223d68e0ba64fd48bd56ee91736461d289945e70ad138e08f"},"mini-submarine"))," ",Object(i.b)("a",{parentName:"li",href:"https://github.com/apache/submarine/blob/rel/release-0.4.0/dev-support/mini-submarine/README.md#mini-submarine"},"(guide)")))),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Apache Submarine 0.3.0 released on Feb 01, 2020 (",Object(i.b)("a",{parentName:"p",href:"http://submarine.apache.org/releases/submarine-release-0.3.0.html"},"release notes"),") (",Object(i.b)("a",{parentName:"p",href:"https://github.com/apache/submarine/tree/rel/release-0.3.0"},"git tag"),")"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Binary package with submarine:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.3.0/submarine-dist-0.3.0-hadoop-2.9.tar.gz"},"submarine-dist-0.3.0-hadoop-2.9.tar.gz")," (550 MB,\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.3.0/submarine-dist-0.3.0-hadoop-2.9.tar.gz.sha512"},"checksum"),",\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.3.0/submarine-dist-0.3.0-hadoop-2.9.tar.gz.asc"},"signature"),")"),Object(i.b)("li",{parentName:"ul"},"Source:\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dyn/closer.cgi/submarine/submarine-0.3.0/submarine-dist-0.3.0-src.tar.gz"},"submarine-dist-0.3.0-src.tar.gz")," (6 MB,\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.3.0/submarine-dist-0.3.0-src.tar.gz.sha512"},"checksum"),",\n",Object(i.b)("a",{parentName:"li",href:"https://www.apache.org/dist/submarine/submarine-0.3.0/submarine-dist-0.3.0-src.tar.gz.asc"},"signature"),")"),Object(i.b)("li",{parentName:"ul"},"Docker images:\n",Object(i.b)("em",{parentName:"li"},Object(i.b)("a",{parentName:"em",href:"https://hub.docker.com/layers/apache/submarine/mini-0.3.0/images/sha256-3dd49054bf8a91521f5743c675278d626a5fa568e91651c67867b8ba6ceba340"},"mini-submarine"))," ",Object(i.b)("a",{parentName:"li",href:"https://github.com/apache/submarine/blob/rel/release-0.3.0/dev-support/mini-submarine/README.md#mini-submarine"},"(guide)")))),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Apache Submarine 0.2.0 released on Jul 2, 2019"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Binary package with submarine:\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dyn/closer.cgi/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0.tar.gz"},"hadoop-submarine-0.2.0.tar.gz")," (111 MB,\n",Object(i.b)("a",{parentName:"p",href:"https://dist.apache.org/repos/dist/release/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0.tar.gz.mds"},"checksum"),",\n",Object(i.b)("a",{parentName:"p",href:"https://dist.apache.org/repos/dist/release/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0.tar.gz.asc"},"signature"),",\n",Object(i.b)("a",{parentName:"p",href:"http://hadoop.apache.org/submarine/release/0.2.0/"},"Announcement"),")")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Source:\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dyn/closer.cgi/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0-src.tar.gz"},"hadoop-submarine-0.2.0-src.tar.gz")," (1.4 MB,\n",Object(i.b)("a",{parentName:"p",href:"https://dist.apache.org/repos/dist/release/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0-src.tar.gz.mds"},"checksum"),",\n",Object(i.b)("a",{parentName:"p",href:"https://dist.apache.org/repos/dist/release/hadoop/submarine/submarine-0.2.0/hadoop-submarine-0.2.0-src.tar.gz.asc"},"signature"),")"))))),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Apache Submarine 0.1.0 released on Jan 16, 2019"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Binary package with submarine:\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz"},"submarine-0.2.0-bin-all.tgz")," (97 MB,\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz.mds"},"checksum"),",\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz.asc"},"signature"),",\n",Object(i.b)("a",{parentName:"p",href:"https://hadoop.apache.org/docs/r3.2.0/index.html"},"Announcement"),")")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Source:\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.0/hadoop-3.2.0-src.tar.gz"},"submarine-hadoop-3.2.0-src.tar.gz")," (1.1 MB,\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0-src.tar.gz.mds"},"checksum"),",\n",Object(i.b)("a",{parentName:"p",href:"https://www.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0-src.tar.gz.asc"},"signature"),")"))))))}o.isMDXComponent=!0},144:function(e,a,r){"use strict";r.d(a,"a",(function(){return m})),r.d(a,"b",(function(){return l}));var t=r(0),n=r.n(t);function i(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}function s(e,a){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),r.push.apply(r,t)}return r}function b(e){for(var a=1;a<arguments.length;a++){var r=null!=arguments[a]?arguments[a]:{};a%2?s(Object(r),!0).forEach((function(a){i(e,a,r[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))}))}return e}function c(e,a){if(null==e)return{};var r,t,n=function(e,a){if(null==e)return{};var r,t,n={},i=Object.keys(e);for(t=0;t<i.length;t++)r=i[t],a.indexOf(r)>=0||(n[r]=e[r]);return n}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)r=i[t],a.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=n.a.createContext({}),o=function(e){var a=n.a.useContext(p),r=a;return e&&(r="function"==typeof e?e(a):b(b({},a),e)),r},m=function(e){var a=o(e.components);return n.a.createElement(p.Provider,{value:a},e.children)},u={inlineCode:"code",wrapper:function(e){var a=e.children;return n.a.createElement(n.a.Fragment,{},a)}},h=n.a.forwardRef((function(e,a){var r=e.components,t=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),m=o(r),h=t,l=m["".concat(s,".").concat(h)]||m[h]||u[h]||i;return r?n.a.createElement(l,b(b({ref:a},p),{},{components:r})):n.a.createElement(l,b({ref:a},p))}));function l(e,a){var r=arguments,t=a&&a.mdxType;if("string"==typeof e||t){var i=r.length,s=new Array(i);s[0]=h;var b={};for(var c in a)hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.originalType=e,b.mdxType="string"==typeof e?e:t,s[1]=b;for(var p=2;p<i;p++)s[p]=r[p];return n.a.createElement.apply(null,s)}return n.a.createElement.apply(null,r)}h.displayName="MDXCreateElement"}}]);