目录
今天和小组做了一个实战小项目
所用软件:pycharm、finebi5.1、xshell、Xftp6、Apache Hive2.1.0
一、项目实战目的
1、加强代码开发能力,自己动手参与设计程序, 开发sql脚本
2、熟悉项目开发流程,参与需求分析、数仓设计、数据处理、数据报表
3、增强团队协作能力,多人参与配合多个模块开发,实现整个项目,产出项目结果
二、角色职责
产品经理:Product Manager
- 提出项目需求
- 跟进项目进度
- 检验项目产出结果
项目经理:Project Manager
- 划分项目任务
- 监督项目实施进度
- 提供项目解决思路
- 协调项目资源
项目组长:Team Leader
- 负责整个团队的组织和管理
- 负责组织组内早晚例会
- 负责协调分配每天每个组员的任务和内容
- 负责汇报组内完成进度给PM
- 负责及时完成自己开发任务和编写开发文档
项目成员:Data Engineer
三、项目架构和数仓
1、技术架构
- 业务数据存储在: mysql中 注意: 数据导出存在在: csv文件中
- java环境: jdk1.8
- 海量数据存储: Hadoop - HDFS
- 海量数据计算: Hive / Hadoop - MapReduce
- 集群资源调度: Hadoop - YARN
- 可视化报表工具: FineBI
2、数仓分层
四、项目报表需求
- 统计今日总消息量
- 统计今日发送和接收用户数
- 统计每小时消息量、发送和接收用户数
- 统计今日发送消息最多的Top10用户
- 统计发送人的设备操作系统分布情况
- 统计发送人的手机型号分布情况
- 统计发送人的网络类型分布情况
- 统计发送消息各地区数据量
五、结果图
1、数据库列表
2、finebi效果图
六、遇到的问题及解决
1、连接hive失败
更换驱动程序:hive-jdbc-uber-2.6.5.0-292.jar
2、导入数据失败
将数据文件用xftp传到node1 中的root目录中,再用load data local inpath‘/root/数据文件名’ into table 表名;
3、hive注释信息中文乱码
(1)--注意下面sql语句是需要在hive中的MySQL中执行(mysql -u root -p)修改Hive存储的元数据信息(metadata):
show variables like 'char%';
use 库名;
show tables;
alter table 库名.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table 库名.TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table 库名.PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table 库名.PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table 苦命.INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
(2)--注意 下面是linux的shell命令,在linux终端执行
-- 修改mysql中数据库默认字符集
#修改配置文件
vim /etc/my.cnf
# 在[mysqld]上面添加
[client]
default-character-set=utf8
#在[mysqld]下面添加一行:
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
#重启MySQL服务
systemctl restart mysqld
4、finebi连接数据库失败
将hive-jdbc-uber-2.6.5.0-292.jar复制到finebi-->finebi5.1-->webapps-->webroot-->WEB-INF-->lib中,重启finebi即可