APP下载

基于HHS的离线数据分析平台的设计与实现

2023-06-03李霄扬朱恒

电脑知识与技术 2023年10期

李霄扬 朱恒

关键词:Hadopp;海量数据;离线业务分析

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2023)10-0075-03

0 引言

如今,计算机和信息技术发展迅猛,并且得到了普遍应用,各大行业的数据量都在以爆炸性的速度增长,全球已经进入了“大数据”时代[1]。在大数据时代下,企业可以从庞大繁杂的数据背后挖掘和分析用户的行为习惯和爱好,其创造的价值和人们的生活息息相关。在实际的商业案例,信用卡公司VISA需要处理两年中730亿单的交易,由于采用了Hadoop技术,在以往技术大约需要一个月时间,而现在仅仅花了13 分钟的时间[2]。显然,企业依旧按照传统的方法进行处理传统的数据处理方式已经无法满足和解决动辄数百TB级甚至是PB级大数据的问题,尤其是在数据的存储和计算方面。当今时代,大数据应用系统无处不在,对于不同的应用场景,各大系统需要进行具体问题具体分析,针对自己所处的场景、所想要的结果去采用不同的数据处理技术和不同的大数据框架。

1 基于Hadoopde 大数据分析系统的通用架构

数据已经成为重要的无形资产[3]。本研究的主要目标是基于Hadoop、Hive、Sqoop技术,总结出大数据应用系统的一般架构。Hadoop是apache旗下的一套开源软件平台,其功能主要有:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。Hive则是基于Hadoop的一个数据仓库工具,它能将结构化的数据文件映射为一张数据库表。Sqoop 是SQL-to-Hadoop的缩写,运行在HDFS之上,主要用于实现结构型数据和Hadoop之间进行数据迁移的工具[4]。这三大套件的基本架构如图1所示。

2 基于Hadoopde 大数据分析系统的环境配置

2.1 Hadoop 基础环境的搭建

Hadoop采用在多节点上分布式方式运行,具体安装步骤如下:

1)创建Hadoop用户

$ sudo useradd –m Hadoop –s /bin/bash #添加hadoop用户

$ sudo passwd hadoop #设置hadoop密码

说明:sudo是一种权限管理机制,通过该命令,普通用户可以被管理员赋予一些只有root权限才能执行的操作的权限。

2)更新apt

$ sudo apt-get update 说明:此操作的执行目的是便于后期软件的安装。如果没有更新apt,后期可能会有一些软件安装不了。

3)安装SSH、配置SSH无密码登录

$ sudo apt-get install openssh-server # 安装SSH server

$ cd ~/.ssh/

$ ssh-keygen -t rsa # 会有提示,都按回车就可以

$ cat ./id_rsa.pub >> ./authorized_keys # 将id_rsa.pub加入授权

说明:在第二行命令中,如果没有ssh目录,需要先执行命令:ssh localhost。

4)Hadoop分布式配置

①修改配置文件core-site.xml,新增file:/usr/local/hadoop/tmp属性,

修改hdfs-site.xml,新增dfs.namenode.name.dir和dfs.datanode.data.dir属性;

②NameNode格式化:

$ ./bin/hdfs namenode -format

③开启NameNode和DataNode守护进程;

④验证是否配置成功。

验证命令如下:

jps

说明:启动成功则会列出如下进程:“NameNode”“DataNode”“ResourceManage”“SecondaryNameNode”。启动成功后,可以通过在浏览器打开http://localhost:50070访问Web界面查看相关信息,在该界面中,同样可以查看HDFS中的文件,访问成功如图1所示。

2.2 Hive 的安装

1)下载并解压hive源程序

$ sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解压到目录/usr/local中

$ cd /usr/local/

$ sudo mv apache-hive-1.2.1-bin hive # 将文件夹名改成hive

$ sudo chown -R hadoop:hadoop hive # 修改文件权限

2)配置環境变量

