当前位置: 首页 > article >正文

【人工智能训练师】7 大数据处理与应用

大数据处理与应用(Hive技术)(0/100分)

1.本地开发工具连接Hadoop集群

1.本次环境版本为Hadoop2.7.7,对应eclips插件存放于云主机master:/usr/package277/中。
2.本机映射名为hadoop000,云主机Hadoop/Hive的hosts文件中IP需要修改为内网IP,需要修改为实际内网IP(服务器地址有内外网之分),本地eclipse所在主机需要使用外网IP设置映射;
Linux/Mac系统下文件地址:/etc/hosts
Windows系统下文件地址:C:\Windows\System32\drivers\etc\hosts
在这里插入图片描述

2.云主机搭建的Hadoop集群,集群之间通过内网通信,本地eclipse开发工具需要使用域名进行访问。

Hadoop配置文件是以内网IP作为机器间通信的IP。在这种情况下,我们能够访问到namenode机器,namenode会给我们数据所在机器的IP地址供我们访问数据传输服务,但是当写数据的时候,NameNode和DataNode是通过内网通信的,返回的是datanode内网的IP,我们无法根据该IP访问datanode服务器。将默认的通过IP访问,改为通过域名方式访问。

// 使用hdfs的fs功能,客户端就会访问core-site.xml配置文件
// 设置客户端访问datanode使用hostname来进行访问
conf.set("dfs.client.use.datanode.hostname", "true");
// 设置core-site.xml中的属性fs.defaultFS和属性值,注意主机名必须和设置的hosts主机名一致
conf.set("fs.defaultFS","hdfs://hadoop000:9000");

2.Hive安全配置 (20 / 20分)

为了大数据集群稳定性,类似非全等join(非inner join)是禁止的,禁用了SemanticException笛卡尔产品。

FAILED: SemanticException Cartesian products are disabled for safety reasons. If you know what you are doing, please sethive.strict.checks.cartesian.product to false and that hive.mapred.mode is not set to ‘strict’ to proceed. Note that if you may get errors or incorrect results if you make a mistake while using some of the unsafe features.

hive> set hive.strict.checks.cartesian.product;
# 首先查看hive.strict.checks.cartesian.product
hive> set hive.strict.checks.cartesian.product=false;
# 设置hive.strict.checks.cartesian.product为false
本次环境为单节点伪集群环境,环境中已经安装JDK1.8、Hadoop2.7.7、Mysql5.7、hive2.3.4。---

1.环境中已经安装/root/software/hadoop-2.7.7,格式化HDFS,开启集群,查看集群状态。(HDFS端口为9000,其他端口默认)
# 对文件系统进行格式化
hadoop namenode -format
# 启动Hadoop集群查看各节点服务
start-all.sh  
> yes

2.环境中已经安装/root/software/apache-hive-2.3.4-bin,需要开启mysql服务,初始化数据库,即可开启Hive客户端。

# 开启mysql服务
systemctl status mysqld
systemctl start mysqld

# 初始化数据库,启动metastore服务
schematool -dbType mysql -initSchema
hive --service metastore &

# 进入hive,创建hive数据库
hive
> create database hive;

本步骤用于开启集群环境,用于后续数据分析(Hadoop Mapreduce/Hive)使用。

区域热门商品分析 (80 / 80分)

项目背景

本项目针对电商网站运营,对每个领域用户关心的商品进行统计分析,支持用户决策。分析各区域对产品的不同需求,进行差异化研究,例如A地区用户喜欢电子,B地区用户喜欢汽车。

需求分析

1.热门商品即通过用户对商品的点击量来衡量商品热度。
2.如何获取区域信息数据:

通过用户点击日志,获取访问IP,进而获取区域信息。
通过数据库中的订单关联用户表,获取用户的地域信息

数据说明

product(商品)表:(/root/shop/product.txt)

列名product_idproduct_namemarquebarcodepricebrand_idmarket_pricestockstatus
描述商品号商品名称商品型号仓库条码商品价格商品品牌市场价格库存状态
数据类型stringstringstringstringdoublestringdoubleintint

补充说明:

status: 下架-1,上架0,预售1

area(地区信息)表:(/root/shop/area.txt)

列名area_idarea_name
描述地区编号地区名称
数据类型stringstring

user_click(用户点击信息)表:(/root/shop/user_click.txt)

列名user_iduser_ipurlclick_timeaction_typearea_id
描述用户ID用户IP用户点击URL用户点击时间动作名称
数据类型stringstringstringstringstringstring

补充说明:

action_type: 1 收藏,2 加购物车,3 购买 
area_id:这里的地区信息已经通过IP地址(user_ip)进行解析

clicklog(用户点击商品日志表)表:

