为了调试hive,我们使用docker来制作一个镜像。可以在镜像中启动hive的相关服务,在本地ide(intellij)中进行远程调试。
先放出最后制作好的镜像: docker pull limengjiao029/hive:v0.1
使用方法:
启动镜像:
docker run --privileged -tid -p 8000:8000 -p 8088:8088 -p 8042:8042 -p 50070:50070 limengjiao029/hive:v0.1
登陆镜像:
containerID 为上一步启动镜像后得到的容器id。docker exec -ti containerID /bin/bash
启动服务:
登陆后可以根据需要启动各组件的服务。
环境变量:JAVA_HOME, HADOOP_HOME, HIVE_HOME 已设置
mysql:已经默认启动。已建立root与hadoop用户,密码均为
123!@#qweQWE
Hadoop:已经配置为yarn模式。namenode已经格式化。直接启动即可。
$HADOOP_HOME\sbin\start-all.sh
Hive: metastore 使用的数据已经配置为mysql.
-- 启动metastore服务:hive --service metastore
-- 使用cli:hive
-- 启动hiveserver2:hiveserver2
-- 连接hiveserver2:beeline -u "jdbc:hive2://127.0.0.1:10000"
UI界面:
yarn:
http://127.0.0.1:8088
远程调试:
启动cli:
hive --debug
此时程序会监听8000端口,等待ide连接intellj: 配置远程模式,端口填写为8000,在cli模块代码中打好断点,点击运行。
Screen Shot 2018-09-01 at 9.58.42 AM.png
搭建过程:
创建dockerfile:
> mkdir hivedocker > cd hivedocker > touch Dockerfile
编辑Dockerfile:
FROM centos:7 ENV container docker RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ systemd-tmpfiles-setup.service ] || rm -f $i; done); \ rm -f /lib/systemd/system/multi-user.target.wants/*;\ rm -f /etc/systemd/system/*.wants/*;\ rm -f /lib/systemd/system/local-fs.target.wants/*; \ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; VOLUME [ "/sys/fs/cgroup" ] RUN yum -y install net-tools RUN yum -y install wget RUN yum -y install vim-common RUN yum -y install openssh* RUN yum -y install initscripts RUN yum -y install whichCMD ["/usr/sbin/init"]
生成镜像:
> docker build -t local/base
--
环境配置:
按照上文的方法启动并登入 local/base 镜像。假设得到的container id 是 baseContainerID,后续会用到这个id。
-- 安装jdk
> wget http://~/jdk-8u181-linux-x64.tar.gz > tar -zxf jdk-8u181-linux-x64.tar.gz > export JAVA_HOME= > export PATH=$JAVA_HOME/bin:$PATH
-- 安装mysql:
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm rpm -Uvh mysql57-community-release-el7-10.noarch.rpm yum install -y mysql-community-server
-- 配置mysql:
mysql安装后重设密码
> vi /etc/my.cnf # 最后一行增加 skip-grant-tables> service mysqld start > mysql mysql > use mysql; mysql > update user set authentication_string = password("root") where user='root'; mysql > exit; > vi /etc/my.cnf # 去掉最后一行> service mysqld stop > service mysqld start > mysql -uroot -proot mysql > alter user 'root'@'localhost' identified by '123!@#qweQWE'; mysql > flush privileges; mysql > exit;
创建hadoop账户,并创建hive数据库
mysql > create user 'hadoop'@'localhost' identified by '123!@#qweQWE'; mysql > grant all privileges on *.* to hadoop; mysql > create database hive;
-- 配置hadoop:
下载hadoop,编辑 hadoop-env.sh, core-site.xml, hdfs-site.xml。 如果使用yarn模式,还需要编辑mapred-site.xml和yarn-site.xml.
hadoop-env.sh
export JAVA_HOME=/***/jdk1.8.0_181
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
环境变量和初始化
> export HADOOP_HOME= > export PATH=$HADOOP_HOME/bin:$PATH> hadoop namenode -format
-- 配置hive:
下载hive,编辑hive-env.sh,根据需要编辑hive-site.xmlhive-env.sh
HADOOP_HOME=
HIVE_CONF_DIR=
hive-site.xml
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123!@#qweQWE</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
初始化metastore
> schematool -dbType mysql -initSchema
提交更改
> docker commit baseContainerID limengjiao/029:v0.1
作者:一米的光年
链接:https://www.jianshu.com/p/40e1b5846c48
共同學習,寫下你的評論
評論加載中...
作者其他優質文章