{"version":3,"sources":["/home/madhan/Apache/git/atlas/docs/target/src/documents/Setup/BuildInstruction.md","/home/madhan/Apache/git/atlas/docs/target/theme/styles/styled-colors.js"],"names":["layoutProps","MDXContent","components","props","mdxType","parentName","wrapLines","language","style","theme","isMDXComponent","dark","hljs","color"],"mappings":"ilBAWMA,EAAc,GAIL,SAASC,EAAW,GAG/B,IAFFC,EAAU,EAAVA,WACGC,EAAK,iBAER,OAAO,cALS,UAKC,iBAAKH,EAAiBG,EAAK,CAAED,WAAYA,EAAYE,QAAQ,cAE5E,oBACE,GAAM,qCAAmC,sCAE3C,oBACE,GAAM,yBAAuB,yBAE/B,mHAAgG,mBAAGC,WAAW,IAC1G,KAAQ,eAAa,aACH,qEAEtB,cAAC,IAAiB,CAACC,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,gJAMxG,oBACE,GAAM,0BAAwB,0BAEhC,sLACA,cAAC,IAAiB,CAACE,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,wCAGxG,wBACE,oBAAIC,WAAW,MAAI,SACjB,oBAAIA,WAAW,MACb,oBAAIA,WAAW,MAAI,iEACnB,oBAAIA,WAAW,MAAI,oEAAsE,oBAAIA,WAAW,MAAI,cAAoB,2DAItI,qMACA,wBACE,oBAAIA,WAAW,MAAI,yFAA2F,mBAAGA,WAAW,KACxH,KAAQ,mBAAiB,iBACH,cAC1B,oBAAIA,WAAW,MAAI,iGAAmG,mBAAGA,WAAW,KAChI,KAAQ,mBAAiB,iBACH,cAC1B,oBAAIA,WAAW,MAAI,uHAAyH,mBAAGA,WAAW,KACtJ,KAAQ,mBAAiB,iBACH,cAC1B,oBAAIA,WAAW,MAAI,yEAA2E,mBAAGA,WAAW,KACxG,KAAQ,mBAAiB,iBACH,eAE5B,oBACE,GAAM,kEAAgE,mEAExE,gKACA,cAAC,IAAiB,CAACC,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,4DAGxG,yNACA,gCACE,mBAAGC,WAAW,cAAY,+GAE5B,oBACE,GAAM,uDAAqD,wDAE7D,wJACA,cAAC,IAAiB,CAACC,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,sDAGxG,4MACA,gCACE,mBAAGC,WAAW,cAAY,+GAE5B,oBACE,GAAM,sEAAoE,uEAE5E,wKACA,cAAC,IAAiB,CAACC,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,oDAGxG,0NACA,gCACE,mBAAGC,WAAW,cAAY,+GAE5B,oBACE,GAAM,wBAAsB,wBAE9B,qGACA,cAAC,IAAiB,CAACC,WAAW,EAAMC,SAAS,aAAaC,MAAOC,IAAYL,QAAQ,qBAAmB,gbAU3G,6LAEDH,EAAWS,gBAAiB,G,+DCpH5B,iFAqBAC,IAAKC,KAAKC,MAAQ,UACHF,MAAI","file":"static/js/documents-setup-build-instruction.bf138514.js","sourcesContent":["\nimport React from 'react'\nimport { mdx } from '@mdx-js/react'\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\nimport  themen  from 'theme/styles/styled-colors';\nimport  * as theme  from 'react-syntax-highlighter/dist/esm/styles/hljs';\nimport SyntaxHighlighter from 'react-syntax-highlighter';\n\n\nconst layoutProps = {\n  \n};\nconst MDXLayout = \"wrapper\"\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n    <h2 {...{\n      \"id\": \"building--installing-apache-atlas\"\n    }}>{`Building & Installing Apache Atlas`}</h2>\n    <h3 {...{\n      \"id\": \"building-apache-atlas\"\n    }}>{`Building Apache Atlas`}</h3>\n    <p>{`Download Apache Atlas 1.0.0 release sources, apache-atlas-1.0.0-sources.tar.gz, from the `}<a parentName=\"p\" {...{\n        \"href\": \"#/Downloads\"\n      }}>{`downloads`}</a>{` page.\nThen follow the instructions below to build Apache Atlas.`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\n      {`tar xvfz apache-atlas-1.0.0-sources.tar.gz\ncd apache-atlas-sources-1.0.0/\nexport MAVEN_OPTS=\"-Xms2g -Xmx2g\"\nmvn clean -DskipTests install`}\n    </SyntaxHighlighter>\n    <h3 {...{\n      \"id\": \"packaging-apache-atlas\"\n    }}>{`Packaging Apache Atlas`}</h3>\n    <p>{`To create Apache Atlas package for deployment in an environment having functional Apache HBase and Apache Solr instances, build with the following command:`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\nmvn clean -DskipTests package -Pdist\n    </SyntaxHighlighter>\n    <ul>\n      <li parentName=\"ul\">{`NOTES:`}\n        <ul parentName=\"li\">\n          <li parentName=\"ul\">{`Remove option '-DskipTests' to run unit and integration tests`}</li>\n          <li parentName=\"ul\">{`To build a distribution without minified js,css file, build with `}<em parentName=\"li\">{`skipMinify`}</em>{` profile. By default, js and css files are minified.`}</li>\n        </ul>\n      </li>\n    </ul>\n    <p>{`Above will build Apache Atlas for an environment having functional HBase and Solr instances. Apache Atlas needs to be setup with the following to run in this environment:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Configure atlas.graph.storage.hostname (see \"Graph persistence engine - HBase\" in the `}<a parentName=\"li\" {...{\n          \"href\": \"#/Configuration\"\n        }}>{`Configuration`}</a>{` section).`}</li>\n      <li parentName=\"ul\">{`Configure atlas.graph.index.search.solr.zookeeper-url (see \"Graph Search Index - Solr\" in the `}<a parentName=\"li\" {...{\n          \"href\": \"#/Configuration\"\n        }}>{`Configuration`}</a>{` section).`}</li>\n      <li parentName=\"ul\">{`Set HBASE_CONF_DIR to point to a valid Apache HBase config directory (see \"Graph persistence engine - HBase\" in the `}<a parentName=\"li\" {...{\n          \"href\": \"#/Configuration\"\n        }}>{`Configuration`}</a>{` section).`}</li>\n      <li parentName=\"ul\">{`Create indices in Apache Solr (see \"Graph Search Index - Solr\" in the `}<a parentName=\"li\" {...{\n          \"href\": \"#/Configuration\"\n        }}>{`Configuration`}</a>{` section).`}</li>\n    </ul>\n    <h3 {...{\n      \"id\": \"packaging-apache-atlas-with-embedded-apache-hbase--apache-solr\"\n    }}>{`Packaging Apache Atlas with embedded Apache HBase & Apache Solr`}</h3>\n    <p>{`To create Apache Atlas package that includes Apache HBase and Apache Solr, build with the embedded-hbase-solr profile as shown below:`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\n      {`mvn clean -DskipTests package -Pdist,embedded-hbase-solr`}\n    </SyntaxHighlighter>\n    <p>{`Using the embedded-hbase-solr profile will configure Apache Atlas so that an Apache HBase instance and an Apache Solr instance will be started and stopped along with the Apache Atlas server.`}</p>\n    <blockquote>\n      <p parentName=\"blockquote\">{`NOTE: This distribution profile is only intended to be used for single node development not in production.`}</p>\n    </blockquote>\n    <h3 {...{\n      \"id\": \"packaging-apache-atlas-with-berkeleydb--apache-solr\"\n    }}>{`Packaging Apache Atlas with BerkeleyDB & Apache Solr`}</h3>\n    <p>{`To create Apache Atlas package that includes BerkeleyDB and Apache Solr, build with the berkeley-solr profile as shown below:`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\n      {`mvn clean -DskipTests package -Pdist,berkeley-solr`}\n    </SyntaxHighlighter>\n    <p>{`Using the berkeley-solr profile will configure Apache Atlas so that instances of Apache Solr and Apache Zookeeper will be started and stopped along with the Apache Atlas server.`}</p>\n    <blockquote>\n      <p parentName=\"blockquote\">{`NOTE: This distribution profile is only intended to be used for single node development not in production.`}</p>\n    </blockquote>\n    <h3 {...{\n      \"id\": \"packaging-apache-atlas-with-embedded-apache-cassandra--apache-solr\"\n    }}>{`Packaging Apache Atlas with embedded Apache Cassandra & Apache Solr`}</h3>\n    <p>{`To create Apache Atlas package that includes Apache Cassandra and Apache Solr, build with the embedded-cassandra-solr profile as shown below:`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\n      {`mvn clean package -Pdist,embedded-cassandra-solr`}\n    </SyntaxHighlighter>\n    <p>{`Using the embedded-cassandra-solr profile will configure Apache Atlas so that an Apache Cassandra instance and an Apache Solr instance will be started and stopped along with the Atlas server.`}</p>\n    <blockquote>\n      <p parentName=\"blockquote\">{`NOTE: This distribution profile is only intended to be used for single node development not in production.`}</p>\n    </blockquote>\n    <h3 {...{\n      \"id\": \"apache-atlas-package\"\n    }}>{`Apache Atlas Package`}</h3>\n    <p>{`Build will create following files, which are used to install Apache Atlas.`}</p>\n    <SyntaxHighlighter wrapLines={true} language=\"powershell\" style={theme.dark} mdxType=\"SyntaxHighlighter\">\n      {`distro/target/apache-atlas-{project.version}-bin.tar.gz\ndistro/target/apache-atlas-{project.version}-hbase-hook.tar.gz\ndistro/target/apache-atlas-{project.version}-hive-hook.gz\ndistro/target/apache-atlas-{project.version}-kafka-hook.gz\ndistro/target/apache-atlas-{project.version}-sources.tar.gz\ndistro/target/apache-atlas-{project.version}-sqoop-hook.tar.gz\ndistro/target/apache-atlas-{project.version}-storm-hook.tar.gz`}\n    </SyntaxHighlighter>\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { dark } from \"react-syntax-highlighter/dist/esm/styles/hljs\";\n\n//dark[\"powershell\"][\"color\"] = \"#37bb9b\";\ndark.hljs.color = \"#37bb9b\";\nexport default dark;"],"sourceRoot":""}