--- title: "hive2 部署" date: 2023-05-23T11:00:00+08:00 lastmod: 2023-05-23T11:00:00+08:00 keywords: [] tags: ["hadoop", "hive"] categories: ["storage"] --- ## 环境 操作系统 | 主机名 | 地址 | 运行组件 ---- | ---- | ---- | ---- Rocky9 | hive-hs20 | 192.168.8.20/24 | Hive Server Rocky9 | hive-ms21 | 192.168.8.21/24 | Hive Metastore, MySQL8.0 ## 服务器初始配置 - 在**全部主机**上执行如下操作 - 禁用防火墙 - 禁用 selinux - 配置时间同步 - 配置主机名解析 ```bash echo "192.168.8.1 hdp-nn" >> /etc/hosts echo "192.168.8.2 hdp-snn" >> /etc/hosts echo "192.168.8.3 hdp-dn" >> /etc/hosts echo "192.168.8.10 hdp-slave10" >> /etc/hosts echo "192.168.8.11 hdp-slave11" >> /etc/hosts echo "192.168.8.20 hdp-hs20" >> /etc/hosts echo "192.168.8.21 hdp-ms21" >> /etc/hosts ``` ## 创建 mysql 数据库 - 在 **hive-ms21** 上执行如下操作 - 部署 mysql8.0,略过 - 创建用户及其数据库,参考 sql 如下 ```sql create user hive@127.7.7.7 identified by 'Hive_1234'; create database hive default charset utf8mb4; grant all on hive.* to hive@127.7.7.7; ``` ## 复制 jdk 和 hadoop 环境 - 在**全部主机**上执行如下操作 - 从 hdp-nn 复制 jdk 和 hadoop 环境 ```bash scp -r hdp-nn:/opt/{jdk,hdp} /opt/ scp hdp-nn:/etc/profile.d/{jdk,hdp}.sh /etc/profile.d/ source /etc/profile.d/jdk.sh source /etc/profile.d/hdp.sh ``` ## 部署 hive 环境 - 在**全部主机**上执行如下操作 - 下载 hive 2.3.9 部署包,解压 ```bash curl -LO https://archive.apache.org/dist/hive/hive-2.3.9/apache-hive-2.3.9-bin.tar.gz tar zxf apache-hive-2.3.9.tar.gz mv apache-hive-2.3.9 /opt/hive ``` - 下载 mysql 连接库,解压到 hive 库目录下 ```bash curl -LO https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.0.33.tar.gz tar zxf mysql-connector-j-8.0.33.tar.gz mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar mv mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar /opt/hive/lib/ rm -rf mysql-connector-j-8.0.33* ``` - 配置环境变量 ```bash echo 'export HIVE_HOME=/opt/hive' > /etc/profile.d/hive.sh echo 'export PATH=$HIVE_HOME/bin:$PATH' >> /etc/profile.d/hive.sh source /etc/profile.d/hive.sh ``` ### 修改 hive-env.sh - 编辑 $HIVE_HOME/conf/hive-env.sh,指定 HADOOP_HOME 环境变量 ```bash export HADOOP_HOME=/opt/hdp ``` ### 创建 hive-site.xml - 创建 $HIVE_HOME/conf/hive-site.xml,参考内容如下 ```xml javax.jdo.option.ConnectionURL jdbc:mysql://127.7.7.7:3306/hive?createDatabaseIfNotExist=true&useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.cj.jdbc.Driver javax.jdo.option.ConnectionUserName hive javax.jdo.option.ConnectionPassword Hive_1234 datanucleus.schema.autoCreateAll true hive.cli.print.header true hive.cli.print.current.db true hive.server2.webui.port 10002 hive.metastore.warehouse.dir /hive/warehouse hive.metastore.uris thrift://hive-ms:9083 tez.am.staging-dir /hive/tez/staging ``` ## 初始化 hive 库 - 在 **hive-ms21** 上执行如下操作 ```bash schematool -dbType mysql -initSchema ``` ## 启动 hive - 在 **hive-ms21** 上启动 hive metastore ```bash hive --service metastore ``` - 在 **hive-hs20** 上启动 hive server ```bash hive --service hiveserver2 ``` ## 客户端连接 - 本地直接连接 ```bash hive ``` - beeline 连接,需要[在 $HADOOP_HOME/etc/hadoop/core-site.xml 中配置 proxyuser](/post/hdp2/#修改-core-sitexml) ```bash beeline -u jdbc:hive2://hive-hs20:10000 -n root ```