hive数据仓库工具

1、hive是一套操作数据仓库的应用工具,通过这个工具可实现mapreduce的功能

2、hive的语言是hqlhive query language

3、官网hive.apache.org 下载hive软件包地址 Welcome! - The Apache Software Foundationhttps://archive.apache.org/

4、hive在管理数据时分为元数据和真数据,其中元数据要保存在数据库中,比如mysql,真数据保存在hdfs中

5、Hive环境搭建

(01)检测系统是否自带安装 MySQL:rpm -qa | grep mysql

(02)若有安装mysql则卸载:rpm -e mysql 或 rpm -e --nodeps mysql

(03)检测是否已安装自带的 mariadb 数据库:rpm -qa|grep mariadb

(04)若有安装则卸载:rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64

(05)把安装包MySQL-5.5.40-1.linux2.6.x86_64.rpm-bundle.tar.gz复制到/opt/software目录下

(06)创建目录:mkdir /opt/software/mysql

(07)解压到指定目录下:tar -xvf MySQL-5.5.40-1.linux2.6.x86_64.rpm-bundle.tar -C ./mysql

(08)安装服务器:rpm -ivh MySQL-server-5.5.40-1.linux2.6.x86_64.rpm

【注】若安装中提示缺少依赖包则安装:yum -y install libaio 或 yum -y install perl

(09)安装客户端:rpm -ivh MySQL-client-5.5.40-1.linux2.6.x86_64.rpm

(10)启动 mysql 服务:systemctl start mysql

(11)查看 mysql 服务状态:systemctl status mysql

【注】可以通过 systemctl stop mysql 关闭 mysql 服务

(12)登录 mysql 客户端:mysql -uroot -p 未设密码直接回车

(13)设置 mysql root 用户密码:set password=password('123');

(14)退出客户端:exit 然后重新登录测试密码是否生效:mysql -uroot -p123 并查看数据库信息

(15)查看 mysql 数据库的 user 表:select host,user,password from mysql.user;

(16)若让 root 用户可以远程连接的设置:

grant all privileges on *.* to `root`@`%` identified by '123';

grant all privileges on *.* to `root`@`hadoop101` identified by '123';

flush privileges;

exit;

(17)重新启动 mysql 服务:systemctl restart mysql.service

(18)通过windows端测试远程访问:mysql -hhadoop101 -uroot -p123

(19)将软件包 hive-1.1.0-cdh5.14.2.tar.gz 上传到 /opt/software 目录下

(20)解压到指定的目录:tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt/install

(21)配置软链接:ln -s /opt/install/hive-1.1.0-cdh5.14.2 /opt/install/hive

(22)配置环境变量:vi /etc/profile

export HIVE_HOME=/opt/install/hive

export PATH=PATH:HIVE_HOME/bin

(23)使环境变量生效:source /etc/profile

(24)创建Hive配置文件:vi /opt/install/hive/conf/hive-site.xml

<configuration>

<property>

<name>hive.metastore.warehouse.dir</name>

<value>/hadoop/hive/warehouse</value>

</property>

<!-- mysql 数据配置 -->

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://hadoop101:3306/hive?useUnicode=true&amp;characterEncoding=utf8&amp;createDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>123</value>

</property>

<!-- 配置 Hive 临时文件存储地址 -->

<property>

<name>hive.exec.scratchdir</name>

<value>/hadoop/hive/data/hive-${user.name}</value>

</property>

<property>

<name>hive.exec.local.scratchdir</name>

<value>/hadoop/hive/data/${user.name}</value>

</property>

</configuration>

(25)复制文件:cp hive-env.sh.template hive-env.sh

(26)修改文件:vi hive-env.sh

HADOOP_HOME=/opt/install/hadoop

export HIVE_CONF_DIR=/opt/install/hive/conf

export HIVE_AUX_JARS_PATH=/opt/install/hive/lib

(27)创建目录:mkdir -p /opt/install/hive/logs

(28)复制文件:cp hive-log4j.properties.template hive-log4j.properties

(29)修改文件:vi hive-log4j.properties

hive.log.dir=/opt/install/hive/logs

(30)上传 mysql-connector-java-5.1.47-bin.jar 到 /opt/install/hive/lib/ 目录下

(31)启动 hive :hive 直接回车【注】先启动hdfs、yarn和mysql

(32)查看元数据库信息:show databases;

(33)进入 mysql 中,查看有无 hive 数据库

