用户画像环境搭建

用户画像环境搭建

Hive的执行任务是将hql语句转化为MapReduce来计算,查询耗时长。主要原因是Hive原生基于MapReduce的,如果我们不生成MapReduce Job,而是生成Spark Job,就可以充分利用Spark的快速执行能力来缩短HiveHQL的响应时间。

本项目采用SparkSql与hive进行整合,通过SparkSql读取hive中表的元数据,快速的为用户打上标签构建用户画像。

1、 环境准备

2、sparksql整合hive

Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如文本、Hive、Json等)。Spark SQL的其中一个分支就是Spark on Hive,也就是使用Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业。SparkSql整合hive就是获取hive表中的元数据信息,然后通过SparkSql来操作数据。

整合步骤:

  • 1、需要将hive-site.xml文件拷贝到Spark的conf目录下,这样就可以通过这个配置文件找到Hive的元数据以及数据存放位置。
  • 2、如果Hive的元数据存放在Mysql中,我们还需要准备好Mysql相关驱动,比如:mysql-connector-java-5.1.35.jar

3、测试sparksql整合hive是否成功

先启动hadoop集群,在启动spark集群,确保启动成功之后执行命令:

/var/local/spark/bin/spark-sql  --master spark://node-1:7077  --executor-memory 1g  --total-executor-cores 2 

指明master地址、每一个executor的内存大小、一共所需要的核数、mysql数据库连接驱动。
执行成功后的界面:进入到spark-sql 客户端命令行界面。

这里写图片描述

接下来就可以通过sql语句来操作数据库表:
查看当前有哪些数据库show databases;

这里写图片描述
看到以上结果,说明sparksql整合hive成功!
日志太多,我们可以修改spark的日志输出级别(conf/log4j.properties)

注意:
在spark2.0版本后由于出现了sparkSesssion,在初始化sqlContext的时候,会设置默认的spark.sql.warehouse.dir=spark-warehouse,
此时将hive与sparksql整合完成之后,在通过spark-sql脚本启动的时候,还是会在哪里启动spark-sql脚本,就会在当前目录下创建一个spark.sql.warehouse.dir为spark-warehouse的目录,存放由spark-sql创建数据库和创建表的元数据库信息,与之前hive的元数据库信息不是放在同一个路径下(可以互相访问)。但是此时spark-sql的元数据库在本地,不利于操作,也不安全。

所有在启动的时候需要加上这样一个参数:
–conf spark.sql.warehouse.dir=hdfs://node-1:9000/user/hive/warehouse
保证spark-sql启动时不在产生新的元数据库,sparksql与hive最终使用的是hive同一元数据库。
如果使用的是spark2.0之前的版本,由于没有sparkSession,不会有spark.sql.warehouse.dir配置项,不会出现上述问题。

最后的执行脚本:

spark-sql \
--master spark://node-1:7077 \
--executor-memory 1g \
--total-executor-cores 2 \
--conf  spark.sql.warehouse.dir=hdfs://node-1:9000/user/hive/warehouse

喜欢就点赞评论+关注吧

这里写图片描述

感谢阅读,希望能帮助到大家,谢谢大家的支持!

近几年中国在淘宝、京东、天猫等巨头电商公司带动下迅猛发展,电商在中国显示出了强大的生命力,每家电商公司的商品更是以指数级的数量增长,可是在商品增长的同时,也无形中增加了用户寻找商品的困难程度。这个问题在小型智能移动终端尤其明显,用户在小型智能移动终端浏览大量的商品不仅会占用客户的时间还会消耗大量的流量,这种欠佳的浏览体验是导致用户转移购物平台的一个主要因素。本文设计并实现基于“用户画像”的商品推送系统正是在上述问题的基础之上立项的,将用户画像与主动推送相结合,避免了用户在海量商品中苦苦寻求自己感兴趣的商品,不仅解决了商品过载的问题而且实现了对用户的精准营销。主要研究内容如下:首先介绍了基于“用户画像”的商品推送系统的立题意义以及相关的理论基础,对国内外推送系统的发展状况进行了深入调研,详细的阐述了所需要使用的技术。其次对基于“用户画像”的商品推送系统从需求、设计和实现的三个方面进行详细的说明,本系统主要构成为以下两个部分:(1)用户画像系统,首先以用户的个人历史行为为基础,通过评分矩阵模型构建用户兴趣模型,然后基于标签规则将用户兴趣模型转换为用户标签模型,用户画像系统则是以用户标签模型为基础生成的,并通过Echarts图表将用户画像进行展示。与传统推送系统相比,本系统将用户置于最重要的部分,对每个用户都实现精准营销。(2)商品个性化推送平台,调用本接口可以返回商品列表,返回的商品列表是在用户兴趣模型的基础上混合多种规则并加以过滤得到的最符合用户偏好的推送商品集合,以接口的形式给不同类型的小型智能移动终端提供数据。本接口应用Thrift框架编写,通过该框架进行系统之间的交互具有高性能、低延迟、支持同步和异步通信等优点。最后,为推送效果提供测试方案,商品推送系统的参数调优通过NDCG算法,NDCG表示归一化折损累积增益,该算法是当下比较流行的推荐系统评测指标之一,通过用户对推送商品的操作行为量化出用户对商品列表的满意程度,根据用户满意度进而对系统参数进行调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值