docker搭建hive
- 準備
hadoop
和java
jar包
- 準備
Mysql
,見之前文章
docker run --name mysql --hostname mysql --net hadoop --ip 172.18.0.5 -p 3306:3306 -v /Users/jackmanwu/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wujinlei -d mysql
wget -c https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.23/mysql-connector-java-8.0.23.jar
wget -c https://mirror.jframeworks.com/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar -zxvf pache-hive-3.1.2-bin.tar.gz
FROM centos:latest
MAINTAINER jackmanwu "[email protected]"
ENV JdkPath=/usr/java/jdk
WORKDIR $JdkPath
ADD jdk-8u281-linux-x64.tar.gz $JdkPath
ENV JAVA_HOME=$JdkPath/jdk1.8.0_281
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
ENV HADOOP_HOME=/usr/java/hadoop-3.1.4
ENV PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
ENV HIVE_HOME=/usr/java/apache-hive-3.1.2-bin
ENV PATH=$HIVE_HOME/bin:$HIVE_HOME/sbin:$PATH
ENV ServiceName=hadoop-3.1.4 \
WorkPath=/usr/java
WORKDIR /hive
WORKDIR $WorkPath
ADD start.sh $WorkPath
RUN chmod 755 start.sh
ADD hadoop-3.1.4.tar.gz $WorkPath
ADD apache-hive-3.1.2-bin.tar.gz $WorkPath
ADD mysql-connector-java-8.0.23.jar $WorkPath/apache-hive-3.1.2-bin/lib/
RUN rm -rf $WorkPath/apache-hive-3.1.2-bin/lib/guava-19.0.jar
RUN mv $WorkPath/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar $WorkPath/apache-hive-3.1.2-bin/lib/
EXPOSE 10002
CMD ["./start.sh"]
docker build -t hive .
docker run --name hive -d hive
docker cp hive:/usr/java/apache-hive-3.1.2-bin/conf .
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mysql:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>wujinlei</value>
</property>
</configuration>
#!/bin/bash
tail -f /dev/null
docker stop hive
docker rm hive
docker run --name hive --hostname hive --net hadoop --ip 172.18.0.6 -p 127.0.0.1:10002:10002 -v /Users/jackmanwu/docker/hive/conf/:/usr/java/apache-hive-3.1.2-bin/conf/ -d hive /usr/sbin/init
docker exec -it hive bash
schematool -dbType mysql -initSchema
hiveserver2 1>/dev/null 2>&1 &
beeline
!connect jdbc:hive2://127.0.0.1:10000