-Hive-4-综合实战

数据Hive综合项目实验分析 1.在实验前开启Hadoop集群 master:start-dfs.sh slave1: satart-yarn.sh 注:namenode出现安全模式解决办法 hdfs dfsadmin -safemode leave 2.数据准备 将实验所有数据导入虚拟机中。 推荐路径 历史微博数据:/root/data/weibo 用户注册数据:/root/data/user 3.将存放历史微博数据合并 cd/root/data/weibo 4.创建实验所需要用到的数据库: crea... 阅读详情

1 需求

求各个区域下最受欢迎的产品的TOP

2 准备数据

MySQL

mysql> show tables;
+------------------+
| Tables_in_rzdata |
+------------------+
| city_info        |
| product_info     |
+------------------+


mysql> select * from city_info;
+---------+-----------+------+
| city_id | city_name | area |
+---------+-----------+------+
|       1 | BEIJING   | NC   |
|       2 | SHANGHAI  | EC   |
|       3 | NANJING   | EC   |
|       4 | GUANGZHOU | SC   |
|       5 | SANYA     | SC   |
|       6 | WUHAN     | CC   |
|       7 | CHANGSHA  | CC   |
|       8 | XIAN      | NW   |
|       9 | CHENGDU   | SW   |
|      10 | HAERBIN   | NE   |
+---------+-----------+------+


mysql> select * from product_info limit 5;
+------------+--------------+----------------------+
| product_id | product_name | extend_info          |
+------------+--------------+----------------------+
|          1 | product1     | {"product_status":1} |
|          2 | product2     | {"product_status":1} |
|          3 | product3     | {"product_status":1} |
|          4 | product4     | {"product_status":1} |
|          5 | product5     | {"product_status":1} |
+------------+--------------+----------------------

用户行为日志:Hive

#用户id,session id,访问时间,城市id,产品id
95,2bf501a7637549c89cf55342331b15db,2016-05-05 21:01:56,1,72
95,2bf501a7637549c89cf55342331b15db,2016-05-05 21:52:26,1,68
...
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:49:43,9,37
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:55:46,9,96
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:24:13,9,67
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:06:52,9,29
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:02:52,9,92
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:19:27,9,12
53,561e94c2fa99467d956a26d55aab3cb6,2016-05-05 3:10:07,9,18



create table user_click(
user_id int,
session_id string,
action_time string,
city_id int,
product_id int
) partitioned by (date string)
row format delimited fields terminated by ',';

load data local inpath '/home/hadoop/data/topn/init/user_click.txt' overwrite into table user_click partition(date='2016-05-05');
	
select count(1) from user_click where='2016-05-05';

3分析

需求:
区域下受欢迎的产品的TOPN,但是hive表里现在并没有区域信息,我们的区域信息是存放在MySQL里面的,如何才能使用hive来统计呢?

1)city表和product_info表  放到Hive里面
2)通过user_click关联Hive里面的city_info和product_info
3)再使用窗口函数求分组内的TOPN 

有办法完成Hive表 JOIN MySQL表吗? 需要借助工具sqoop.

4 sqoop简介

Sqoop: RDBMS(关系型数据库) 与Hadoop(HDFS/Hive/HBase) 导入和导出的一个工具。
以Hadoop为基准点进行理解,导入:外面的东西 导到==> HDFS;导出: 导出去<== HDFS

下载和解压

wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.7.0.tar.gz
tar -zxvf ./sqoop-1.4.6-cdh5.7.0 .tar.gz
权限
sudo chown -R hadoop:hadoop ./sqoop-1.4.6-cdh5.7.0
sudo chmod -R 777 ./sqoop-1.4.6-cdh5.7.0
sudo mv sqoop-1.4.6-cdh5.7.0 /opt
sudo ln -s /opt/sqoop-1.4.6-cdh5.7.0 /sqoop
#配置环境变量
vi /etc/profile
	export SQOOP_HOME=/sqoop
	export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile
