小小千想和您聊一聊

当前位置: 首页> 技术分享> 大数据之hive入门操作

大数据之hive入门操作

  一、hive产生背景

  Apache Hive数据仓库软件可以使用SQL方便地阅读、编写和管理分布在分布式存储中的大型数据集。结构可以投射到已经存储的数据上。提供了一个命令行工具和JDBC驱动程序来将用户连接到Hive。

  • 由Facebook开源,最初用于解决海量结构化的日志数据统计问题

  • MapReduce编程的不便性

  • HDFS上的文件缺少Schema(字段名,字段类型等)

  二、Hive是什么

  • 构建在Hadoop之上的数据仓库

  • Hive定义了一种类SQL查询语言:HQL(类似SQL但不完全相同)

  • 通常用于进行离线数据处理(采用MapReduce)

  • 底层支持多种不同的执行引擎(Hive on MapReduce、Hive on Tez、Hive on Spark)

  • 支持多种不同的压缩格式、存储格式以及自定义函数(压缩:GZIP、LZO、Snappy、BZIP2.. ; 存储:TextFile、SequenceFile、RCFile、ORC、Parquet ; UDF:自定义函数)

  到底什么是Hive,我们先看看Hive官网Wiki是如何介绍Hive的(https://cwiki.apache.org/confluence/display/Hive/Home):

  Apache Hive Apache Hive™ 数据仓库软件为分布式存储的大数据集上的读、写、管理提供很大方便,同时还可以用SQL语法在大数据集上查询。

  1、是一种易于对数据实现提取、转换、加载的工具(ETL)的工具。可以理解为数据清洗分析展现。 2、它有一种将大量格式化数据强加上结构的机制。 3、它可以分析处理直接存储在hdfs中的数据或者是别的数据存储系统中的数据,如hbase。 4、查询的执行经由mapreduce完成。 5、hive可以使用存储过程 6、通过Apache YARN和Apache Slider实现亚秒级的查询检索。

  三、hive的安装

  1.hive的单机安装(使用derby做元数据存储)

  • 安装包准备

  将hive安装包 apache-hive-1.2.1-bin.tar.gz 上传到虚拟机/bigdata/下

  JDK安装包 jdk-8u151-x64.gz

  集群的准备(linux1,linux2,linux3)

  • hive的解压安装

  将上传的hive解压缩至虚拟机/app目录下

  tar -zxvf /app/apache-hive-1.2.1-bin.tar.gz -C /app

  mv /app/apache-hive-1.2.1-bin/ /app/hive-1.2.1

  • 配置hive的配置文件

  查看配置文件内容

  拷贝配置文件hive-env.sh.template为hive-env.sh

  cp /app/hive-1.2.1/conf/hive-env.sh.template /app/hive-1.2.1/conf/hive-env.sh

  vim /app/hive-1.2.1/conf/hive-env.sh

  • 配置hive的环境变量

  vim /etc/profile

  source /etc/profile

  which hive

  • 启动hadoop集群

  • 启动hive服务

  hive

  • 查看数据库

  show databases;

  • 创建数据库

  create database myhive;

  show databases;

  • 创建表

  create table student(id int,chinese string,math string,English string);

  • 加载数据并查询

  load data local inpath '/root/student.txt' into table student;

  select * from student;

  2.hive的独立安装模式(使用mysql做元数据存储)

  • 安装MySQL服务器端和MySQL客户端,并启动mysql服务。

  • 在linux1上为Hive建立相应的MySQL账户,并赋予足够的权限

  create user 'hive' identified by '123456';

  GRANT ALL PRIVILEGES ON *.* TO hive@'%' IDENTIFIED BY '123456' with grant option;

  GRANT ALL PRIVILEGES ON *.* TO hive@'localhost' IDENTIFIED BY '123456' with grant option;

  flush privileges

  查看是否成功

  • 在内嵌模式下继续配置hive:hive-site.xml,hive-env.sh

  配置hive-env.sh

  配置hive-site.xml,拷贝/app/hive-1.2.1/conf下的hive-default.xml文件为hive-site.xml

  cp /app/hive-1.2.1/conf/hive-default.xml.template /app/hive-1.2.1/conf/hive-site.xml

  vim /app/hive-1.2.1/conf/hive-site.xml

  • 拷贝数据驱动jar包到指定目录/app/hive-1.2.1/lib/下。没有驱动包会报错

  • 使用命令行的方式启动hive服务,然后查看数据库,创建数据库名为heihei,查看集群web页面

  查看集群web页面,可以看见在hdfs上生成了对应heihei数据库的文件目录

  • 使用beeline访问hive

  exit命令退出刚才的hive服务,在linux1上修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项, 通过httpfs接口匿名的方式登录到hdfs文件系统。然后重新启动集群。

 <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

  使用命令hive --service hiveserver2 & 后台启动hive服务

  hive --service hiveserver2 &

  克隆窗口作为客户端连接,执行beeline脚本

  连接服务端,这种方式使用了thrift服务,10000为默认的连接端口号

  !connect jdbc:hive2://linux1:10000

  验证连接的是不是我们刚才用命令行方式访问的hive服务

上一篇:HTML5工具初识之网页编辑器

下一篇:marpreduce快速入门

QQ技术交流群

千锋大数据官方①群
857910996

加入群聊