# GoatSucker **Repository Path**: platform001/goat-sucker ## Basic Information - **Project Name**: GoatSucker - **Description**: GoatSucker用户行为分析产品,通过对终端用户的行为数据分析,展现各项统计指标,为产品运维、产品优化提供决策依据,提高关键业务转化率,扩大客户范围,提高客户忠诚度,创造新的商机。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-04-18 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: 用户行为分析 ## README # GoatSucker #### 介绍 GoatSucker用户行为分析产品,通过对终端用户的行为数据分析,展现各项统计指标,为产品运维、产品优化提供决策依据,提高关键业务转化率,扩大客户范围,提高客户忠诚度,创造新的商机。 #### 软件架构 ![输入图片说明](https://foruda.gitee.com/images/1681790725056112615/4ce46291_12807979.png "屏幕截图") #### 安装教程 ### 运行环境准备 1、说明 安装手册中使用的test用户为示例用户,可以根据需要随意选择用户名和密码,但是必须保证所有节点用户名密码一致 安装过程中会关闭防火墙和selinux。安装完成后可以根据需要设置防火墙,但是需要保证所有节点可以无障碍通讯 安装过程中会将/etc/sudoers中的requiretty注释掉 在生产环境中,请妥善设置各组件的数据和日志存储位置,以避免硬盘空间不足或者硬盘IO成为性能瓶颈,最好能将不同组件的数据放置到不同的物理硬盘上,以免造成磁盘IO竞争。具体设置方法请参考附录A 默认情况下,安装过程中会将服务器原有的yum源文件移动到临时目录/tmp/repobak/,在安装结束后会移动到原来的位置。如果想在安装过程中使用原有的yum源,请设置conf.sh中的SKIP_EXISTING_REPO 安装过程中有问题可以参考附录B 2、系统要求 集群由一台主节点和多台从节点组成,各节点必须满足如下条件: 1.操作系统为Centos 6.8 minimal版,内存最小16G,硬盘最小50G 2.在所有节点上创建用户test,设置密码123456,要求test用户能够无密码sudo 3.所有节点设置正确的hostname和IPv4地址,设置正确的域名解析和反解析机制,将每个节点的hostname写入/etc/sysconfig/network,各个节点能够通过hostname互相访问 4.设置时间同步机制,使得各节点时间能够保持同步 5.如果需要邮件报警服务,则要求服务器能够连接到相应的邮件服务器 3、安装CDH 所有的后续步骤的命令行操作均使用用户test执行 1.将安装介质压缩包复制到主节点的用户目录下 2.运行tar xvf ci-*.tar.gz && cd ci,进入解压后的ci文件夹 3.修改ci文件夹下的conf.sh文件 1)设置WORKERS_HOSTNAME: 此项为所有节点的hostname数组,每行写一个hostname。主节点和所有的从节点都需要写入此处 2)CI大数据软件平台默认安装文件夹为/opt/test/,默认数据文件夹为/data/。所需所有软件会默认安装到/opt/test/,mongodb和kafka的数据则会默认分别放置在/data/mongodb/和/data/kafka/目录,可以设置TEST_HOME和DATA_DIR更改默认路径。 3)如果需要在安装过程中使用原有的yum源,请将此文件中的SKIP_EXISTING_REPO设置为FALSE 4.运行./prepareMaster.sh。最后控制台提示” CI master OK!”表示主节点准备完成。 5.运行./ssh.sh '123456',其中123456为该用户密码,需要使用单引号包含起来。最后控制台提示” SSH OK”表示无密钥登录准备成功。 6.运行./prepareWorkers.sh。最后控制台提示”CI workers OK!!”表示从节点安装成功,此时会显示cloudera manager登录url,使用用户名admin密码admin登录。 4、添加CDH集群 登录后选择免费版本,此时所有节点将出现在此处,选择所有的主机 安装方法选择Parcel 将出现如下选项 选择继续,JDK和单用户模式都不用勾选 安装完成后会提示选择添加的服务,选择自定义服务,注意合理分配每台服务器的角色 Cloudera Management Service中的Activity Monitor可以不添加,如果需要CDH提供邮件报警功能,需要进行邮件相关设置。在cloudera manager中的管理->警报功能中,可以发送测试邮件警报。 5、CDH中添加服务 CDH中随时可以添加服务,利用下图所示功能进行。 6、安装其他软件 在控制台中运行./weblauncher.sh,根据提示的url,进入其他软件的安装界面 6.1基本设置 在基本设置中进行其他软件和邮件提醒相关设置 6.2角色分配 在角色分配页面上方页面添加需要添加的服务,将其拖拽到下方的服务器上,表示该服务将被安装到该服务器上 6.3安装 在”配置预览及安装”tab页面点击安装。 6.4安装验证 安装日志提示”please verify CI cluster”后,根据提示在主节点验证各软件安装的正确性。 7、CDH服务配置 可以根据需要进行CDH中服务的设置 7.1 配置Kudu 存储路径 根据实际系统挂载的物理盘情况,指定数据和日志文件存放路径,合理规划尽量减少磁盘竞争。 7.2 配置Oozie服务 根据实际需求,填写报警邮件服务信息: 将邮件服务器地址,邮箱地址填入相应输入框。 8、附录A 存储 8.1CDH服务数据和日志的存储设置 例如设置HDFS的数据目录,如下图所示,将数据存储在/disk2上 例如设置HDFS的日志目录和日志保存,如下图所示,将日志存储在/disk2上,最多保留5个日志文件,每个日志文件最大10M 在设置zookeeper时,建议将事务日志目录设置在单独的磁盘上以提高性能 8.2Mongodb和kafka存储位置 CI大数据软件平台默认数据文件夹为/data/,mongodb和kafka的数据则会默认分别放置在/data/mongodb/和/data/kafka/目录,可以在conf.sh文件中设置数据存储路径和软件安装路径 9、附录B 常见问题 9.1RPM冲突 如果安装过程中出现了rpm冲突,可以用以下任意方法解决,然后重新运行安装命令 1.降级服务器上已经安装的版本过高的rpm 例如 yum downgrade openssl 2.移除服务器上无用的rpm包 例如 yum erase krb5-workstation 3.使用外部的yum源 例如在/etc/yum.repos.d/文件夹中添加163.repo文件,文件中输入 [163] name=163 baseurl=http://mirrors.163.com/centos/6/os/x86_64/ gpgcheck=0 其中proxy是需要代理时的设置 然后请将conf.sh中的SKIP_EXISTING_REPO设置为FALSE 10、附录C 安装后常见问题 10.1主节点上的httpd服务有什么作用?如何停止? 该httpd是安装过程中使用的文件共享服务器和yum源,如果已经完成了安装,可以用如下命令将其停止. sudo chkconfig httpd off sudo service httpd stop 10.2如何自动启动服务? 在cloudera manager中添加的服务会被cloudera监控运行状态,并且能够服务异常状态检测和提醒除此之外,安装程序会利用crontab定时监控端口,并且自动重启相关进程.监控端口监听情况,需要修改/etc/test/tcpPorts 文件内容为端口#命令 例如 18080#/opt/test/spark/sbin/start-history-server.sh 表示如果系统检测到本机的18080端口没有被监听,则执行/opt/test/spark/sbin/start-history-server.sh 10.3如何从公网采集数据? 系统部署到内网后,往往需要从公网采集数据. 可以直接将内网的采集接口映射到公网上 也可以另外设置网络隔离区,将采集接口部署到隔离区,并保证隔离区内能够访问内部网络的9092和27017端口 11、运维FAQ 11.1怎么切换到root用户? 运行su - root或者sudo -s 11.2Cloudera manager无法正常工作怎么办? 切换到root用户,检查日志文件/var/log/cloudera-scm-server/cloudera-scm-server.log,用/etc/init.d/cloudera-scm-server status检查manager状态,用/etc/init.d/cloudera-scm-server start启动manager 11.3怎么登录Cloudera manager? 浏览器打开登录主节点的7180端口进行登录,用户名密码默认都是admin 11.4怎么修改某个服务的配置项? 例如要修改zookeeper的”自动清空时间间隔”,登录Cloudera manager之后,点击zookeeper,点击配置,在搜索框中搜索”自动” 11.5如何减少zookeeper的数据? 修改zookeeper服务的”自动清空时间间隔”和”自动清空快照保留计数”后,重启zookeeper服务 11.6如何重启某个服务? 可以在服务的”实例”页面,依次选中服务实例进行重启 也可以在服务页面重启整个服务,重启整个服务会引起相关服务重启 11.7Yum 冲突时降级安装包版本 Yum downgrade packageName 11.8更改hostname 之后重新登录一遍,使hostname 更改生效 11.9如果出错重新跑一遍脚本按照如下步骤 1. 停止cloudera 服务,然后再重新跑一遍脚本 service cloudera-scm-server stop service cloudera-scm-agent stop 2. 删除etc/yum.d/ 下所有的cloudera开头的repo 文件后重试 3. HDFS NFS GATEWAY 启动失败。连接端口号错误 sudo service rpcbind start 4.service ntpd start 开启服务器同步时钟 配置/etc/ntp.cpnf 文件,将其中一台设置为服务器 Ntpstat 查看同步状 或者 ntpq –p ### 安装运行 1、安装客户智能 1.将ci-installer-*-dist.tgz复制到主节点的用户目录下 2.运行tar xvf ci-installer-*-dist.tgz,cd进入解压后的文件夹 3.运行./startup.sh开启安装服务器,按照提示用浏览器打开链接 4.将需要安装的服务拖拽到相应服务器上 5.点击安装,安装日志中出现”please use CI on this url”表示安装完成 6.等待几分钟,以便系统自动启动相应服务 7.登录上述url使用客户智能系统 2、修改服务配置项 服务自动化部署后,需配置一些服务参数,以保证系统稳定运行: 1.oozie配置 在cloudrea manager上点击oozie->配置->高级 在“oozie-site.xml 的 Oozie Server 高级配置代码段(安全阀)”中添加: oozie.processing.timezoneGMT+0800BeiJing 修改配置后,保存配置并重启oozie 2.配置提供稳定服务的最小内存 在cloudrea manager上点击YARN->配置,修改如下配置: yarn.app.mapreduce.am.resource.mb=1 yarn.nodemanager.resource.memory-mb=3 yarn.scheduler.maximum-allocation-mb=3 mapreduce.map.memory.mb=2 mapreduce.map.java.opts.max.heap=1.6 mapreduce.reduce.memory.mb=2 mapreduce.reduce.java.opts.max.heap=1.6 修改配置后,保存配置并重启yarn,然后点击“操作”,部署客户端配置 3、常见问题 1查看kafka消息接收情况 需要在安装了kafka broker的服务器上运行以下命令: 查看手机客户端kafka数据接收情况 /opt/cloudera/parcels/jdt/bin/mobileViewer 查看网页客户端kafka数据接收情况 /opt/cloudera/parcels/jdt/bin/siteViewer 2提交storm拓扑 需要在主节点上运行以下命令: 提交手机客户端处理拓扑 /opt/test/submitMobile.sh 提交网页客户端处理拓扑 /opt/test/submitSite.sh 提交推荐和受众洞察处理拓扑 /opt/test/submitPS.sh #### 使用说明 1. 注册账号登陆后,默认进入到“我的账户”。在“我的账户”里可以阅读帮助文档,设置着陆页,修改密码。 ![输入图片说明](02image.png) 2. 概要显示最近“今天”,“昨天”,“最近7天”,“最近30天”,“最近60天”统计指标。 ![输入图片说明](03image.png) 3. 新增用户,网站分析以CookieID为用户唯一标识,终端分析以设备ID为用户唯一标识。 ![输入图片说明](01image.png) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request