解决方案:Nutch2.3 + HBase 0.94 + Solr 搭建网络数据采集器!
优采云 发布时间: 2022-11-12 07:50解决方案:Nutch2.3 + HBase 0.94 + Solr 搭建网络数据采集器!
Nutch2.3 + HBase 0.94 + Solr 构建网络数据采集器
介绍
大数据的普及使人们越来越关注我们生成的数据,而爬虫作为数据采集的工具,提供了一种获取大数据的便捷方式。本文向读者展示了如何结合 Nutch、Solr 和 Hbase 构建自己的数据采集工具,作者使用的系统是 Ubuntu 16.04,下面系统安装和编译都是在这个系统下完成和测试的,所需的包和完整的配置文件可以通过本文的 Git 仓库地址获取。
术语
•Nutch - 数据采集器(爬网和分析网站数据)。
HBase - 分布式存储系统,Hadoop生态系统的组成部分之一
•Gora - Nutch 是用于存储数据的抽象层
Solr - 高性能全文搜索服务器,为数据查询提供API接口,用于搜索Nutch抓取的数据。
软件依赖关系
•OpenJKD 8 & ant
•Nutch 2.3(版本必须为 2.3,2.2 未通过测试)。
• HBase 0.94.26(另请注意版本)。
•溶胶 4.8.0
通过 Ubuntu 系统自带的包管理器安装 OpenJDK 和 ant,或者下载.deb安装文件自行安装,笔者建议使用包管理器,避免安装过程中出现依赖问题。
将 Nutch 和 HBase 安装包解压缩到目录中。从现在开始,我们用$NUTCH_ROOT来指代Nutch文件夹的根目录,$HBASE_ROOT指的是HBase文件夹的根目录。
配置 HBase
1. 编辑 $HBASE_ROOT/conf/hbase-site.xml 文件并添加它
hbase.rootdir
file:///full/path/to/where/the/data/should/be/stored
hbase.cluster.distributed
假
2. 在JAVA_HOME配置之前编辑 $HBASE_ROOT/conf/hbase-env.sh 并取消注释
-# export JAVA_HOME=/usr/java/jdk1.6.0/
+export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
在实际测试中,笔者发现在环境变量中设置JAVA_HOME后,无需在文件中重新配置变量。
3. 启动 HBase
$HBASE_ROOT/bin/start-hbase.sh
编译坚果
Nutch1.x 从 1.7 版本开始不提供完整的部署文件,只提供源代码文件和相关构建.xml文件,这需要用户自己编译 Nutch。
1. 编辑 $NUTCH_ROOT/conf/gora.properties 并添加 HBase 配置。
-#gora.datastore.default=org.apache.gora.mock.store.MockDataStore
+gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
2. 编译坚果
$ NUTCH_ROOT 加元
$ 蚂蚁清洁
$ 蚂蚁运行时
编译需要下载一些依赖包,所以大约需要 10 分钟,编译完成后会在 $NUTCH_ROOT 目录中生成两个文件夹:build 和 runtime。
1. 修改 Nutch 配置文件$NUTCH_ROOT/runtime/local/conf/nutch-site.xml
解决方案:站点接入:第三方数据采集系统生效的第一步
“对于第三方数据采集系统,第一个链接是注册和访问网站或应用程序。”
很久以前,我们分享了埋点和数据采集系统采集的一些基本内容。今天给大家分享一下数据采集系统的站点注册访问模块的一些细节。
01
—
什么是网站访问权限
首先需要明确的是,我们这里的主要分析对象是第三方数据采集平台。
为什么需要指定这个?我们先来看看网站的访问权限是什么。下图为友盟网站访问截图:
从这个流程图我们可以清楚的了解到,所谓站点访问就是填写我们要执行数据的网站、APP或者小程序等的基本信息采集等., 生成网站唯一标识符以用于采集数据标识的过程。
因此,如果是您自己的采集自己的网站流量行为或其他行为,则不需要【站点注册和访问】这个链接。第三方数据采集平台,出发点是为各个平台提供服务,所以需要区分不同平台的数据,需要注册和访问网站。
本站访问流程完成后,可以通过数据采集系统查看网站的采集信息。
02
—
站点访问通常包括哪些步骤?
一般来说,一个站点的访问过程主要包括以下几个步骤:
(1) 网站注册
网站注册的核心意义在于区分不同的站点。就像C端用户使用的任何新产品一样,都需要先注册,只不过这里的注册对象变成了网站。
注册通常需要哪些信息?上图中我们看到了友盟的内容,再看百度统计网站注册时的信息:
其实APP端的站点注册和web端的站点注册是有区别的。不同站点注册信息的区别可以有以下区别:
埋藏的域名或站点名称通常需要反复检查,以免重复。
审核通过后,将为访问的站点生成唯一的站点标识符。
(2) 生成JS代码或SDK
注册成功后,会根据不同的终端(PC端或手机端)生成不同的代码内容。PC端生成一段JS代码,手机APP端生成SDK。
实际上,主要是将站点唯一ID嵌入代码中。
比如下面的代码就是百度统计PC生成的JS代码:
var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?7cf14fcca2e14b8b"; var s = document.getElementsByTagName("script")[0];
(3) 拥有网站埋点
下载完SDK或者复制JS代码后,下一步就是把点埋在自己的网站(也就是要追踪数据的网站)中。
以PC端为例。研发学生需要将此代码复制并粘贴到要跟踪的每个网页中。通常需要在所有页面的网站标签之前添加代码。
另外,在类似于header.htm的header模板页面中安装,可以达到一次安装,全站的效果。
(4) 链接验证
当自有网站侧嵌入代码上线时,采集平台会检查数据流是否有链接问题。
03
—
工业产品设计参考
在这里,我们系统地跟踪几个常用的第三方数据跟踪网站的站点访问过程,以供参考。
(1) 友盟U-APP
注册应用程序:
下载并集成基础 SDK
初始化代码:
代码验证:
(2) 感官数据
选择如何埋点:
JS SDK 自动生成:
Sensors Data 的这个模块非常有趣。它遵循各种内容的自定义选择,最终生成埋点代码。
以上就是今天分享的主要内容。后续我们会和大家一起讨论data采集系统的相关细节。