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



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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea激活插件(在线激活)

    idea激活插件(在线激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    730
  • springboot启动流程概述_简述app启动的主要流程

    springboot启动流程概述_简述app启动的主要流程又回顾了springboot启动流量,有了新的理解,进行以下补充:1、listeners.starting()等方法,第一次出现了误解,以为是启动监听器,但是我很奇怪监听器为什么要启动。再次看源码,才知道不同的方法是用来发布不同的事件,此方法就是发布ApplicationStartingEvent事件。可见看源码还是要耐心。…

    2022年8月21日
    8
  • win10 java jdk环境变量 配置

    win10 java jdk环境变量 配置以前只是大概说了以下jdk配置的注意事项,今天准备详细记录一下,万一以后用的着呢。当然这不是我的原创工作,只是把网上有的内容整合了以下。首先到官网将jdk的安装包下载下来,这是网址(http://www.oracle.com/technetwork/java/javase/downloads/index.html)进去以后会看到如下画面:点击左边的JavaPlatform(JD

    2022年7月21日
    17
  • WIN10系统菜单键按下无反应解决办法

    WIN10系统菜单键按下无反应解决办法今天中午,电脑的菜单键突然不好用了,搜索键也不能用,上百度经验也找了。那些方法多试过了,都不好用,最后在百度知道那找到了答案,特此分享给大家:1. 在键盘上按下win+R键,或在开始菜单图标上点击右键选择运行;2. 输入powershell,按下“确定”运行;3. 在窗口里输入或复制粘贴以下命令,注意只有一行:Get-AppxPackage|%{Add-AppxPackage-Di…

    2022年5月22日
    53
  • java setscale_BigDecimal.setScale(int newScale, int roundingMode)方法实例「建议收藏」

    java setscale_BigDecimal.setScale(int newScale, int roundingMode)方法实例「建议收藏」java.math.BigDecimal.setScale(intnewScale,introundingMode)返回一个BigDecimal,其精度为指定值,其非精度值乘以或除以此BigDecimal的非精度值除以10,以保持其整体值。如果该精度是减少了操作中,未缩放的值必须被除(而不是乘),并且该值可以被改变。在这里,指定的舍入模式应用到除法。由于BigDecimal对象是不可变的,这…

    2022年10月20日
    2
  • 翻译软件市场分析_it软件开发 2019年小结

    翻译软件市场分析_it软件开发 2019年小结「译」软件开发趋势 2019 调查报告

    2022年4月22日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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