目录
metastore的配置分为三种模式,在这里使用远程模式部署
- 内嵌模式
- 本地模式
- 远程模式
通过访问metastore元数据服务,来使用hive
Step1:前提条件
Hive是基于Hadoop的数据仓库软件,不管用何种方式配置MetaStore,都需要保证Hadoop可用和服务器基础环境正常,Hive只需要在一台计算机上安装。
Hive虽然不是分布式软件,但是有分布式的能力,hive本身是单机的,它只需完成SQL解析,转换成MR,但是存数据和计算数据分别是HDFS和MapReduce,所以有分布式的能力。
服务器基础环境
- 集群时间同步
- 防火墙关闭
- 主机Host映射
- 免密登录
- JDK安装
在启动Hive之前必须先启动Hadoop,需等待HDFS安全模式关闭之后再启动运行Hive。
Step2:Hadoop与Hive整合
Hive需要依赖Hadoop,因此需要在Hadoop中添加相关配置属性,满足Hive在Hadoop上运行。
在core-site.xml中
Step3:安装MySQL数据库
仅在一台机器上安装即可,并且需要授权远程访问
- 查看是否有Centos7自带的mariadb:rpm -qa|grep mariadb
- 卸载mariadb:rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
- 建立存放MySQL的文件夹:mkdir /export/software/mysql
- 上传MySQL压缩包:rz
- 解压MySQL压缩包:tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
- 安装:yum -y install libaio
- 安装MySQL:rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm
- MySQL初始化:mysqld --initialize
- 更改所属组:chown mysql:mysql /var/lib/mysql -R
- 启动MySQL:systemctl start mysqld.service
- 查看临时密码:cat /var/log/mysqld.log
- 登录MySQL:mysql -u root -p
- 修改密码为****:alter user user() identified by "****";
- 授权保证其他机器可以远程访问:use mysql;
- 刷新:FLUSH PRIVILEGES;
- 退出MySQL:CTRL+D
- 设置开机自启动:systemctl enable mysqld
如何卸载MySQL
Step4:Hive安装
- 上传Hive压缩包:rz
- 解压:tar zxvf apache-hive-3.1.2-bin.tar.gz
- 解决Hive与Hadoop之间guava版本差异,删除低版本,并复制高版本:
cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
- 修改配置文件hive-env.sh
cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib
- 修改配置文件hive-site.xml
vim hive-site.xml <configuration> <property> <name>javax.jdo.option.ConnectionURLname> <value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8value> property> <property> <name>javax.jdo.option.ConnectionDriverNamename> <value>com.mysql.jdbc.Drivervalue> property> <property> <name>javax.jdo.option.ConnectionUserNamename> <value>rootvalue> property> <property> <name>javax.jdo.option.ConnectionPasswordname> <value>hadoopvalue> property> <property> <name>hive.server2.thrift.bind.hostname> <value>node1value> property> <property> <name>hive.metastore.urisname> <value>thrift://node1:9083value> property> <property> <name>hive.metastore.event.db.notification.api.authname> <value>falsevalue> property> configuration>
- 上传mysql jdbc驱动到hive安装包lib下:rz
- 初始化元数据
cd /export/server/apache-hive-3.1.2-bin/
bin/schematool -initSchema -dbType mysql -verbos
- 前台启动
进程会一直占据终端,按CTRL+C结束进程,日志信息会直接在前台打印,便于排错
启动:/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore
开启debug日志:/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
- 后台启动
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
使用jps查看进程,使用kill -9 杀死进程
可以到根目录下的nohup.out中查看日志信息