├── Dockerfile ├── LICENSE.txt ├── README.md ├── bin ├── start-impala.sh ├── supervisord-bootstrap.sh └── wait-for-it.sh ├── cloudera-cdh5.repo ├── docker-compose.yml └── etc ├── core-site.xml ├── hdfs-site.xml ├── hive-site.xml └── supervisord.conf /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM parrotstream/centos-openjdk 2 | 3 | USER root 4 | 5 | ADD cloudera-cdh5.repo /etc/yum.repos.d/ 6 | RUN rpm --import https://archive.cloudera.com/cdh5/redhat/5/x86_64/cdh/RPM-GPG-KEY-cloudera 7 | RUN yum install -y sudo \ 8 | hadoop-hdfs-namenode hadoop-hdfs-datanode \ 9 | postgresql hive hive-jdbc hive-metastore \ 10 | impala impala-server impala-shell impala-catalog impala-state-store 11 | RUN yum clean all 12 | 13 | RUN mkdir -p /var/run/hdfs-sockets; \ 14 | chown hdfs.hadoop /var/run/hdfs-sockets 15 | RUN mkdir -p /data/dn/ 16 | RUN chown hdfs.hadoop /data/dn 17 | 18 | RUN wget https://jdbc.postgresql.org/download/postgresql-9.4.1209.jre7.jar -O /usr/lib/hive/lib/postgresql-9.4.1209.jre7.jar 19 | 20 | RUN groupadd supergroup; \ 21 | usermod -a -G supergroup impala; \ 22 | usermod -a -G hdfs impala; \ 23 | usermod -a -G supergroup hive; \ 24 | usermod -a -G hdfs hive 25 | 26 | WORKDIR / 27 | 28 | ADD etc/supervisord.conf /etc/ 29 | ADD etc/core-site.xml /etc/hadoop/conf/ 30 | ADD etc/hdfs-site.xml /etc/hadoop/conf/ 31 | ADD etc/hive-site.xml /etc/hive/conf/ 32 | ADD etc/core-site.xml /etc/impala/conf/ 33 | ADD etc/hdfs-site.xml /etc/impala/conf/ 34 | ADD etc/hive-site.xml /etc/impala/conf/ 35 | 36 | # Various helper scripts 37 | ADD bin/start-impala.sh / 38 | ADD bin/supervisord-bootstrap.sh / 39 | ADD bin/wait-for-it.sh / 40 | RUN chmod +x ./*.sh 41 | 42 | # HDFS 43 | EXPOSE 50010 50020 50070 50075 50090 50091 50100 50105 50475 50470 8020 8485 8480 8481 44 | EXPOSE 50030 50060 13562 10020 19888 45 | 46 | # Hive 47 | EXPOSE 9083 48 | 49 | # Impala 50 | EXPOSE 21000 21050 22000 23000 24000 25010 26000 28000 51 | 52 | ENTRYPOINT ["supervisord", "-c", "/etc/supervisord.conf", "-n"] -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker Impala 2 | 3 | Run Impala in a Docker container. 4 | 5 | ```bash 6 | docker-compose up -d 7 | ``` 8 | 9 | When Impala has started the web UI will be visible (after a minute or so) by running: 10 | 11 | ```bash 12 | open http://$(docker-machine ip):25000 13 | ``` 14 | 15 | (Note that for troubleshooting purposes you can connect to the container with `docker-compose exec impala bash`, then check _/tmp/supervisord.log_ and the log files in _/var/log/hadoop-hdfs_, _/var/log/hive_, and _/var/log/impala_.) 16 | 17 | Perform a trivial query: 18 | 19 | ```bash 20 | docker-compose exec impala impala-shell -q 'select 1' 21 | ``` 22 | 23 | Shutdown the container with: 24 | 25 | ```bash 26 | docker-compose down 27 | ``` 28 | 29 | This is based on the work at [https://github.com/parrot-stream](https://github.com/parrot-stream), the main difference being that unnecessary services like YARN are 30 | not included. -------------------------------------------------------------------------------- /bin/start-impala.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # HDFS 4 | 5 | if [[ ! -e /var/lib/hadoop-hdfs/cache/hdfs/dfs/name/current ]]; then 6 | /etc/init.d/hadoop-hdfs-namenode init 7 | fi 8 | supervisorctl start hdfs-namenode 9 | supervisorctl start hdfs-datanode 10 | 11 | sudo -u hdfs hdfs dfsadmin -safemode wait 12 | sudo -u hdfs hdfs dfs -mkdir -p /user/hive/warehouse 13 | sudo -u hdfs hdfs dfs -mkdir -p /user/impala 14 | sudo -u hdfs hdfs dfs -mkdir -p /tmp 15 | sudo -u hdfs hdfs dfs -chmod -R 777 / 16 | 17 | # Hive 18 | 19 | rm /opt/hive/logs/*.pid 2> /dev/null 20 | 21 | /wait-for-it.sh postgres:5432 -t 120 22 | rc=$? 23 | if [ $rc -ne 0 ]; then 24 | echo -e "\n--------------------------------------------" 25 | echo -e " PostgreSql not ready! Exiting..." 26 | echo -e "--------------------------------------------" 27 | exit $rc 28 | fi 29 | 30 | psql -h postgres -U postgres -c "CREATE DATABASE metastore;" 2>/dev/null 31 | 32 | /usr/lib/hive/bin/schematool -dbType postgres -initSchema 33 | 34 | supervisorctl start hive-metastore 35 | 36 | # Impala 37 | 38 | /wait-for-it.sh impala:9083 -t 120 39 | rc=$? 40 | if [ $rc -ne 0 ]; then 41 | echo -e "\n---------------------------------------" 42 | echo -e " HIVE not ready! Exiting..." 43 | echo -e "---------------------------------------" 44 | exit $rc 45 | fi 46 | 47 | supervisorctl start impala-state-store 48 | supervisorctl start impala-catalog 49 | supervisorctl start impala-server 50 | 51 | /wait-for-it.sh localhost:21050 -t 120 52 | /wait-for-it.sh localhost:24000 -t 120 53 | /wait-for-it.sh localhost:25010 -t 120 54 | rc=$? 55 | if [ $rc -ne 0 ]; then 56 | echo -e "\n---------------------------------------" 57 | echo -e " Impala not ready! Exiting..." 58 | echo -e "---------------------------------------" 59 | exit $rc 60 | fi 61 | -------------------------------------------------------------------------------- /bin/supervisord-bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /start-impala.sh -------------------------------------------------------------------------------- /bin/wait-for-it.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Use this script to test if a given TCP host/port are available 3 | 4 | cmdname=$(basename $0) 5 | 6 | echoerr() { if [[ $QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } 7 | 8 | usage() 9 | { 10 | cat << USAGE >&2 11 | Usage: 12 | $cmdname host:port [-s] [-t timeout] [-- command args] 13 | -h HOST | --host=HOST Host or IP under test 14 | -p PORT | --port=PORT TCP port under test 15 | Alternatively, you specify the host and port as host:port 16 | -s | --strict Only execute subcommand if the test succeeds 17 | -q | --quiet Don't output any status messages 18 | -t TIMEOUT | --timeout=TIMEOUT 19 | Timeout in seconds, zero for no timeout 20 | -- COMMAND ARGS Execute command with args after the test finishes 21 | USAGE 22 | exit 1 23 | } 24 | 25 | wait_for() 26 | { 27 | if [[ $TIMEOUT -gt 0 ]]; then 28 | echoerr "$cmdname: waiting $TIMEOUT seconds for $HOST:$PORT" 29 | else 30 | echoerr "$cmdname: waiting for $HOST:$PORT without a timeout" 31 | fi 32 | start_ts=$(date +%s) 33 | while : 34 | do 35 | (echo > /dev/tcp/$HOST/$PORT) >/dev/null 2>&1 36 | result=$? 37 | if [[ $result -eq 0 ]]; then 38 | end_ts=$(date +%s) 39 | echoerr "$cmdname: $HOST:$PORT is available after $((end_ts - start_ts)) seconds" 40 | break 41 | fi 42 | sleep 1 43 | done 44 | return $result 45 | } 46 | 47 | wait_for_wrapper() 48 | { 49 | # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 50 | if [[ $QUIET -eq 1 ]]; then 51 | timeout $TIMEOUT $0 --quiet --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & 52 | else 53 | timeout $TIMEOUT $0 --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & 54 | fi 55 | PID=$! 56 | trap "kill -INT -$PID" INT 57 | wait $PID 58 | RESULT=$? 59 | if [[ $RESULT -ne 0 ]]; then 60 | echoerr "$cmdname: timeout occurred after waiting $TIMEOUT seconds for $HOST:$PORT" 61 | fi 62 | return $RESULT 63 | } 64 | 65 | # process arguments 66 | while [[ $# -gt 0 ]] 67 | do 68 | case "$1" in 69 | *:* ) 70 | hostport=(${1//:/ }) 71 | HOST=${hostport[0]} 72 | PORT=${hostport[1]} 73 | shift 1 74 | ;; 75 | --child) 76 | CHILD=1 77 | shift 1 78 | ;; 79 | -q | --quiet) 80 | QUIET=1 81 | shift 1 82 | ;; 83 | -s | --strict) 84 | STRICT=1 85 | shift 1 86 | ;; 87 | -h) 88 | HOST="$2" 89 | if [[ $HOST == "" ]]; then break; fi 90 | shift 2 91 | ;; 92 | --host=*) 93 | HOST="${1#*=}" 94 | shift 1 95 | ;; 96 | -p) 97 | PORT="$2" 98 | if [[ $PORT == "" ]]; then break; fi 99 | shift 2 100 | ;; 101 | --port=*) 102 | PORT="${1#*=}" 103 | shift 1 104 | ;; 105 | -t) 106 | TIMEOUT="$2" 107 | if [[ $TIMEOUT == "" ]]; then break; fi 108 | shift 2 109 | ;; 110 | --timeout=*) 111 | TIMEOUT="${1#*=}" 112 | shift 1 113 | ;; 114 | --) 115 | shift 116 | CLI="$@" 117 | break 118 | ;; 119 | --help) 120 | usage 121 | ;; 122 | *) 123 | echoerr "Unknown argument: $1" 124 | usage 125 | ;; 126 | esac 127 | done 128 | 129 | if [[ "$HOST" == "" || "$PORT" == "" ]]; then 130 | echoerr "Error: you need to provide a host and port to test." 131 | usage 132 | fi 133 | 134 | TIMEOUT=${TIMEOUT:-15} 135 | STRICT=${STRICT:-0} 136 | CHILD=${CHILD:-0} 137 | QUIET=${QUIET:-0} 138 | 139 | if [[ $CHILD -gt 0 ]]; then 140 | wait_for 141 | RESULT=$? 142 | exit $RESULT 143 | else 144 | if [[ $TIMEOUT -gt 0 ]]; then 145 | wait_for_wrapper 146 | RESULT=$? 147 | else 148 | wait_for 149 | RESULT=$? 150 | fi 151 | fi 152 | 153 | if [[ $CLI != "" ]]; then 154 | if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then 155 | echoerr "$cmdname: strict mode, refusing to execute subprocess" 156 | exit $RESULT 157 | fi 158 | exec $CLI 159 | else 160 | exit $RESULT 161 | fi 162 | -------------------------------------------------------------------------------- /cloudera-cdh5.repo: -------------------------------------------------------------------------------- 1 | [cloudera-cdh5] 2 | # Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 7 x86_64 3 | name=Cloudera's Distribution for Hadoop, Version 5 4 | baseurl=https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.11.1 5 | gpgkey =https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera 6 | gpgcheck = 1 -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | postgres: 4 | image: postgres 5 | networks: 6 | - impala-nw 7 | ports: 8 | - 5432:5432 9 | environment: 10 | POSTGRES_PASSWORD: postgres 11 | impala: 12 | build: . 13 | image: impala 14 | networks: 15 | - impala-nw 16 | external_links: 17 | - postgres 18 | environment: 19 | PGPASSWORD: postgres 20 | ports: 21 | # HDFS 22 | - 50070:50070 23 | - 50075:50075 24 | - 8020:8020 25 | - 8042:8042 26 | # Hive 27 | - 9083:9083 28 | # Impala 29 | - 21000:21000 30 | - 21050:21050 31 | - 25000:25000 32 | - 25010:25010 33 | - 25020:25020 34 | networks: 35 | default: 36 | external: 37 | name: impala-nw 38 | impala-nw: 39 | driver: bridge -------------------------------------------------------------------------------- /etc/core-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fs.defaultFS 4 | hdfs://impala:8020 5 | 6 | -------------------------------------------------------------------------------- /etc/hdfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | dfs.client.read.shortcircuit 4 | true 5 | 6 | 7 | dfs.domain.socket.path 8 | /var/run/hdfs-sockets/dn 9 | 10 | 11 | dfs.replication 12 | 1 13 | 14 | 15 | dfs.namenode.name.dir 16 | file:/var/lib/hadoop-hdfs/cache/hdfs/dfs/name 17 | 18 | 19 | dfs.client.use.legacy.blockreader.local 20 | false 21 | 22 | 23 | dfs.datanode.data.dir.perm 24 | 750 25 | 26 | 27 | dfs.block.local-path-access.user 28 | impala 29 | 30 | 31 | dfs.client.file-block-storage-locations.timeout.millis 32 | 10000 33 | 34 | 35 | dfs.datanode.hdfs-blocks-metadata.enabled 36 | true 37 | 38 | -------------------------------------------------------------------------------- /etc/hive-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | hive.support.concurrency 4 | true 5 | 6 | 7 | javax.jdo.option.ConnectionURL 8 | jdbc:postgresql://postgres:5432/metastore 9 | 10 | 11 | javax.jdo.option.ConnectionDriverName 12 | org.postgresql.Driver 13 | 14 | 15 | javax.jdo.option.ConnectionUserName 16 | postgres 17 | 18 | 19 | javax.jdo.option.ConnectionPassword 20 | postgres 21 | 22 | 23 | datanucleus.autoCreateSchema 24 | true 25 | 26 | 27 | datanucleus.autoCreateTables 28 | true 29 | 30 | 31 | hive.metastore.uris 32 | thrift://localhost:9083 33 | 34 | 35 | hive.metastore.schema.verification 36 | true 37 | 38 | -------------------------------------------------------------------------------- /etc/supervisord.conf: -------------------------------------------------------------------------------- 1 | [unix_http_server] 2 | file=/tmp/supervisor.sock ; (the path to the socket file) 3 | 4 | [supervisord] 5 | logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) 6 | logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) 7 | logfile_backups=10 ; (num of main logfile rotation backups;default 10) 8 | loglevel=debug ; (log level;default info; others: debug,warn,trace) 9 | pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) 10 | nodaemon=true ; (start in foreground if true;default false) 11 | minfds=1024 ; (min. avail startup file descriptors;default 1024) 12 | minprocs=200 ; (min. avail process descriptors;default 200) 13 | 14 | 15 | [rpcinterface:supervisor] 16 | supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 17 | 18 | [program:bootstrap] 19 | command=/bin/bash -c 'exec /supervisord-bootstrap.sh' 20 | autostart=true 21 | autorestart=false 22 | 23 | [program:hdfs-namenode] 24 | command=/bin/bash -c 'exec /etc/init.d/hadoop-hdfs-namenode start' 25 | autostart=false 26 | autorestart=false 27 | startsecs=0 28 | 29 | [program:hdfs-datanode] 30 | command=/bin/bash -c 'exec /etc/init.d/hadoop-hdfs-datanode start' 31 | autostart=false 32 | autorestart=false 33 | startsecs=0 34 | 35 | [program:hive-metastore] 36 | command=/bin/bash -c 'exec /etc/init.d/hive-metastore start' 37 | autostart=false 38 | startsecs=0 39 | 40 | [program:impala-state-store] 41 | command=/bin/bash -c 'exec /etc/init.d/impala-state-store start' 42 | autostart=false 43 | startsecs=0 44 | 45 | [program:impala-catalog] 46 | command=/bin/bash -c 'exec /etc/init.d/impala-catalog start' 47 | autostart=false 48 | startsecs=0 49 | 50 | [program:impala-server] 51 | command=/bin/bash -c 'exec /etc/init.d/impala-server start' 52 | autostart=false 53 | startsecs=0 54 | 55 | [supervisorctl] 56 | serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket 57 | 58 | ;[group:thegroupname] 59 | ;programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions 60 | ;priority=999 ; the relative start priority (default 999) 61 | 62 | ; The [include] section can just contain the "files" setting. This 63 | ; setting can list multiple files (separated by whitespace or 64 | ; newlines). It can also contain wildcards. The filenames are 65 | ; interpreted as relative to this file. Included files *cannot* 66 | ; include files themselves. 67 | 68 | ;[include] 69 | ;files = relative/directory/*.ini --------------------------------------------------------------------------------