添加mysql驱动
sudo cp /hive/lib/mysql-connector-java-5.1.37.jar /sqoop/lib
sqoop有个bug,少几个jar包
sudo cp /java-json.jar /sqoop/lib
sudo cp /hive/lib/hive-common-1.1.0-cdh5.7.0.jar /sqoop/lib/
sudo cp /hive/lib/hive-shims-*.jar /sqoop/lib/
配置sqoop
cp /sqoop/conf/sqoop-env-template.sh /sqoop/conf/sqoop-env.sh
vi /sqoop/conf/sqoop-env.sh
	export HADOOP_COMMON_HOME=/hadoop
	export HADOOP_MAPRED_HOME=/hadoop
	export HIVE_HOME=/hive

命令帮助

     ./sqoop --help
        ./sqooop list-databases --help
        ./sqoop help import
分隔符:
--input-fields-terminated-by
--fields-terminated-by
  条件: --where "TBL_ID>20"	
   SQL: --query/-e:     query和table不能同时使用     

#导入city_info,路径/user/hadoop/city_info
#delete-target-dir 先删除在导入
#-m 1 使用一个map
#columns导入指定column
#target-dir 目标路径

sqoop import \
--connect jdbc:mysql://hadoop001:3306/test \
--password root@1234% \
--username root \
--table city_info \
--delete-target-dir \
-m 1 \
--hive-database default \
--hive-table city_info \
--hive-import \
--hive-overwrite \
--fields-terminated-by '\t';

#导入product_info

sqoop import \
--connect jdbc:mysql://hadoop001:3306/test \
--password root@1234% \
--username root \
--table product_info \
--delete-target-dir \
-m 1 \
--hive-database default \
--hive-table product_info \
--hive-import \
--hive-overwrite \
--fields-terminated-by '\t';

#先把user_click和city_info,product_info进行关联

create table area_product_tmp as
select c.area,p.product_name  from 
user_click uc
left join city_info c on c.city_id=uc.city_id
left join product_info p on p.product_id=uc.product_id;

#统计每个区域下的每个产品的点击数
create table area_product_group_tmp as
select area,product_name ,count(*) total_click
from area_product_tmp
group by area,product_name;

#窗口函数进行top n

select '2016-05-05' date,tmp.* from(
select area,product_name,total_click,row_number() over(partition by area order by total_click desc) r
from area_product_group_tmp
) tmp
where tmp.r<=3; 

#mysql创建接收hive导出数据的表

create table area_product_top3 (
date varchar(50),
area varchar(50),
product_name varchar(50),
total_click int
); 

#sqoop导出

sqoop export \
--connect jdbc:mysql://hadoop001:3306/test \
--password root@1234% \
--username root \
--columns "date,area,product_name,total_click" \
--fields-terminated-by '\t' \
--export-dir /user/hive/warehouse/area_product_top3 \
--table area_product_top3 \
-m 2;

#mysql查看导出情况

select * from area_product_top3;


sqoop import \
--connect jdbc:mysql://localhost:3306/ruozedata_d7 \
--password root \
--username root \
--table TBLS \
--mapreduce-job-name MySQL2HDFS_EMP \
--delete-target-dir \
-m 2

使用shell脚本封装这个业务线的所有代码的思路

  1. 我们离线是一天一次,是今天凌晨去运行昨天的数据
    通过linux命令获取当前天,格式是2016-05-05 -1的到昨天的日期
    加:date +%y-%m-%d
    减:date --date=‘1 day ago’ +%y-%m-%d

vi ./t.sh

#!/bin/sh
current_date=‘date +%y-%m-%d’
echo$current_date

FROCESS_DATE=‘date --date=‘1 day ago’ +%y-%m-%d’
echo$FROCESS_DATE

echo “hive step1 start…”
hive -e “use d7_hive;select * from city_info”
echo “hive step1 stop…”

chmod +x t.sh

  1. city_info product_info通过其他的脚本导入
  2. 所有的sql封装到shell hive -e sql语句
    注意点:
    a) 每次创建的临时表,在执行之前一定要先删除,要使用if not exits
    b) 关键的执行要有日志输出
    c) 统计结果输出,如何解决幂等性问题

