Hive 简介与安装

Hive 简介与安装,第1张

Hive 简介与安装 Hive Hive的基本介绍

【概念】

  • Hive是构建在Hadoop之上的数据仓库平台
  • Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce作业并在Hadoop上执行。
  • Hive表是HDFS的一个文件目录,一个表名对应一个目录名,如果有分区表的话,则分区值对应子目录名。
  • 其实质将hdfs文件内容变成了表的映射,然后通过mr查询。
  • 底层存储是HDFS,中间执行时MR,或可视为中转代理。

【官网】https://hive.apache.org/
【特点】适合处理大数据;速度一般或较慢(处理小数据);
【特性】

  1. 支持类SQL(HQL[Hiv Query Language] , 但与SQL不同);
  2. 支持大规模文件处理(MR并行计算);
  3. 没有和MR绑定,可支持MR,SPARK等框架;
  4. 存储是基于HDFS,执行基于MR,资源调度是通过yarn完成;

【拓展】 蜜蜂 ; 大象 ;
【环境】基于hadoop ;
【meta元数据库管理器】 Mysql
【版本说明】

  1. hive-2.x ------- hadoop 2.x;
  2. hive-3.x ------- hadoop 3.x
Hive 安装与部署
  1. 检查 Hadoop 环境是否正常;(hadoop version)
  2. 安装Mysql数据库及驱动(如何安装?) 备注:若安装mysql80,需重新下载对应的驱动包;
  3. Hive下载安装
  • 下载并解压Hive,并简化hive的文件名
cd /home/hadoop/software     #切换到安装包的目录 
wget https://dlcdn.apache.org/hive/hive-2.3.9/apache-hive-2.3.9-bin.tar.gz  #下载hive
tar -zvxf apache-hive-2.3.9-bin.tar.gz #解压hive
mv apache-hive-2.3.9-bin  hive   #重命名
  1. Hive 环境变量设置
    修改环境变量
sudo vim /etc/profile
export LANG=zh_CN.UTF8  #编码支持中文
export HIVE_HOME=/home/hadoop/hive
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/lib

让配置生效

source /etc/profile
  1. 下载mysql驱动 jar
https://dev.mysql.com/downloads/connector/j/
wget https://cdn.mysql.com/archives/mysql-connector-java-5.1/mysql-connector-java-5.1.49.tar.gz

将 mysql-connector.jar放置到hive的lib目录下(驱动加载)

mv mysql-connector*.jar hive/lib
  1. 修改hive-site.xml
cd hive/conf

在mysql中创建好database:hivemeta2021

CREATE DATAbase IF NOT EXISTS hivemeta2021 # 数据库名
DEFAULT CHARACTER SET utf8; #数据哭字符编码

添加hive-site.xml的内容




        
    
        javax.jdo.option.ConnectionUserName
        root
    
    
        javax.jdo.option.ConnectionPassword
        123456 
    
   
        javax.jdo.option.ConnectionURLmysql
        jdbc:mysql://192.168.16.3:3306/hivemeta2021?characterEncoding=utf-8&useSSL=false
    
    
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
    
        
  
    hive.exec.script.wrapper
    
    
  

  1. Hive启动与测试
    格式化
    启动hive前,要保证mysql,hadoop启动
start-all.sh #启动 hdfs,yarn管理器;

初始化失败检查要素:hive环境变量;hadoop是否启动;mysql是否能正常连接;

cd hive/bin
schematool -dbType mysql -initSchema  #初始化失败检查要素:hive环境变量;hadoop是否启动;mysql是否能正常连接;

成功提示

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/cyj/software/apache-hive-2.3.7-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/cyj/software/hadoop-2.7.7/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
metastore connection URL:	 jdbc:mysql://192.168.16.3:3306/hivemeta2021?characterEncoding=utf-8&useSSL=false
metastore Connection Driver :	 com.mysql.jdbc.Driver
metastore connection User:	 root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed

启动hive,如果遇到非文件夹的报错,删除hdfs根目录中的文件

hive # 启动hive
  1. 创建hive数据库
hive>create database firsthdb;
hive>use firsthdb;
hive>create table firstable(num int ,name string);
hive>show tables;
hive>select count(*) from firstable;

打开mysql数据库,检查DBS元数据内容;

  • 导入数据
hive>create table employee(id int, name string,age int, tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;# ,表示分隔符
hive>load data local inpath '/home/hadoop/software/employee.txt' into table employee;
hive>select * from empolyee;
hive>load data inpath '/home/hadoop/software/employee01.txt' into table employee;#从hdfs上传文件

外部表;
内部表;
添加表分区;
复杂字段定义

# 1,Lilei,book-tv-code,beijing:chaoyang-shanghai:pudong
# 2,Hanmeimei,book-Lilei-code,beijing:haidian-shanghai:huangpu
hive>create table psn (id int,name string,hobbies ARRAY ,address MAP ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '-'MAP KEYS TERMINATED BY ':'; 
  1. hive数据库 *** 作——删除
hive>drop database testdb; #删除空数据库
hive>drop database cascade; #级联删除
hive>drop table test; #删除表
  1. 在hadoop2中查看网页中的/tmp目录出现下面的错误:
Permission denied: user=dr.who, access=READ_EXECUTE inode="/tmp"

修改hdfs的权限就好了。

$HADOOP_HOME/bin/hdfs dfs -chmod -R 755 /tmp  #chmode要有-

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5688769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存