simhadri-g commented on code in PR #5: URL: https://github.com/apache/hive-site/pull/5#discussion_r1193045121
########## content/Developement/quickStart.md: ########## @@ -0,0 +1,184 @@ +--- +title: "QuickStarted" +date: 2023-05-12T17:51:06+05:30 +draft: false +--- + +### Introduction + +--- +Run Apache Hive inside docker container in pseudo-distributed mode, provide the following +- Quick-start/Debugging/Prepare a test env for Hive + + +### Quickstart + +--- + +##### Step 1: Pull the image +DockerHub: https://hub.docker.com/r/apache/hive/tags + +Currently, there are 3 images released: + - 4.0.0-alpha-2 + - 4.0.0-alpha-1 + - 3.1.3 +```shell +docker pull apache/hive:4.0.0-alpha-2 +``` + +##### STEP 2: Export the Hive version +```shell +export HIVE_VERSION=<Hive Tag/Image Version> +``` + +Example: +```shell +export HIVE_VERSION=4.0.0-alpha-2 +``` + +##### STEP 3: Launch the HiveServer2 with an embedded Metastore. + +This is lightweight and for a quick setup, it uses Derby as metastore db. +```shell +docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 --name hive4 apache/hive:${HIVE_VERSION} +``` +##### STEP 4: Connect to beeline + +```shell +docker exec -it hiveserver2 beeline -u 'jdbc:hive2://hiveserver2:10000/' +``` + +##### Note: Launch Standalone Metastore +To use standalone Metastore with Derby, + +```shell +docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name metastore-standalone apache/hive:${HIVE_VERSION} +``` + +## Detailed Setup + +--- + +#### Build image +Apache Hive relies on Hadoop, Tez and some others to facilitate reading, writing, and managing large datasets. +The `build.sh` provides ways to build the image against specified version of the dependent, as well as build from source. Review Comment: Done. ########## content/Developement/quickStart.md: ########## @@ -0,0 +1,184 @@ +--- +title: "QuickStarted" +date: 2023-05-12T17:51:06+05:30 +draft: false +--- + +### Introduction + +--- +Run Apache Hive inside docker container in pseudo-distributed mode, provide the following +- Quick-start/Debugging/Prepare a test env for Hive + + +### Quickstart + +--- + +##### Step 1: Pull the image +DockerHub: https://hub.docker.com/r/apache/hive/tags + +Currently, there are 3 images released: + - 4.0.0-alpha-2 + - 4.0.0-alpha-1 + - 3.1.3 +```shell +docker pull apache/hive:4.0.0-alpha-2 +``` + +##### STEP 2: Export the Hive version +```shell +export HIVE_VERSION=<Hive Tag/Image Version> +``` + +Example: +```shell +export HIVE_VERSION=4.0.0-alpha-2 +``` + +##### STEP 3: Launch the HiveServer2 with an embedded Metastore. + +This is lightweight and for a quick setup, it uses Derby as metastore db. +```shell +docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 --name hive4 apache/hive:${HIVE_VERSION} +``` +##### STEP 4: Connect to beeline + +```shell +docker exec -it hiveserver2 beeline -u 'jdbc:hive2://hiveserver2:10000/' +``` + +##### Note: Launch Standalone Metastore +To use standalone Metastore with Derby, + +```shell +docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name metastore-standalone apache/hive:${HIVE_VERSION} +``` + +## Detailed Setup + +--- + +#### Build image +Apache Hive relies on Hadoop, Tez and some others to facilitate reading, writing, and managing large datasets. +The `build.sh` provides ways to build the image against specified version of the dependent, as well as build from source. + +##### Build from source +```shell +mvn clean package -pl packaging -DskipTests -Pdocker +``` +##### Build with specified version +There are some arguments to specify the component version: +```shell +-hadoop <hadoop version> +-tez <tez version> +-hive <hive version> +``` +If the version is not provided, it will read the version from current `pom.xml`: +`project.version`, `hadoop.version` and `tez.version` for Hive, Hadoop and Tez respectively. + +For example, the following command uses Hive 3.1.3, Hadoop `hadoop.version` and Tez `tez.version` to build the image, +```shell +./build.sh -hive 3.1.3 +``` +If the command does not specify the Hive version, it will use the local `apache-hive-${project.version}-bin.tar.gz`(will trigger a build if it doesn't exist), +together with Hadoop 3.1.0 and Tez 0.10.1 to build the image, +```shell +./build.sh -hadoop 3.1.0 -tez 0.10.1 +``` +After building successfully, we can get a Docker image named `apache/hive` by default, the image is tagged by the provided Hive version. + +### Run services +--- +Before going further, we should define the environment variable `HIVE_VERSION` first. +For example, if `-hive 3.1.3` is specified to build the image, +```shell +export HIVE_VERSION=3.1.3 +``` +or assuming that you're relying on current `project.version` from pom.xml, +```shell +export HIVE_VERSION=$(mvn -f pom.xml -q help:evaluate -Dexpression=project.version -DforceStdout) +``` +- Metastore + +For a quick start, launch the Metastore with Derby, + ```shell + docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name metastore-standalone apache/hive:${HIVE_VERSION} + ``` +Everything would be lost when the service is down. In order to save the Hive table's schema and data, start the container with an external Postgres and Volume to keep them, + + ```shell + docker run -d -p 9083:9083 --env SERVICE_NAME=metastore \ + --env DB_DRIVER=postgres \ + --env SERVICE_OPTS="-Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver -Djavax.jdo.option.ConnectionURL=jdbc:postgresql://postgres:5432/metastore_db -Djavax.jdo.option.ConnectionUserName=hive -Djavax.jdo.option.ConnectionPassword=password" \ + --mount source=warehouse,target=/opt/hive/data/warehouse \ + --name metastore-standalone apache/hive:${HIVE_VERSION} + ``` + +If you want to use your own `hdfs-site.xml` or `yarn-site.xml` for the service, you can provide the environment variable `HIVE_CUSTOM_CONF_DIR` for the command. For instance, put the custom configuration file under the directory `/opt/hive/conf`, then run, + + ```shell + docker run -d -p 9083:9083 --env SERVICE_NAME=metastore \ + --env DB_DRIVER=postgres -v /opt/hive/conf:/hive_custom_conf --env HIVE_CUSTOM_CONF_DIR=/hive_custom_conf \ + --name metastore apache/hive:${HIVE_VERSION} + ``` + +- HiveServer2 + +Launch the HiveServer2 with an embedded Metastore, + ```shell + docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 --name hiveserver2-standalone apache/hive:${HIVE_VERSION} + ``` +or specify a remote Metastore if it's available, + ```shell + docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 \ + --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \ + --env IS_RESUME="true" \ + --name hiveserver2-standalone apache/hive:${HIVE_VERSION} + ``` +To save the data between container restarts, you can start the HiveServer2 with a Volume, + ```shell + docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 \ + --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \ + --mount source=warehouse,target=/opt/hive/data/warehouse \ + --env IS_RESUME="true" \ + --name hiveserver2 apache/hive:${HIVE_VERSION} + ``` + +- HiveServer2, Metastore + +To get a quick overview of both HiveServer2 and Metastore, you can run: + +```shell + cd packaging/src/docker + docker compose up -d + ``` +Volumes are used to persist data generated by Hive inside Postgres and HiveServer2 containers, +- hive_db + Review Comment: Fixed -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
