第一天
1.大数据可视化:通过报表
-------------------------------------------------
2.项目来源:电信运营商通过电话交换机来记录每一组通话,用exe tail-flume来进行数据的收集,利用kafka来消费数据。
数据在hbase中要避免热点问题,由于大量数据拥塞在Hbase集群的一个或者几个节点上,造成热点问题的主要问题就是rowKew设计不当。避免热点问题的盐析方式:(1)随机盐析;(2)哈希;分区是目录,桶表示
3.生成jar包,部署到centos执行
---------------------------------------------------------
(1)使用maven生成jar文件
(2)部署到centos
(3)执行
执行jar包的命令:java -cp xxx.jar com.it18zhang.callloggen.App /home/centos/calllog/calllog.log
java -cp xxx.jar com.it18zhang.callloggen.App E:\calllog\calllog.log
(4)编写脚本
[calllog.sh]
#!bin/bash
java -cp Calllog.jar com.it18zhang.callloggen.App /home/centos/callog/calllog.log
(5)修改权限
$>chmod a+x calllog.sh
$>./calllog.sh
4.启动zk集群
----------------------------
s202
s203
s204
5.启动kafka集群[s202 + s203 + s204]
--------------------------------------
$>cd /soft/kafka $>bin/kafka-server-start.sh -daemon config/server.properties
6.创建kafka主题
---------------------------------------
1).$>bin/kafka-topics.sh --zookeeper s202:2181 --topic calllog --create --replication-factor 3 --partitions 4 //创建主题
2).$>bin/kafka-topics.sh --zookeeper s202:2181 --list //查看主题
3).启动控制台消费者,消费calllog主题,用于测试flume程序有没有收集程序过来
$>kafka-console-consumer.sh --zookeeper s201:2181 --topic calllog
7.在s201上编写flume配置文件,实时收集calllog.log文件,实时收集calllog.log日志文件
---------------------------------------------------------------------------------------------------------------
[/soft/flume/conf/calllo.conf]
a1.sources=r1 a1.sinks=k1 a1.channels=c1 a1.sources.r1.type=exec a1.sources.r1.command=tail -F -c +0 /home/centos/test.txt a1.channels.c1.type=memory
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = calllog a1.sinks.k1.kafka.bootstrap.servers = s202:9092,s203:9092,s204:9092 a1.sinks.k1.kafka.flumeBatchSize = 20 a1.sinks.k1.kafka.producer.acks = 1 a1.sinks.k1.brokerList =s202:9092,s203:9092,s204:9092 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
8.(1)在s202主机上安装flume软件包
(2)启动flume收集程序
$>flume-ng agent -f /soft/flume/conf/calllog.conf -n a1 &
9.编写kafka,从kafka提取消息,存放到hbase中去
(1).启动hadoop(完全分布式+HA,s201+s206作为主备名称节点)
在s201上启动dfs集群。$>start-dfs.sh
容灾演示:hdfs haadmin -failover nn1 nn2 //从nn1 到nn2实现容灾
(2)webui:
http://s201:50070/ //来查看有没有成功
(3)查看节点状态:
hdfs haadmin -getServiceState nn1
(4)容灾切换:
hdfs haadmin -failover nn1 nn2 //从nn1 到nn2实现容灾
9.角色划分
-----------------------------------------------
NameNode //s201,s206
DateNode //s202,s203,s204,s205
JournalNode //s202,s203,s204
ZK //s202,s203,s204
10.启动hbase集群
------------------------------------------------------
1.角色划分:
maste //s201,s204做高可用
regionServer //s202,s203,s204
2.启动hbase集群
//s201
$>start-hbase.sh
3.查看进程和webui
http://s201:16010
4.启动备份master节点
//s204
$>hbase-daemon.sh start master
11.创建hbase名字空间+表
----------------------------------------------------------------
0.$hbase>list_namespace //列出名字空间
1.$hbase>list_namespace_tables //列出名字空间里的表
2.$hbase>truncate 'ns1:calllogs' //先禁表,然后再删表,,直接重建表的操作
3.$hbase>scan 'ns1:calllogs' //扫描表
4.$hbase>hbase shell //进入Hbase shell
5.$hbase>create_namespace 'ns1' //创建名称空间
6.$hbase>create 'ns1:calllogs','f1' //创建表
12.创建kafka消费之,订阅calllog主题
-----------------------------------------------------------------
1.设计rowkey
业务数据: caller ,callee,date,duration
分区号 号码 时间 标记 对方号码 时长
regionNo ,caller,date,flag,callee,duration
2.使用mvn命令下载工件所有依赖的软件包
mvn -DoutputDirectory=./lib -DgroupId=com.it18zhang -DartifactId=CallLogConsumerModule -Dversion=1.0-SNAPSHOT dependency:copy-dependencies
13.导入kafka消费者,放置到以上的lib下面,使用命令行的方式运行
-------------------------------------------------------------------------------------------------
java -cp io-2.4.jar ./lib/commons-lang-2.6.jar ./lib/commons-logging-1.2.jar ./lib/commons-math3-3.1.1.jar ./lib/commons-net-3.1.jar ./lib/curator-client-2.7.1.jar ./lib/curator-
14.编写web程序,从hbase中提取数据进行展示
----------------------------------------------------------------------
1.进入ssm项目下,创建calllog
2.创建