集群搭建好了,片键也设置好了,接下来就是写导入的代码来进行数据的迁移
思路:因为其中有6个表,所需要导入的数据量是200G,400G......数据量太大,所以需要将导入数据的代码打成jar包,然后放在不同机器上运行,前提:代码里设置了args[]手动输入参数的判断,进而判断是哪一张表,应该对哪一张表进行操作,部分代码如下:
if (args[0].equalsIgnoreCase("wnjd")) {//判断是否是wnjd 表
int begin = Integer.valueOf(args[1]);
int end = Integer.valueOf(args[2]);
for(int i=begin;i<end;i++){
for(int month=1;month<13;month++){
for(int day=1;day<29;day++){
String yearString = Integer.toString(i);
String monthString = Integer.toString(month);
String dayString = Integer.toString(day);
if(monthString.length()==1) monthString = "0" + monthString;
if(dayString.length()==1) dayString = "0" + dayString;
String time = yearString + "-" + monthString + "-" +dayString;
System.out.println(time);
System.out.println("-----------------------------------------------");
col = db.getCollection("wnjd");
NetworkNode(col,time);
System.out.println("wnjd done.");
System.out.println("-----------------------------------------------\n");
}
}
}
}
代码写好以后,打成jar包的时候出现了问题:
1、出现了JNI的错误,上网百度了一番,最后发现了,原来是源代码中引入的其他的jar包没有被识别,进行修改
需要注意的几点:
这个微博讲的比较详细:http://blog.csdn.net/u011791526/article/details/52523724
就是注意jar包中引入了第三方jar包的问题
还有打包的时候注意主清单的问题,有可能出现缺失主清单,所以打包时需要勾选下图的东西:
上面的这种方法在运行jar包的时候需要将源代码的包一起带上运行,因为jar包需要和lib文件夹在同一个目录中
还有一种比较直接的方法,不过我没有尝试:
http://blog.csdn.net/saga_1412/article/details/20862749