数据可视化
Spring Boot整合Echarts动态获取HBase的数据
1) 动态的传递进去当天的时间
a) 在代码中写死
b) 让你查询昨天的、前天的咋办?
在页面中放一个时间插件(jQuery插件),默认只取当天的数据
2) 自动刷新展示图
每隔多久发送一个请求去刷新当前的数据供展示
统计慕课网当天实战课程从搜索引擎过来的点击量
数据已经在HBase中有的
自己通过Echarts整合Spring Boot方式自己来实现
//阿里这个要钱,劝退,没做,还是用Zeppelin吧
DataV功能说明
1)点击量分省排名/运营商访问占比
Spark SQL项目实战课程: 通过IP就能解析到省份、城市、运营商
2)浏览器访问占比/操作系统占比
Hadoop项目:userAgent
DataV访问的数据库(MySQL),需要能够在公网上访问
DataV测试数据
CREATE TABLE course_click_count
(
ID int(4) PRIMARY KEY,
day VARCHAR(10),
course_id VARCHAR(10),
click_count long
);
INSERT INTO course_click_count values (1,'20171111','112',8000);
INSERT INTO course_click_count values (2,'20171111','128',9000);
INSERT INTO course_click_count values (3,'20171111','145',10000);
INSERT INTO course_click_count values (4,'20171111','146',4000);
INSERT INTO course_click_count values (5,'20171111','131',3000);
INSERT INTO course_click_count values (6,'20171111','130',2000);
CREATE TABLE course_info
(
ID int(4) PRIMARY KEY,
course_id VARCHAR(10),
course_name VARCHAR(100)
);
INSERT INTO course_info values (1,'112','Spark SQL');
INSERT INTO course_info values (2,'128','10小时入门大数据');
INSERT INTO course_info values (3,'145','深度学习');
INSERT INTO course_info values (4,'146','Node.js');
INSERT INTO course_info values (5,'131','Vue+Django实战');
INSERT INTO course_info values (6,'130','Web前端性能优化');
select b.course_name course_name, a.click_count click_count
from (
(select course_id, click_count from course_click_count where day='20171111' ) a
join
(select course_id, course_name from course_info) b
on a.course_id = b.course_id
)
----------------------------------------------------------------------------------------------------
Redis
Redis应用场景
缓存系统 HashMap(key, value)
用户 --> 客户端 --> Redis
|
|
DB
计算器:评论数、点赞数 Atomic Increment. 设置过期
消息队列: Kafka
排行榜: 有序集合
社交:
过期处理:
安装依赖
sudo yum -y install cpp
sudo yum -y install binutils
sudo yum -y install glibc
sudo yum -y install glibc-kernheaders
sudo yum -y install glibc-common
sudo yum -y install glibc-devel
sudo yum -y install gcc
sudo yum -y install make
编译
先make之后再make install
src/redis-server
src/redis-cli
vi redis.conf
bind 0.0.0.0
daemonize no改成daemonize yes
logfile "/home/hadoop/app/tmp/redis/redis.log"
重新启动
src/redis-server redis.conf
src/redis-cli
闭关shutdown
或者src/redis-cli shutdown
Redis基础命令的使用
set user hadoop
keys *
set user2 spark
keys *
set user3 flink
keys user*
exists user1
del user1
del user2 user3
set user hadoop
不会了的话help
mset user1 spark user2 flink
mget user user1 user2
src/redis-cli keys "*"
src/redis-cli del `user1`
set money 100
get money
help incr
incr money
set age abc
decr money
get money
incrby money 100
decrby money 10
incrbyfloat money 11.1
incrbyfloat money -11.1
append user -flink
get user
set msg hello
get msg
set msg "hello world"
get msg
getrange msg 0 4
getrange msg -5 -1
Redis 数据类型之list
有序的方式存储多个可以重复的值,可以重复而且不唯一
list:一个或者多个item
index:0 n-1
lpush list a //从左边添加
lpush list b
lpush list c
rpush list x //从右边添加
lpop list //从左边取出
rpop list //从右边取出
llen list // 得到数组长度
lrang list 0 -1 //显示数组
lrang list 0 1 //显示数组 从0到1 就是2个 ,数组也是从0开始的
del list
lpush list a b c a x z a
lrang list 0 -1
lrem list 2 a
从2开始删到a
help lindex
lindex list 0 的到list第0位
lset list 0 a 把第0位改成a
ltrim list 0 2
lrang list 0 -1
help linsert
linsert list BEFORE x b 在b前面插入 x. // a b c | a b x c
rpoplpush xxx xxx_new //把这个数组的最后一位数插到另一个数组
使用场景:消息队列
总结:
help @list
lpush/rpush/lpop/rpop
llen/lrange
lset
lindexx
ltrim
linsert
rpoplpush
lrem
Redis数据类型之set
help @set
sadd set a
sadd set b
smembers set
sadd set. x
smembers set
srem set a b //移除
sdiff set set1 //返回set1 里有的但是set里没有的
sinter set set1 // 相当于 & ,把两个里重合的列出来,交集
sunion set set1 // 相当于 | ,并集,全列出来
sunionstore itset set set1. //把两个表里的东西重合起来放到一个新的表中
scard set
spop 删除list里一个随机的数并且返回
srandmember 随机取xx个数。 使用负值可产生同样的值 srandmember 2 srandmember -2
总结 help @set
sadd/smembers/srem/sismember
sdiff/sinter/sunion
sdiffstore
scard
arandmember ket [count]
weibo/twitter:共同关注