所有的业务逻辑都封装在shell里面了,但是如何触发呢?
oozie、azkaban等调度工具,那么使用crontab触发,每天凌晨2点开始执行

hive综合案例 hive的综合案例实战 1、需求描述 统计youtube影音视频网站的常规指标,各种TopN指标: –统计视频观看数Top10 –统计视频类别热度Top10 –统计视频观看数Top20所属类别 –统计视频观看数Top50所关联视频的所属类别Rank –统计每个类别中的视频热度Top10 –统计每个类别中视频流量Top10 –统计上传视频最多的用户Top10以及他们上传的视频 –统计每个类别视频观看数Top10 2、项目表字段 1、数据结构 1.视频表 字段 备注 详细描述 video id 阅读详情

相关推荐

Hive综合案例实战

一 、数据源的准备工作 首先我们去一个网站下载相关的数据,之后通过hive导入进行实验.http://grouplens.org/ 二 、内部表 创建内部表并载入数据 hadoop@hadoopmaster:~$ beeline-u jdbc:hive2://hadoopmaster:10000/ Beelineversion2.1.0byApacheHive 0:jdbc:hive2://hadoopmaster:10000/> show databases;

笑出弧度的程序员的博客 1294

hive综合案例实战

hive综合案例实战1、需求描述2、项目表字段2,1 数据结构3、ETL原始数据清洗4、项目建表并加载数据4.1 创建表4.2 导入ETL之后的数据(ODS层 textfile)4.3 向ORC表插入数据(DW层 ORC + snappy)5、业务分析5.1 统计视频观看数Top105.2 统计视频类别热度Top105.3 统计出视频观看数最高的20个视频的所属类别以及类别包含Top20视频的个数5.4 统计视频观看数Top50所关联视频的所属类别排名5.5 统计每个类别中的视频热度Top10,以Music

HanSion.Z 2210

Hive调优及Hive综合案例(3)