在.bashrc文件中添加如下内容:

export HIVE_HOME=/usr/local/hive

source ~/.bashrc #保存退出,使配置生效

3)修改hive-site.xml文件

$ cd /usr/local/hive/conf #打开hive-site.xml文件的位置

$ mv hive-default.xml.template hive-default.xml # 重命名文件名

$ vim hive-site.xml #利用vim 编辑器新建一个hive-site.xml配置文件

4)配置MySQL允许hive接入

用户进入MySQL命令提示符下,进行如下操作:mysql> grant all on *.* to hive@localhost identified by 'hive';

mysql> flush privileges;

说明:第一步是赋予权限的操作,即hive可以享有操作数据库中所有表的权限,identified by‘hive则是配置hive的连接密码;第二步的操作则是由于前面赋予权限的操作,这里需要刷新权限表。

2.3 Sqoop 的安装

由于这里很多操作,例如解压安装等操作与前面类似,这里不再多作说明。

1)下载并解压Sqoop

$ sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-

alpha.tar.gz -C /usr/local

$ sudo chown -R hadoop:hadoop sqoop #修改文件夹属主

2)修改配置文件sqoop-env.sh

$ cd sqoop/conf/

$ cat sqoop-env-template.sh >> sqoop-env.sh #复制文件

$ vim sqoop-env.sh #编辑该脚本文件,添加相关内容

编辑内容如下:

export HADOOP_COMMON_HOME=/usr/local/ha?doop

export HADOOP_MAPRED_HOME=/usr/local/ha?doop

export HBASE_HOME=/usr/local/hbase

export HIVE_HOME=/usr/local/hive

3)配置环境变量

方法与上述Hive的环境变量配置相同,同样是在.bashrc的配置文件中添加Sqoop的安装路径,然后保存退出使其生效即可。

4)将MySQL驱动包拷贝到$SQOOP_HOME/lib

5)测试与MySQL的连接

通过sqoop list-databases,并连接MySQL的端口,输入MySQL 的登录信息查看MySQL 中的数据库列表。这里是在SecureCRT中进行的测试,具体命令及测试结果如图3所示。

3 离线数据分析应用:网站用户行为分析

“网站用户行为分析”指通过网站中用户的一些基本信息以及用户的一些操作行为,例如用户对某商品是点击了还是收藏、加入购物车或是购买,用户什么时间购买了什么商品哪类商品等。通过以上各种行为以及个人基本信息,可以统计分析出用户的主要消费行为是什么,哪些类商品比较热销、用户主要是哪类人群、哪个月份销售量大等对网站运营很重要的信息。本案例需要通過给定的数据集,对该数据集进行一些必要的操作,统计分析出对该网站运营有用的信息。其基本架构如图4所示:

其算法流程如图5所示:

以用户消费行为为例,基于R语言实现数据分析可视化:

library(ggplot2)

ggplot(user_action,aes(as.numeric(behavior_type)))+geom_histogram()

说明:上述命令中,第一行命令中,ggplot2表示一种绘图包,如果要用该绘图包,则要利用library将其导入到库中。第二行命令表示开始利用ggplot进行绘制。在绘制时,利用“+”对图层进行叠加,可见上述命令中创建了两个图层。在第一个图层中,包含了两个参数:数据和变量名称映射。上述的数据为user_ac?tion,变量名称则需要被包含aes()函数里。上述命令中映射出behavior_type中各个值的总量。第二个图层中,表示用直方图进行绘制。可得到如图6所示的分析结果。

4 结束语

大数据的核心价值是从庞大的数据背后挖掘和分析用户的行为和习惯,根据得到的数据并对这些数据进行相关的分析,从而可以对用户进行相关推荐[5]。通过用户行为数据进行分析得到的结果为用户推荐相关产品的做法已经逐渐普遍化,本文中的系统架构可以为类似的离线数据分析系统提供范例和参考,从而进一步地改进并提升数据分析的工作质量。