Hadooop学习(六)——数据挖掘和数据仓储——Hadoop上Hive安装(排坑版),Hive命令和HQL
Hadoop:3.3.3
Mysql:5.7.26
Hive:2.3.9
一、Hive是什么
是一个基于SQL的Hadoop查询引擎
是建立在Hadoop上的 “ 数据仓储 ” 框架
Hive 提供自己的查询语言 HQL,支持许多常见的SQL语句,包括数据定义语句(DDL)、数据操作语句(DMS)和数据检索查询(SELECT)
还支持集成用户定义函数,这些函数可以由Java或Hadoop Streaming支持的任何语言编写,扩展了HQL的内置功能。
Hive命令和HQL查询语句被编译成 执行计划 或一系列HDFS操作或MapReduce作业,然后再Hadoop集群上执行。
Hive继承了HDFS和MapReduce的某些限制,无法提供传统数据库管理应用系统应该有的关键联机事务处理(online transaction processing, OLTP)
二、Hive在集群上的安装
# 检查是否有冲突
# 查询是否安装了mariadb或mysql
rpm -aq | grep mariadb
rpm -aq | grep mysql
# 删除mariadb, -e 删除指定的套件;--nodeps 不验证套件的相互关联性
rpm -e --nodeps mariadb-libs
1.安装MySQL
# 进入software下载mysql安装包
wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# 解压到servers
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C /export/servers/mysql
进入mysql文件夹
# 安装文件
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
启动mysql服务
systemctl start mysqld.service
查看当前密码
grep "password" /var/log/mysqld.log
进入mysql服务
mysql -u root -p
重新设置密码
set global validate_password_policy=0;
mysql> set password for 'root'@'localhost'=password('zyy001102');
使新密码生效
flush privileges;
2.安装Hive
登入mysql环境,执行下列语句
# -- 创建用户设置口令、授权、刷新
CREATE USER 'hive'@'%' IDENTIFIED BY '12345678';
GRANT ALL ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
下载Hive安装包
# 进入software文件夹
cd /export/software
# 安装hive
wget https://mirrors.cloud.tencent.com/apache/hive/hive-2.3.9/apache-hive-2.3.9-bin.tar.gz
# 安装Mysql的JDBC驱动
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.46.tar.gz
解压安装包
# 解压到servers文件夹
tar -zxvf apache-hive-2.3.9-bin.tar.gz -C /export/servers/
tar -zxvf mysql-connector-java-5.1.46.tar.gz -C /export/servers/
配置hive环境
# 在 /etc/profile 文件中增加环境变量
export HIVE_HOME=/export/servers/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin
# 执行并生效
source /etc/profile
编辑hive配置文件
cd $HIVE_HOME/conf
vi hive-site.xml
添加以下内容
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- jdbc 连接的 URL --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.50.160:3306/hive?useSSL=false</value> </property> <!-- jdbc 连接的 Driver--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- jdbc 连接的 username(MySQL用户名)--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- jdbc 连接的 password(MySQL密码) --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>自己的密码</value> </property> <!-- Hive 元数据存储版本的验证(Hive元数据默认是存储在Derby中,正常开启时它会去校验Derby,现在要使用MySQL存储元数据, 就需要把这个关闭即可,如果开启,MySQL和Derby会导致Hive启动不起来的) --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <!--元数据存储授权--> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- Hive 默认在 HDFS 的工作目录(可以不配置,因为默认就是/user/hive/warehouse,如果不使用默认的位置,可以手动修改) --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration>
复制生成hive-env.sh文件
将 mysql-connector-java-5.1.46.jar 拷贝到 $HIVE_HOME/lib
cd /export/servers/mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46.jar /export/servers/apache-hive-2.3.9-bin/lib
初始化元数据库
schematool -dbType mysql -initSchema
报错
# 进入Hadoop目录
cd /export/servers/hadoop-3.3.3/etc/hadoop
# 修改配置文件
vi hadoop-env.sh
# 把export HADOOP_CLASSPATH=/home/hadoop/softwares /hbase-1.4.0/lib/*注释掉,然后再执行schematool -dbType mysql -initSchema初始化。
【忘记Mysql密码?】
Centos Mysql忘记密码,修改密码_centos mysql 忘记密码_菜菜啾咪的博客-CSDN博客
再次初始化,成功
启动集群
进入hive
# 进入hive
hive
# hive中执行命令
show functions;
参考链接
https://blog.csdn.net/weixin_52851967/article/details/127280009?ops_request_misc=&request_id=&biz_id=102&utm_term=hive%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-127280009.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187
Hive的安装和配置-安装步骤:(配图片和文字,超详细)_hive安装与配置详解_Deng872347348的博客-CSDN博客