- 1.Hive产生背景
- 2.Hive架构
- 3. Hive安装配置
- 启动数据库
- 查找root密码
- 修改root口令
- 进入MySQL,使用前面查询到的口令
- 设置口令强度;将root口令设置为12345678;刷新
- 在 /etc/profile 文件中增加环境变量
- 执行并生效
- 启动hive服务之前,请先启动hdfs、yarn的服务
- 添加以下内容:
- -m:自动建立用户的登入目录
- -g:指定用户所属的起始群组
- -G<群组>:指定用户所属的附加群组
- -s:指定用户登入后所使用的shell
- 在100行后添加。允许用户执行sudo,免密
- 创建文件hqlfile1.sql,内容:select * from users
- 执行文件中的SQL语句
- 执行文件中的SQL语句,将结果写入文件
1.Hive产生背景
Hive是基于Hadoop的一个数据仓库工具,可以将 结构化的数据文件 映射为一张表 (类似于RDBMS中的表),并提供类SQL查询功能;Hive是由Facebook开源,用于解决海量结构化日志的数据统计。
Hive本质是:将 SQL 转换为 MapReduce 的任务进行运算
底层由HDFS来提供数据存储
可以将Hive理解为一个:将 SQL 转换为 MapReduce 任务的工具
2.Hive架构
3. Hive安装配置
Hive官网:http://hive.apache.org
下载网址:http://archive.apache.org/dist/hive/
文档网址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual
3.1 安装软件:Hive(2.3.7) + MySQL (5.7.26)
备注:Hive的元数据默认存储在自带的 derby 数据库中,生产中多采用MySQL
# 整体的安装步骤:1、安装MySQL2、安装配置Hive3、Hive添加常用配置
3.1.1 MySQL安装
删除MariaDB
# 查询是否安装了mariadbrpm -aq | grep mariadb# 删除mariadb。-e 删除指定的套件;--nodeps 不验证套件的相互关联性rpm -e --nodeps mariadb-libs
安装依赖
yum install perl -yyum install net-tools -y
安装MySqL
# 解压缩tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar# 依次运行以下命令rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
mysql相关配置 ```
启动数据库
systemctl start mysqld
查找root密码
grep password /var/log/mysqld.log
修改root口令
进入MySQL,使用前面查询到的口令
mysql -u root -p
设置口令强度;将root口令设置为12345678;刷新
set global validate_password_policy=0; set password for ‘root’@’localhost’ =password(‘12345678’); flush privileges;
- 创建hive用户
— 创建用户设置口令、授权、刷新 CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘12345678’; GRANT ALL ON . TO ‘hive’@’%’; FLUSH PRIVILEGES;
<a name="Tbwxd"></a>#### 3.1.2 Hive安装
下载Hive软件,并解压缩 cd /opt/lagou/software tar zxvf apache-hive-2.3.7-bin.tar.gz -C ../servers/ cd ../servers mv apache-hive-2.3.7-bin hive-2.3.7
- 修改环境变量
在 /etc/profile 文件中增加环境变量
export HIVE_HOME=/opt/lagou/servers/hive-2.3.7 export PATH=$PATH:$HIVE_HOME/bin
执行并生效
source /etc/profile
- 修改 Hive 配置- cd $HIVE_HOME/conf vi hive-site.xml 增加以下内容
<?xml version=”1.0” encoding=”UTF-8” standalone=”no”?> <?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
- 拷贝 MySQL JDBC 驱动程序- 将 mysql-connector-java-5.1.46.jar 拷贝到 $HIVE_HOME/lib- 初始化元数据库
[root@linux123 ~]$ schematool -dbType mysql -initSchema
- 启动Hive,执行命令
启动hive服务之前,请先启动hdfs、yarn的服务
[root@linux123 ~]$ hive hive> show functions;
- Hive 属性配置可在 hive-site.xml 中增加以下常用配置,方便使用 <br /> 数据存储位置
显示当前库
显示表头属性
本地模式
- Hive的日志文件Hive的log默认存放在 /tmp/root 目录下(root为当前用户名);这个位置可以修 改。
vi $HIVE_HOME/conf/hive-log4j2.properties
添加以下内容:
property.hive.log.dir = /opt/lagou/servers/hive-2.3.7/logs
- 添加第三方用户(Hadoop)
groupadd hadoop
-m:自动建立用户的登入目录
-g:指定用户所属的起始群组
-G<群组>:指定用户所属的附加群组
-s:指定用户登入后所使用的shell
useradd -m hadoop -g hadoop -s /bin/bash passwd hadoop visudo
在100行后添加。允许用户执行sudo,免密
hadoop ALL=(ALL) NOPASSWD:ALL
<a name="InWsp"></a>## 4. Hive命令- -e不进入hive交互窗口,执行sql语句
hive -e “select * from users”
- -f:执行脚本中sql语句
创建文件hqlfile1.sql,内容:select * from users
执行文件中的SQL语句
hive -f hqlfile1.sql
执行文件中的SQL语句,将结果写入文件
hive -f hqlfile1.sql >> result1.log
- 在命令行执行 shell 命令 / dfs 命令
hive> ! ls; hive> ! clear; hive> dfs -ls / ; ```
