/*
{"id":[{"_id":"1473367236143\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000027\u0001\n1473367261933\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000028\u0001\n1473367280349\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000029\u0001\n1473367331326\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000030\u0001\n1473367353310\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000031\u0001\n1473367387087\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000032\u0001\n1473367402167\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000033\u0001\n1473367451994\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000034\u0001\n1473367474316\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000035\u0001\n1473367564181\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000036\u0001\n1473367589527\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000037\u0001\n1473367610310\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000038\u0001\n1473367624647\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000039\u0001\n1473368004298\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000040\u0001\n1473368017851\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000041\u0001\n1473369599067\u00010\u0001AppLaunch\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000042\u0001\n1473369622274\u00010\u0001connectByQRCode\u0001\u00010\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u00011609072239570000043\u0001\n","cid_sn":"750","device_id_type":"suerdadadada","商品鏈接":"https://detail.tmall.com/item.htm?id=45150572369","imei":"1066"}
*/
//json文件格式
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import com.google.gson.JsonArray;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
public class JSON {
private static Configuration conf = null;
? ? static {
? ? ? ? ? ? conf = HBaseConfiguration.create();
? ? ? ? ? ? conf.set("hbase.zookeeper.quorum", "master");// 使用eclipse時必須添加這個腊敲,否則無法定位master需要配置hosts
? ? ? ? ? ? conf.set("hbase.zookeeper.property.clientPort", "2181");
? ? }
? ? public static void main(String args[]) throws IOException{
? ? createTable("test","picture");
? ? ? ? JsonParser parse =new JsonParser(); ?//創(chuàng)建json解析器
? ? ? ? try {
? ? ? ? JsonParser parser=new JsonParser(); ?//創(chuàng)建JSON解析器
? ? ? ? ? ? JsonObject object=(JsonObject) parser.parse(new FileReader("E:\\qwe\\qwe.json")); ?//創(chuàng)建JsonObject對象
? ? ? ? ? ? JsonArray array=object.get("id").getAsJsonArray();?
? ? ? ? ? ? for(int i=0;i<array.size();i++){
? ? ? ? ? ? ? ? System.out.println("---------------");
? ? ? ? ? ? ? ? JsonObject subObject=array.get(i).getAsJsonObject();
? ? ? ? ? ? ? ? System.out.println("第"+(i+1)+"件商品");
? ? ? ? ? ?String a="null";
? ? ? ? ? ?String b="null";
? ? ? ? ? ?String c="null";
? ? ? ? ? ?String d="null";
? ? ? ? ? ? ? ? System.out.println("id="+subObject.get("_id").getAsString());
? ? ? ? ? ? ? ? if(subObject.get("width")!=null){System.out.println("width="+subObject.get("width").getAsInt());a=subObject.get("width").getAsString();}
? ? ? ? ? ? ? ? if(subObject.get("商品標(biāo)題")!=null){System.out.println("商品標(biāo)題="+subObject.get("商品標(biāo)題").getAsString());b=subObject.get("商品標(biāo)題").getAsString();}
? ? ? ? ? ? ? ? if(subObject.get("商品鏈接")!=null){System.out.println("商品鏈接="+subObject.get("商品鏈接").getAsString());c=subObject.get("商品鏈接").getAsString();}
? ? ? ? ? ? ? ? if(subObject.get("height")!=null){ System.out.println("height="+subObject.get("height").getAsInt());d=subObject.get("height").getAsString();}
? ? ? ? ? ? ? ? String[] cols = { "id","width","title","url","height"};//列?
? ? ? ? ? ? ? ? String[] colsValue = {subObject.get("_id").getAsString(),a,b,c,d};//值 ??
? ? ? ? ? ? ? ? String ?str = String.valueOf(i+1);
? ? ? ? ? ? ? ? addData("test",str, cols, colsValue);//表名筋遭,行健,列,值
? ? ? ? ? ? }
? ? ? ? } catch (JsonIOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (JsonSyntaxException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (FileNotFoundException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
? ? private static void addData(String tableName,String rowKey, String[] column1, String[] value1) throws IOException {
? ? ? ? Put put = new Put(Bytes.toBytes(rowKey));// 設(shè)置rowkey
? ? ? ? HTable table = new HTable(conf, Bytes.toBytes(tableName));// HTabel負責(zé)跟記錄相關(guān)的操作如增刪改查等//
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 獲取表
? ? ? ? HColumnDescriptor[] columnFamilies = table.getTableDescriptor() // 獲取所有的列族
? ? ? ? ? ? ? ? ? ? ? ? .getColumnFamilies();
? ? ? ? for (int i = 0; i < columnFamilies.length; i++) {
? ? ? ? ? ? ? ? String familyName = columnFamilies[i].getNameAsString(); // 獲取列族名
? ? ? ? ? ? ? ? if (familyName.equals("picture")) { // article列族put數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? for (int j = 0; j < column1.length; j++) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? put.add(Bytes.toBytes(familyName),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Bytes.toBytes(column1[j]), Bytes.toBytes(value1[j]));
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? table.put(put);
? ? ? ? System.out.println("add data Success!");
}
? ? private static void createTable(String TableName,String family) throws MasterNotRunningException,
? ? ZooKeeperConnectionException, IOException {
HBaseAdmin admin = new HBaseAdmin(conf);// 新建一個數(shù)據(jù)庫管理員
if (admin.tableExists(TableName)) {
? ? System.out.println("table is exist!");
? ? System.exit(0);
} else {
? ? HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(TableName));
? ? desc.addFamily(new HColumnDescriptor(family));
? ? admin.createTable(desc);
? ? admin.close();
? ? System.out.println("create table Success!");
}
}
}