Hive配置
目录
- 1. 引言
- 2. 通过docker-compose联动启动Hadoop和MySQL容器
- 3. 配置Hive
- 3.1 下载并解压Hive-4.0.1
- 2.2 配置环境变量
- 2.3 安装mysql-connector的jar包
- 2.4 配置Hive
- 2.4.1 hive-env.sh
- 2.4.2 hive-site.xml
- 2.4.2.1 javax.jdo.option.ConnectionURL
- 2.4.2.2 javax.jdo.option.ConnectionDriverName
- 2.4.2.3 javax.jdo.option.ConnectionUserName
- 2.4.2.4 javax.jdo.option.ConnectionPassword
- 2.4.2.5 修改\${system:java.io.tmpdir}和\${system:user.name}
- 2.4.3 初始化Hive数据库
- 2.4.4 在core-site.xml中增加配置
- 4. 验证hive
- 参考
1. 引言
尽管我使用了华为云主机,但是我发现C盘的健康度还是在掉,因此我有回归使用docker了。反正没使用docker的这些天,我甚至在本地笔记本上都不写代码,只玩无限暖暖。甚至都不是木马病毒的问题。
配置时,Hadoop容器的镜像是mengsui/hadoop_ubuntu24.04:1.4,mysql容器的镜像是ubuntu/mysql:latest。Hadoop容器负责Hadoop、HBase、Hive。
通过docker使用配置好的容器的方法见下面2。
2. 通过docker-compose联动启动Hadoop和MySQL容器
docker-compose.yml文件:
services:
hadoop:
container_name: hadoop_ubuntu
image: mengsui/hadoop3.3.6_ubuntu24.04:1.0
depends_on:
- mysql
ports:
- "8080:8080"
- "8088:8088"
- "9870:9870"
- "16010:16010"
- "16030:16030"
networks:
hadoop_network:
ipv4_address: 172.18.0.2
mysql:
container_name: mysql_ubuntu
image: ubuntu/mysql:latest
ports:
- "3306:3306"
- "33060:33060"
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- mysql_data:/var/lib/mysql:rw
networks:
hadoop_network:
ipv4_address: 172.18.0.3
networks:
hadoop_network:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/24
ip_range: 172.18.0.0/24
gateway: 172.18.0.254
volumes:
mysql_data:
运行命令:docker compose -f 'docker-compose.yml' up -d --build
。
最终在hadoop_ubuntu24.04容器中先start-dfs.sh && start-yarn.sh
,再运行schematool -dbType mysql -initSchema
即可(如果你运行后删除了这两个容器,而没有删除docker中的volume的话,则不需要重新运行schematool -dbType mysql -initSchema
)。
3. 配置Hive
3.1 下载并解压Hive-4.0.1
解压命令:
cd ~
wget https://dlcdn.apache.org/hive/hive-4.0.1/apache-hive-4.0.1-bin.tar.gz
tar -zxvf apache-hive-4.0.1-bin.tar.gz -C .
mv apache-hive-4.0.1-bin hive-4.0.1
2.2 配置环境变量
用sudo vim /etc/profile
编辑环境变量,输入如下内容,然后按ESC输入:wq!保存,最后用source /etc/profile
使环境变量生效。
export HIVE_HOME=/root/hive-4.0.1
export PATH=$PATH:$HIVE_HOME/bin
2.3 安装mysql-connector的jar包
首先从MySQL官网上下载对应系统版本的mysql-connector/J,然后安装,最后将安装的mysql-connector的jar包复制到~/hive-4.0.1/lib。
cd /tmp
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-j_9.2.0-1ubuntu24.04_all.deb
apt install ./mysql-connector-j_9.2.0-1ubuntu24.04_all.deb -y
cp /usr/share/java/mysql-connector-j-9.2.0.jar /root/hive-4.0.1/lib
2.4 配置Hive
2.4.1 hive-env.sh
在~/hive-4.0.1/conf路径下使用cp hive-env.sh.template hive-env.sh
产生hive-env.sh文件,然后用vim hive-env.sh
编辑文件,在文件末尾输入如下内容,然后按ESC输入:wq!保存。
export HADOOP_HOME=/root/hadoop-3.3.6
export JAVA_HOME=/lib/jvm/openjdk-8-amd64
export HIVE_HOME=/root/hive-4.0.1
2.4.2 hive-site.xml
在~/hive-4.0.1/conf路径下使用cp hive-default.xml.template hive-site.xml
产生hive-site.xml,然后用vim hive-site.xml
编辑文件。
2.4.2.1 javax.jdo.option.ConnectionURL
通过vim自带的匹配功能查找指定配置:输入/javax.jdo.option.ConnectionURL,然后回车,接着按n键查找到指定项后,按i进行编辑,其中172.18.0.3是MySQL容器的ip地址。
2.4.2.2 javax.jdo.option.ConnectionDriverName
按ESC,通过vim自带的匹配功能查找指定配置:输入/javax.jdo.option.ConnectionDriverName,然后回车,接着按n键查找到指定项后,按i进行编辑。
2.4.2.3 javax.jdo.option.ConnectionUserName
按ESC,通过vim自带的匹配功能查找指定配置:输入/javax.jdo.option.ConnectionUserName,然后回车,接着按n键查找到指定项后,按i进行编辑,其中root是mysql容器中数据库的用户名。
2.4.2.4 javax.jdo.option.ConnectionPassword
按ESC,通过vim自带的匹配功能查找指定配置:输入/javax.jdo.option.ConnectionPassword,然后回车,接着按n键查找到指定项后,按i进行编辑,其中123456是mysql容器中数据库root用户的密码。
2.4.2.5 修改${system:java.io.tmpdir}和${system:user.name}
按ESC,通过vim自带的匹配功能查找指定配置:输入/${system:java.io.tmpdir}或/${system:user.name},然后回车,接着按n键查找到指定项后,按i进行编辑,分别改为/root/data/tmp和root。
2.4.3 初始化Hive数据库
命令:schematool -dbType mysql -initSchema
。
然后在mysql容器中用mysql -u root -p123456
登录mysql,在其中输入如下内容。
grant all privileges on hive.* to 'root'@'%';
flush privileges;
2.4.4 在core-site.xml中增加配置
在~/hadoop-3.3.6/etc/hadoop路径下的core-site.xml中增加如下配置。
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>172.18.0.2,172.18.0.3</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>root</value>
</property>
4. 验证hive
启动Hadoop:start-dfs.sh && start-yarn.sh
。
启动Hive:
nohup hive --service metastore &
nohup hive --service hiveserver2 &
验证HIve:beeline -u "jdbc:hive2://172.18.0.2:10000" -n root
。
参考
吴章勇 杨强著 大数据Hadoop3.X分布式处理实战