【注】若需为字段名和表添加中文注释,可修改以下内容

ALTER TABLE DBS MODIFY COLUMN `DESC` VARCHAR(4000) CHARACTER SET utf8;

ALTER TABLE TABLE_PARAMS MODIFY COLUMN PARAM_VALUE TEXT CHARACTER SET utf8;

ALTER TABLE COLUMNS_V2 MODIFY COLUMN COMMENT VARCHAR(256) CHARACTER SET utf8;

ALTER TABLE PARTITION_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;

ALTER TABLE PARTITION_KEYS MODIFY PKEY_COMMENT VARCHAR(4000) CHARACTER SET utf8;

#ALTER TABLE INDEX_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;

ALTER TABLE TBLS MODIFY COLUMN VIEW_EXPANDED_TEXT MEDIUMTEXT CHARACTER SET utf8;

ALTER TABLE TBLS MODIFY COLUMN VIEW_ORIGINAL_TEXT MEDIUMTEXT CHARACTER SET utf8;

(34)退出 mysql

(35)停止所有服务,包括(hiveserver2,rm,nm,dn,nn)mysql

(36)做快照

6、启动客户端:

(1)确定先启动hdfs,yarn,mysql,然后再启动hive

(2)确定先启动hdfs,yarn,mysql,然后启动服务:

hive --service hiveserver2 &

最后启动beeline -u jdbc:hive2://hadoop101:10000/default -n root

(3)退出hive: exit;

(4)退出beeline:!exit

7、常用命令:

进入方式:hive---------------------beeline

连接: N/A----------------------!connect jdbc:hive2://hadoop101:10000

查询所有数据库:show databases;

查询当前数据库:select current_database();

切换当前数据库:use 数据库名;

查询所有数据表:show tables;!table(s)

查询表中所有列:desc 表名;!column 表名

保存输出: N/A--------------------!record 文件名

执行linux命令:!命令;---------------!sh 命令

执行hdfs命令:dfs -命令;

执行sql脚本:source 文件名;!run 文件名

退出:quit; or exit;------------------!quit or !exit 注!close关闭连接

8、启动hive的步骤:

(1)systemctl start|status mysql

(2)hadoop-daemon.sh start namenode

(3)hadoop-daemon.sh start datanode

(4)yarn-daemon.sh start resourcemanager

(5)yarn-daemon.sh start nodemanager

(6)hiveserver2 &

(7)beeline

9、集群安装hive注意事项:

(1)在102上安装mysql服务

(2)启动集群zk,hdfs,yarn服务

(3)在102上启动metastore服务,

hive --service metastore &

其他机器需配置hive-site.xml

<configuration>

<property>

<name>hive.metastore.uris</name>

<value>thrift://hadoop102:9083</value>

</property>

</configuration>

然后启动客户端hive即可

(4)在102上启动hiveserver2服务,

hive --service hiveserver2 & 或 hiveserver2 &

其他机器无需配置hive-site.xml,可直接通过启动客户端beeline即可

beeline -ujdbc:hive2://hadoop102:10000 -uroot

相关推荐
ha_lydms3 小时前
HDFS的读写流程
大数据·hadoop·hdfs·mapreduce·yarn·maxcompute·odps
BYSJMG1 天前
大数据毕业设计选题推荐:基于大数据的全球气温历史演变分析与可视化,用Hadoop+Spark处理
大数据·hadoop·分布式·信息可视化·spark·kmeans·课程设计
fastjson_1 天前
Hive 自定义函数
数据仓库·hive·hadoop
Gent_倪1 天前
MySQL 与 Hive 语法异同点详解
数据库·hive·mysql
lhldsg2 天前
智慧场馆解决方案软件开发实战:从需求分析到落地部署全流程
数据库·数据仓库·需求分析
迈巴赫车主2 天前
Doris简介
大数据·数据仓库·doris
张工在路上3 天前
WPF 布局基础概述
大数据·hadoop·wpf
BYSJMG3 天前
计算机毕设选题|基于大数据与文本挖掘的自动驾驶事故成因分析及可视化研究|Hadoop+PySpark+Django+Vue
大数据·hadoop·信息可视化·django·自动驾驶·kmeans·课程设计
weixin_307779134 天前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
邀星月为媒4 天前
从零打造一个属于自己的 AI Agent:Core Hive Agent 开源项目解析
人工智能·hive·开源