列名 user_id user_ip product_id click_time action_type area_id
描述 用户ID 用户IP URL解析对应商品ID 用户点击时间 动作名称 地区ID
数据类型 string string string string string string
补充说明:

根据user_click中用户点击URL进行解析,得到product_id
示例:URL数据`http://mystore.jsp/?productid=1`中product_id为1

area_hot_product(区域热门商品)表:

列名 area_id area_name product_id product_name pv
描述 地区ID 地区名称 商品ID 商品名称 访问量
数据类型 string string string string BIGINT

# 1. 进入Hive客户端,创建shop数据库(前提开启Hadoop集群)
create database shop;
# 创建商品表product,并上传本地数据至表内
use shop;

CREATE TABLE product(
    product_id string,
    product_name string,
    marque string,
    barcode string,
    price double,
    brand_id string,
    market_price double,
    stock int,
    status int
)row format delimited fields terminated by ',';
# 上传本地数据至表内
LOAD DATA LOCAL INPATH '/root/shop/product.txt' INTO TABLE product;

# 3.创建地区表area,并上传本地数据至表内
CREATE TABLE area(
    area_id string,
    area_name string
)row format delimited fields terminated by ',';
# 上传本地数据至表内
LOAD DATA LOCAL INPATH '/root/shop/area.txt' INTO TABLE area;

# 4.创建用户点击信息user_click,并上传本地数据至表内
CREATE TABLE user_click(
    user_id string,
    user_ip string,
    url string,
    click_time string,
    action_type string,
    area_id string
)row format delimited fields terminated by ',';
# 上传本地数据至表内
LOAD DATA LOCAL INPATH '/root/shop/user_click.txt' INTO TABLE user_click;

# 5.创建用户点击商品日志表clicklog,解析user_click用户点击信息表中的product_id
CREATE TABLE clicklog(
    user_id string,
    user_ip string,
    product_id string,
    click_time string,
    action_type string,
    area_id string
)row format delimited fields terminated by ',';

# 解析user_click用户点击信息表中的product_id
SELECT parse_url(concat(url),'QUERY','productid') as product_id FROM user_click;

# 将查询结果 插入clicklog
INSERT INTO TABLE clicklog
SELECT user_id, user_ip, parse_url(concat(url),'QUERY','productid') as product_id, click_time,action_type,area_id FROM user_click;

# 6.创建结果分析区域热门商品表area_hot_product,统计各地区热门商品访问量pv

CREATE TABLE area_hot_product(
    area_id string,
    area_name string,
    product_id string,
    product_name string,
    pv BIGINT
)row format delimited fields terminated by ',';

# 将查询结果 插入clicklog
INSERT INTO TABLE area_hot_product
SELECT collect_set(c.area_id)[0] as area_id, collect_set(a.area_name)[0] as area_name, collect_set(c.product_id)[0] as product_id, collect_set(p.product_name)[0] as product_name, COUNT(c.user_id) as pv
FROM clicklog c
JOIN area a ON c.area_id = a.area_id
JOIN product p ON c.product_id = p.product_id
GROUP BY a.area_id, p.product_id;

# 7.查询表area_hot_product全部数据,结果写入本地目录/root/data/shop/area_hot_product
INSERT OVERWRITE LOCAL DIRECTORY '/root/data/shop/area_hot_product'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT * FROM area_hot_product;


http://www.kler.cn/a/388414.html

相关文章:

  • 图片画廊 day2 (可复制源码)
  • 使用Python实现定期从API获取数据并存储到数据库的完整指南
  • AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
  • 鸿蒙自定义UI组件导出使用
  • Vite初始化Vue3+Typescrpt项目
  • ubuntu cmake CPack将第三方库进行打包
  • Java什么是变量?变量有什么用?
  • MongoDB新版本,单节点安装
  • 【网络安全 | 服务器】Nginx功能快速入门
  • python视频事物分析
  • AMD-OLMo:在 AMD Instinct MI250 GPU 上训练的新一代大型语言模型。
  • C#语言在软件开发中的应用与优势
  • 【鸿蒙学习】HarmonyOS应用开发者高级认证 - 认证通过(附题目)
  • Vue 中的定时刷新与自动更新实现
  • Android Framework 框架层主要功能类的基本介绍
  • 「QT」几何数据类 之 QPolygonF 浮点型多边形类
  • 第十六章 TCP 客户端 服务器通信
  • 关于若依500验证码问题的求助
  • WPS Office手机去广高级版
  • PostgreSQL pg-xact(clog)目录文件缺失处理
  • MyBatis5-缓存
  • SpringBoot中使用Thymeleaf模板引擎
  • C# 选择导入文件的路径、导出文件的路径
  • [vulnhub] DarkHole: 1
  • Elasticsearch 实战应用:高效搜索与数据分析
  • 「OC」SDWebimage的学习