1、数据生产 - 获取通讯录数据
(1)子模块ct-common、ct-producer代码编写
代码下载处:
BigData0323.zip
原本的素材:
通过代码业务进行对格式的转换,启动程序,控制台运行如下:
2、数据生产 - 随机生成主被叫电话号码
基本代码实现:
/**
* 生产数据
*/
public void produce() {
try {
// 读取通讯录数据
List<Contact> contacts = in.read(Contact.class);
while (flg) {
// 从通讯录中随机查找2个电话号码(主叫,被叫)
int call1Index = new Random().nextInt(contacts.size());
int call2Index;
while ( true ) {
call2Index = new Random().nextInt(contacts.size());
if ( call1Index != call2Index ) {
break;
}
}
Contact call1 = contacts.get(call1Index);
Contact call2 = contacts.get(call2Index);
另:测试Test类的随机数的变化,基本代码实现:
package com.study.ct.producer;
import java.util.Random;
public class Test {
public static void main(String[] args) {
Random random = new Random(10);
for ( int i = 0; i < 10; i++ ) {
System.out.println(random.nextInt(10));
}
System.out.println("**********************************");
Random random1 = new Random(10);
for ( int i = 0; i < 10; i++ ) {
System.out.println(random1.nextInt(10));
}
}
}
控制台打印数据
3、 数据生产 - 构建通话记录、数据生产 - 将数据输出到日志文件中
(1) 代码编写子模块:ct-common、ct-producer
代码下载处:
BigData0323.zip
代码编写完成后,启动Bootstrap,控制台将会打印数据信息
4、数据生产 - 将项目打成jar包发布到Linux中
(1)将contact.log文件上传到Linux环境中
(2)对子模块ct-producer的Bootstrap类的代码优化一下:
package com.study.ct.producer;
import com.study.ct.common.bean.Producer;
import com.study.ct.producer.bean.LocalFileProducer;
import com.study.ct.producer.io.LocalFileDataIn;
import com.study.ct.producer.io.LocalFileDataOut;
/**
* 启动对象
*/
public class Bootstrap {
public static void main(String[] args)throws Exception {
if(args.length < 2){
System.out.println("系统不正确,请按照指定的格式传递:java -jar Produce.jar");
System.exit(1);
}
// 构建生产者对象
Producer producer = new LocalFileProducer();
/* producer.setIn(new LocalFileDataIn("D:\\Hadoop\\BigData\\contact.log"));
producer.setOut(new LocalFileDataOut("D:\\Hadoop\\BigData\\call.log"));*/
producer.setIn(new LocalFileDataIn(args[0]));
producer.setOut(new LocalFileDataOut(args[1]));
// 生产数据
producer.produce();
// 关闭生产者对象
producer.close();
}
}
(3)对项目进行打包前的配置
注意:打包必须要有main方法
打包步前,需要配置
配置骤图如下:
以上步骤,说明配置ok了
(4)对项目进行打包
进行打包中
打包ok
把ct-producer.jar包上传到Linux环境中
(5)命令执行程序
//查看文件
[root@flink102 workProject]# ll
total 20
-rw-r--r-- 1 root root 543 Mar 24 12:26 contact.log
-rw-r--r-- 1 root root 14155 Mar 24 12:53 ct-producer.jar
[root@flink102 workProject]#
//执行程序
//这里发现执行有误,需要指定文件执行
[root@flink102 workProject]# java -jar ct-producer.jar
系统不正确,请按照指定的格式传递:java -jar Produce.jar
[root@flink102 workProject]# java -jar ct-producer.jar /opt/workProject/contact.log /opt/workProject/call.log
如图所示:
通讯数据的生产数据完成了