hive2 部署
文章目录
环境
| 操作系统 | 主机名 | 地址 | 运行组件 |
|---|---|---|---|
| Rocky9 | hive-hs20 | 192.168.8.20/24 | Hive Server |
| Rocky9 | hive-ms21 | 192.168.8.21/24 | Hive Metastore, MySQL8.0 |
服务器初始配置
- 在全部主机上执行如下操作
- 禁用防火墙
- 禁用 selinux
- 配置时间同步
- 配置主机名解析
1 2 3 4 5 6 7echo "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 如下
1 2 3create 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 环境
1 2 3 4scp -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 部署包,解压
1 2 3curl -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 库目录下
1 2 3 4curl -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* -
配置环境变量
1 2 3echo '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 环境变量
1export HADOOP_HOME=/opt/hdp
创建 hive-site.xml
- 创建 $HIVE_HOME/conf/hive-site.xml,参考内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59<configuration> <property> <!-- mysql 地址 --> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://127.7.7.7:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <!-- mysql 驱动 --> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <!-- mysql 用户 --> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <!-- mysql 密码 --> <name>javax.jdo.option.ConnectionPassword</name> <value>Hive_1234</value> </property> <property> <!-- 自动初始化 hive 库 --> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <!-- hive server 端口 --> <name>hive.server2.webui.port</name> <value>10002</value> </property> <property> <!-- 数据存储位置(hdfs) --> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> </property> <property> <!-- hive metastore 端口--> <name>hive.metastore.uris</name> <value>thrift://hive-ms:9083</value> </property> <!-- hive 使用 tez 引擎 <property> <name>hive.execution.engine</name> <value>tez</value> </property> --> <property> <name>tez.am.staging-dir</name> <value>/hive/tez/staging</value> </property> </configuration>
初始化 hive 库
- 在 hive-ms21 上执行如下操作
1schematool -dbType mysql -initSchema
启动 hive
-
在 hive-ms21 上启动 hive metastore
1hive --service metastore -
在 hive-hs20 上启动 hive server
1hive --service hiveserver2
客户端连接
-
本地直接连接
1hive -
beeline 连接,需要在 $HADOOP_HOME/etc/hadoop/core-site.xml 中配置 proxyuser
1beeline -u jdbc:hive2://hive-hs20:10000 -n root
文章作者 Colben
上次更新 2023-05-23