hive数据仓库工具

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

2、hive的语言是hql[hive 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

相关推荐
Natural_yz5 小时前
大数据学习09之Hive基础
大数据·hive·学习
Natural_yz5 小时前
大数据学习10之Hive高级
大数据·hive·学习
不二人生5 小时前
SQL面试题——连续出现次数
hive·sql·面试
大数据魔法师6 小时前
Hadoop生态圈框架部署(六)- HBase完全分布式部署
hadoop·分布式·hbase
紫色沙7 小时前
大数据专业为什么要学习Hadoop课程
大数据·hadoop·学习
字节数据平台10 小时前
基于OLAP湖仓一体架构,火山引擎ByteHouse助力企业降本提效
数据仓库·火山引擎
isNotNullX10 小时前
数据仓库还是数据集市?这俩怎么选?
大数据·数据仓库·分布式·etl
武子康11 小时前
大数据-218 Prometheus 插件 exporter 与 pushgateway 配置使用 监控服务 使用场景
大数据·hive·hadoop·flink·spark·prometheus
解怡椿13 小时前
Zookeeper的安装与使用
大数据·hadoop·zookeeper
⚆Pearl13 小时前
【Hadoop实训】Flume系统负载均衡测试
服务器·hadoop·负载均衡·flume