10_hadoop之hive

10_hadoop之hive

什么是Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将SQL转换为MapReduce程序

10_hadoop之hive

Hive的特点

•可扩展Hive可以自由的扩展集群的规模,一般情况下不需要重启服务

•延展性Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

•容错良好的容错性,节点出现问题SQL仍可完成执行

Hive与Hadoop的关系

10_hadoop之hive

hive环境搭建:

由于hive是基于Hadoop的。所以首先要保证你的hadoop环境是能够更正常运行的。对于haddop环境的搭建,请参照之前的文章。

1.hive的下载:http://mirror.bit.edu.cn/apache/hive/

10_hadoop之hive

2.上传


3.解压 tar -zxvf apache-hive-2.3.2-bin.tar /usr/local/hive

4.配置

① 配置环境变量

export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HIVE_HOME/bin

10_hadoop之hive

② 重新加载环境变量配置
source /etc/profile

③ 验证环境变量配置是否确 echo  $HIVE_HOME
10_hadoop之hive
④ 执行hive命令,验证hive运行是否正常,hive需要运行在hadoop上,所以在运行之前,请先启动你的hadoop
10_hadoop之hive

如果有相应的输出,则hive基本环境正常。

④ hive常用配置
 1 cd /usr/local/hive/conf
 2 cp hive-default.xml.template hive-site.xml
 3 修改  hive.metastore.schema.verification 设定为false

 <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>

 4 创建/usr/local/hive/temp目录,替换${system:java.io.tmpdir}为该目录

 在hive的安装目录下创建一个tmp临时目录

mkdir tmp

10_hadoop之hive


5 替换${system:usr.name} 为root
6 schematool -initSchema -dbType derby 格式化hive内嵌derby数据库
会在当前目录下建立metastore_db数据库

注意:每次执行hive时应该还在同一目录,hive会默认到当前目录下寻找metostore,如果没有就会创建一个新的。那么之前的数据就不能正常使用了
遇到问题,将metastore_db删掉,重新执行命执行命令,实际工作中,经常使用mysql作为metastore的数据库存储

7、启动hive
10_hadoop之hive

8、观察hadoop fs -ls /tmp/hive中目录的创建

9、1 show databases;10_hadoop之hive
2 use default;10_hadoop之hive
10_hadoop之hive
3 create table wordcount(line string);
10_hadoop之hive
4 show tables;
10_hadoop之hive
5 des wordcount;

6 select * from wordcount;
7 drop table doc;
10、观察hadoop fs -ls /user
11、启动yarn

12、使用hive完成wordcount程序的功能:

1 load data inpath ‘/input’ overwrite into table wordcount #将hdfs将根目录下的input目录下的文件中的输入载入到wordcount表中。
10_hadoop之hive
2 select * from wordcount;#查询表中的数据
10_hadoop之hive
3 select split(line,’ ‘)from wordcount;#将数据库中的数据line字段按照空格进行分割
10_hadoop之hive
4 select explode(split(line,’ ‘))from wordcount;#将上边获取到的每一行中的数组数据中的每个单词单独读取作为一行输出
10_hadoop之hive

select explode(split(line,' '))from wordcount;
 为表添加一个新的列,使用上边的查询结果进行填充10_hadoop之hive
5  select word,count(1) as count from (select explode(split(line,’ ‘))as word from wordcount) w group by word;
执行过程
10_hadoop之hive
执行结果:
10_hadoop之hive
13 使用sougou搜索目录做实验 数据文件链接:https://pan.baidu.com/s/1dSqYuy 密码:bvtu
1将日志文件上传到hdfs系统,启动hive

2 根据搜狗日志文件 创建数据表

create table sqr(qtime string,qid string,qword string,a string, url string) row format delimited fields terminated by ',';

10_hadoop之hive

 3 查看表结构

desc sqr; 

10_hadoop之hive

4 载入数据

load data inpath '/sogou.dic' into table sqr;

10_hadoop之hive

5 计算统计结果
create table sql_result as select keyword,count(1) as count from (select qword as keyword from sqr) t group by keyword order by count desc;

6 查询统计结果

10_hadoop之hive



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111285.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • offsetWidth与offsetLeft

    offsetWidth与offsetLeft1、offsetWidth:为元素的width+元素的padding+边框的宽度如图:2、offsetLeft、offsetTop、offsetRight、offsetBottom以offsetLeft为例进行说明,在不同的浏览器中其值不同,且与父元素的position属性(relative,absolute,fixed)有关。现分以下几种情况说明:(测试所用的浏览…

    2022年10月21日
  • linux rm 命令详解,Linux rm命令使用指南「建议收藏」

    linux rm 命令详解,Linux rm命令使用指南「建议收藏」Linux系统的众多命令中,rm命令主要用于删除文件,下面小编就来详解介绍下Linux系统的rm命令,希望对初学者有一定的帮助。名称:rm使用权限:所有使用者使用方式:rm[options]name.。。说明:删除档案及目录。参数:?-i删除前逐一询问确认。-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r将目录及以下之档案亦逐一删除。范例:删除所有C语言程式档;删除前逐一询问确…

    2022年10月29日
  • 十进制小数转化为二进制的方法是_二进制怎么算

    十进制小数转化为二进制的方法是_二进制怎么算》》十进制整数转化为二进制:举例:10 商 余 10/2 5 0 5/2 2 1 2/2 1 0 1/2 0 1 所以10转化为二进制就是“1010”,从下到上,过多的就不说了,整数转化为二进制还是很简单的,只要遇到商为0即可结束。那么,十进制整数转化为二进制的算法会不…

  • 手把手教你如何微信公众号开发「建议收藏」

    手把手教你如何微信公众号开发「建议收藏」   最近的话,发现微信开发其实也有很多挺有意思的地方,比如最近很火的一款游戏“跳一跳”,也让我如此着迷。。但是,今天我所要讲的并不是对于小程序的开发,而是要说一下,关于微信开发的另外一个内容,那就是微信公众号。。  关于,什么是微信公众号,微信公众号怎么申请,这个我就不多说,这些基本的概念不在这里进行讲解,自己可以直接百度就可以找到很多的资源。而我主要讲解一下关于微信公众号开发中,一…

  • c#程序调试(如何使用debug调试)

    c#的Debug.WriteLine()和Trace.WriteLine()有没有例子?1.区别://输出跟踪信息Trace.WriteLine()将有关跟踪的信息写入Listeners集合中的跟踪侦听器在调试和release模式都输出!默认是写到输出窗口的,也可以指定写到指定文件,或系统日志中!//输出调试信息Debug.WriteLine()将有关调试的信息写入Listener

  • Ubuntu 20.04 安装 Docker

    Ubuntu 20.04 安装 Docker检查Ubuntu内核docker需要ubuntu的内核高于3.10uname-rDocker安装#新增更新源sudoecho”debhttps://download.docker.com/linux/ubuntuzestyedge”>/etc/apt/sources.list#step1:安装必要的一些系统工具sudoapt-getupdatesudoapt-get-yinstallapt-transport-httpsca-certi

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号