文章目录前言❤ღ( ´・ᴗ・` )比心 前言 你们好我是啊晨 今儿更新hive技术 废话不多说,内容很多选择阅读,详细。 请: 一、Hive调优 1.1 Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到...

啊晨 1100

学习Cloudera Hadoop 4系列实战课程资料

最近一直在学习Hadoop,没办法,工作需要,最近在网上收集资料时,看到了一个课程,叫Cloudera Hadoop 4系列实战课程(电商业日志流量分析项目),把课程内容的大概给大家看一下,有40课时,看了觉得很实用,打算认真深入学习学习。 课程大纲如下: 第一章(9讲) ·cloudera manager 介绍和安装 ·chd4.1 介绍 ·chd4.1 安装 ·chd4

zgl5651的专栏 1233

Hive分区表实战 - 单分区字段

在本Hive分区表管理实战中,我们通过一系列实际操作演示了如何有效地利用分区功能来组织和查询大规模数据。首先,创建了一个名为book的内部分区表,其结构包含id与name字段,并根据country字段进行分区。接下来,准备并加载了不同国家(中国和英国)书籍的数据文件到对应的分区目录中。为了展示分区灵活性,我们还模拟了手动创建新分区(日本),上传数据文件并通过命令将新分区纳入表的元数据管理中。此外,实战还涉及分区的删除、重命名等操作,直观展示了Hive如何同步更新分区状态至HDFS存储及元数据层面。

m0_75130002的博客 1502

Hive实战:词频统计

文章目录一、实战概述二、提出任务三、完成任务(一)准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录(二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS文件创建外部表4、查询单词表,所有单词成一列5、基于查询结果创建视图6、基于视图进行分组统计7、基于嵌套查询一步搞定 一、实战概述 在本次实战中,我们任务是在大数据环境下使用Hive进行词频统计。首先,我们在master虚拟机上创建了一个名为test.txt的文本文件,内容包含一些关键词的句

2301_76213660的博客 1264

Hive综合应用案例——用户学历查询

[Hive综合应用案例——用户学历查询 ---------- 禁止修改 ---------- drop database if exists mydb cascade; ---------- 禁止修改 ---------- ---------- begin ---------- ---创建mydb数据库 create database if not exists mydb; ---使用mydb数据库 use mydb; ---创建表user create table usertab(

Deng872347348的博客 1万+

大数据Hive(十二):Hive综合案例

全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。 目录 系列历史文章 前言 Hive综合案例 一、需求描述 二、项目表的字段 三、进行数据的清洗工作 ​​​​​​​四、准备工作 1、创建 hive 表 2、导入ETL后的数据 3、向ORC表插入数据 ​​​​​​​五、业务分析 1、统计视频观看数 top10 2、统计视频类别热度Top10 3、 统计出视频观看数最高的20个视频的所属类别以及...

Lansonli(蓝深李)的博客 4743

Hadoop+Hive数据分析综合案例

聊天平台每天都会有大量的用户在线,会出现大量的聊天数据,通过对聊天数据的统计分析,可以更好的对用户构建精准的用户画像,为用户提供更好的服务以及实现高ROI的平台运营推广,给公司的发展决策提供精确的数据支撑。我们将基于一个社交平台App的用户数据,完成相关指标的统计分析并结合BI工具对指标进行可视化展现。

weixin_43977307的博客 1万+

《Hive零基础从入门到实战》连载目录

前言 本文是Hive零基础从入门到实战系列的传送门,会持续更新直至本系列完结~ (一)入门篇 01. 环境搭建 02. Linux系统简单操作(上) 03. Linux系统简单操作(中) 04. Linux系统简单操作(下) 05. Hive常用数据类型 06. HiveQL:数据库操作 07. HiveQL:表操作(上) 08. HiveQL:表操作(下) 09. 如...

风影楼的博客 5920

网站流量数据分析 (MapReduce+Hive综合实验)

网站流量数据分析 (MapReduce+Hive综合实验)

HIVE 原理总结及实战项目

目录 课程大纲(HIVE增强) 3 1. Hive基本概念 4 1.1 Hive简介 4 1.1.1 什么是Hive 4 1.1.2 为什么使用Hive 4 1.1.3 Hive的特点 4 1.2 Hive架构 5 1.2.1 架构图 5 1.2.2 基本组成 5 1.2.3 各组件的基本功能 5 1.3 Hive与Hadoop的关系 6 1.4 Hive与传统数据库对比 6 1.5 Hive的数...

LouisLee 的博客 2517

新英格兰10机39节点matlab建模,ieee10机39节点系统数据

【实例简介】ieee10机39节点系统数据,主要是BPA数据!【实例截图】【核心代码】ne_039_bus└── ne_039_bus├── 039readme.doc├── bpa│ ├── 039bpa.dat│ ├── 039bpa.swi│ ├── LFerr.LIS│ ├── OneNote 目录.onetoc2│ └── STERR.LIS├── eurostag│...

weixin_39851809的博客 3273

openEuler 安装 hive4

openEuler 安装 hive4

桃李不言下自成蹊 1万+

用PLECS搞定三相逆变器电流环:从传递函数推导到PI参数整定的保姆级教程

本文提供了一份详细的PLECS教程,指导如何从传递函数推导到PI参数整定,实现三相逆变器电流环的闭环控制。通过坐标变换、控制器设计和仿真验证等步骤,帮助工程师快速掌握电流环控制技术,提升电力电子系统的稳定性和可靠性。

weixin_27102543的博客 399

电压比较器---滞回比较器(施密特触发器)

当输入电压从小电压开始增加,当其大于VT+时,电压比较器输出低电平,此时阈值电压变成下门限电压(VT-);当输入电压从大电压开始减小,当其小于VT-时,电压比较器输出高电平,此时阈值电压变成上门限电压(VT+);只有当第一次超过上门限电压或者下门限电压值,电压比较器的输出才会翻转变化;Uo为比较输出电压,有两种电压状态VoH(高电平)和VoL(低电平);当Uo输出为高时,电压比较器的阈值电压是上门限电压(VT+);当Uo输出为低时,电压比较器的阈值电压是下门限电压(VT-);Vref为比较参考电压;

weixin_69076249的博客 1万+

Hive2.0安装完整版——Hive2.3.4

@羲凡——只为了更好的活着 Hive安装完整版——Hive2.3.4 Hive是大数据生态圈中最常用的数据仓库,也是有hadoop集群的公司的必备。所以hive安装和使用也是大数据开发或运维人员都必须掌握的。hive的安装很简单,而且各版本的安装都非常类似,完全可以套用。此文中选择Hive2.3.4作为示范! 一、下载对应的安装包 1.下载mysql驱动 下载地址如下 http://central...

@羲凡—只为更好的活着 8417

音视频入门:H264、H265概念总结

添加链接描述 什么是H.264与H.265 H.264与H.265都是视频压缩格式,由于视频本身的码流太大,所以需要经过压缩然后再通过网络进行传输。H.264是目前比较主流的压缩算法,像视频会议设备一般都采用这个编码格式。基础的H.264可以支持在1M带宽下传输720P30帧/秒的图像;H.264 HIGH PROFILE支持在512K带宽下传输720P30帧/秒的图像。 H.265是比较新的压缩算法,可以更一步提高压缩比,随着我们现在生活中出现的视频格式越来越大(比如现在基本都是1080P甚至4K的显示器

weixin_40673765的博客 8937

hive实战

本文转自:http://www.cnblogs.com/xuqiang/archive/2011/06/15/2081796.html   1. 安装hive 2. hive实战 3. hive存储模型 4. 深入hql查询语言 5. 参考资料及代码下载  &lt;1&gt;. 安装hive  下载hive,下载地址http://mirror.bjtu.edu.cn/a...

有时间就有历史,有历史就有传奇。 470

Armbian 国内源一键配置:告别卡顿,加速软件更新

本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。

weixin_29215815的博客 243

【完整梳理验证】企业微信第三方应用接入全流程java版

由企业内部的开发者自己开发部署,相当于是企业自己的资产,调用接口基本没有任何限制。由SaaS服务商的开发者开发并部署在服务商侧,面向所有企业。需要企业授权使用(先试用后付费),服务商仅可获取企业授权部分的权限,相当于白名单控制。由服务商的开发者开发,但部署在企业内部。一般是线下签约采购方式,因此权限几乎与自建应用无异,企业管理员只需要配置不对服务商开放的敏感权限,相当于黑名单控制。服务商后台地址:企业微信服务商官网企业管理后台地址:企业微信管理后台服务商,可以理解为 SAAS 中的运营端。企业管理端,可以理

Hello, New World! 2761

【已解决】【大数据综合案例】上| Hive与MongoDB配置

启动时,当屏幕上出现“Hive Session ID = 6bd1726e-37c5-41fc-93ea-ef7e176b24f2”信息时,会停留较长的时间,需要出现几个“Hive Session ID=...”以后,Hive才会真正启动。启动成功以后,会出现如图所示信息。由于 MongoDB 3.2 版本已经不再受支持,删除指向该版本的仓库配置,并安装 MongoDB 4.4 或更高版本。,在目录“/usr/local/hive”下,执行以下命令开启hiveserver2,并且设置默认端口为10000。

Kika写代码的博客 1816

电子凸轮追剪算法深度解析:2500字图解+代码实战

工艺需求:在物料连续运动过程中完成精准切割核心矛盾:切割瞬间刀具与物料必须绝对同步传统方案:机械凸轮(结构复杂,调整困难)现代方案:电子凸轮(柔性可调,精度更高)

QQ_778132974的博客 1112
上一篇: -Hive-Apache.org(官网)使用手册
下一篇: 运用python实现企业微信群机器人消息推送
吾..二..二
博客等级 码龄8年 4粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值