日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Gora官方范例

發(fā)布時(shí)間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gora官方范例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考官方文檔:http://gora.apache.org/current/tutorial.html

項(xiàng)目代碼見:https://code.csdn.net/jediael_lu/mygorademo


一、環(huán)境準(zhǔn)備
1、下載gora并解壓

2、分別進(jìn)入$GORA_HOME/gora-hbase/,$GORA_HOME/gora-core,$GORA_HOME/gora-compiler,$GORA_HOME/gora-compiler-CLI執(zhí)行
$ mvn clean install

或者直接在$GORA_HOME執(zhí)行此命令。

3、啟動(dòng)hbase,需要有zookeeper,即一般為分布式的hbase。
注意gora-0.5對(duì)應(yīng)Hbase0.94

4、準(zhǔn)備好日志文件,用于本項(xiàng)目的分析


二、建立項(xiàng)目

1、建立一個(gè)java project

(1)創(chuàng)建以下幾個(gè)目錄


(2)構(gòu)建build path,增加hadoop library,hbase library以及avro, gora相關(guān)的類包,詳見后面的項(xiàng)目結(jié)構(gòu)。

(3)將準(zhǔn)備好的日志文件放到resource目錄下

2、在conf目錄下創(chuàng)建gora.properties,內(nèi)容如下:

##gora.datastore.default is the default detastore implementation to use ##if it is not passed to the DataStoreFactory#createDataStore() method. gora.datastore.default=org.apache.gora.hbase.store.HBaseStore##whether to create schema automatically if not exists. gora.datastore.autocreateschema=true
3、在avro目錄下創(chuàng)建pageview.json,內(nèi)容如下:

{"type": "record","name": "Pageview", "default":null,"namespace": "org.apache.gora.tutorial.log.generated","fields" : [{"name": "url", "type": ["null","string"], "default":null},{"name": "timestamp", "type": "long", "default":0},{"name": "ip", "type": ["null","string"], "default":null},{"name": "httpMethod", "type": ["null","string"], "default":null},{"name": "httpStatusCode", "type": "int", "default":0},{"name": "responseSize", "type": "int", "default":0},{"name": "referrer", "type": ["null","string"], "default":null},{"name": "userAgent", "type": ["null","string"], "default":null}] }

4、根據(jù)pageview.json生成java類
$ pwd
/Users/liaoliuqing/99_Project/1_myCodes/MyGoraDemo

$ gora goracompiler avro/pageview.json src/
Compiling: /Users/liaoliuqing/99_Project/1_myCodes/MyGoraDemo/avro/pageview.json
Compiled into: /Users/liaoliuqing/99_Project/1_myCodes/MyGoraDemo/src
Compiler executed SUCCESSFULL.
此命令在src目錄下生成一個(gè)類:
org.apache.gora.tutorial.log.generated.Pageview.java
生成的內(nèi)容請(qǐng)見最后面。


5、創(chuàng)建gora-hbase-mapping.xml,內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?><!--Gora Mapping file for HBase Backend --> <gora-otd><table name="Pageview"> <!-- optional descriptors for tables --><family name="common"/> <!-- This can also have params like compression, bloom filters --><family name="http"/><family name="misc"/></table><class name="org.apache.gora.tutorial.log.generated.Pageview" keyClass="java.lang.Long" table="AccessLog"><field name="url" family="common" qualifier="url"/><field name="timestamp" family="common" qualifier="timestamp"/><field name="ip" family="common" qualifier="ip" /><field name="httpMethod" family="http" qualifier="httpMethod"/><field name="httpStatusCode" family="http" qualifier="httpStatusCode"/><field name="responseSize" family="http" qualifier="responseSize"/><field name="referrer" family="misc" qualifier="referrer"/><field name="userAgent" family="misc" qualifier="userAgent"/></class></gora-otd>

三、代碼編寫及分析
1、編寫以下代碼

package org.apache.gora.tutorial.log;import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.StringTokenizer;import org.apache.avro.util.Utf8; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.gora.query.Query; import org.apache.gora.query.Result; import org.apache.gora.store.DataStore; import org.apache.gora.store.DataStoreFactory; import org.apache.gora.tutorial.log.generated.Pageview; import org.apache.hadoop.conf.Configuration;/*** LogManager is the tutorial class to illustrate the basic * {@link DataStore} API usage. The LogManager class is used * to parse the web server logs in combined log format, store the * data in a Gora compatible data store, query and manipulate the stored data. * * <p>In the data model, keys are the line numbers in the log file, * and the values are Pageview objects, generated from * <code>gora-tutorial/src/main/avro/pageview.json</code>.* * <p>See the tutorial.html file in docs or go to the * <a href="http://gora.apache.org/docs/current/tutorial.html"> * web site</a>for more information.</p>*/ public class LogManager {private static final Logger log = LoggerFactory.getLogger(LogManager.class);private DataStore<Long, Pageview> dataStore; private static final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z");public LogManager() {try {init();} catch (IOException ex) {throw new RuntimeException(ex);}}private void init() throws IOException {//Data store objects are created from a factory. It is necessary to //provide the key and value class. The datastore class is optional, //and if not specified it will be read from the properties filedataStore = DataStoreFactory.getDataStore(Long.class, Pageview.class,new Configuration());}/*** Parses a log file and store the contents at the data store.* @param input the input file location*/private void parse(String input) throws IOException, ParseException, Exception {log.info("Parsing file:" + input);BufferedReader reader = new BufferedReader(new FileReader(input));long lineCount = 0;try {String line = reader.readLine();do {Pageview pageview = parseLine(line);if(pageview != null) {//store the pageview storePageview(lineCount++, pageview);}line = reader.readLine();} while(line != null);} finally {reader.close(); }log.info("finished parsing file. Total number of log lines:" + lineCount);}/** Parses a single log line in combined log format using StringTokenizers */private Pageview parseLine(String line) throws ParseException {StringTokenizer matcher = new StringTokenizer(line);//parse the log lineString ip = matcher.nextToken();matcher.nextToken(); //discardmatcher.nextToken();long timestamp = dateFormat.parse(matcher.nextToken("]").substring(2)).getTime();matcher.nextToken("\"");String request = matcher.nextToken("\"");String[] requestParts = request.split(" ");String httpMethod = requestParts[0];String url = requestParts[1];matcher.nextToken(" ");int httpStatusCode = Integer.parseInt(matcher.nextToken());int responseSize = Integer.parseInt(matcher.nextToken());matcher.nextToken("\"");String referrer = matcher.nextToken("\"");matcher.nextToken("\"");String userAgent = matcher.nextToken("\"");//construct and return pageview objectPageview pageview = new Pageview();pageview.setIp(new Utf8(ip));pageview.setTimestamp(timestamp);pageview.setHttpMethod(new Utf8(httpMethod));pageview.setUrl(new Utf8(url));pageview.setHttpStatusCode(httpStatusCode);pageview.setResponseSize(responseSize);pageview.setReferrer(new Utf8(referrer));pageview.setUserAgent(new Utf8(userAgent));return pageview;}/** Stores the pageview object with the given key */private void storePageview(long key, Pageview pageview) throws IOException, Exception {log.info("Storing Pageview in: " + dataStore.toString());dataStore.put(key, pageview);}/** Fetches a single pageview object and prints it*/private void get(long key) throws IOException, Exception {Pageview pageview = dataStore.get(key);printPageview(pageview);}/** Queries and prints a single pageview object */private void query(long key) throws IOException, Exception {//Queries are constructed from the data storeQuery<Long, Pageview> query = dataStore.newQuery();query.setKey(key);Result<Long, Pageview> result = query.execute(); //Actually executes the query.// alternatively dataStore.execute(query); can be usedprintResult(result);}/** Queries and prints pageview object that have keys between startKey and endKey*/private void query(long startKey, long endKey) throws IOException, Exception {Query<Long, Pageview> query = dataStore.newQuery();//set the properties of queryquery.setStartKey(startKey);query.setEndKey(endKey);Result<Long, Pageview> result = query.execute();printResult(result);}/**Deletes the pageview with the given line number */private void delete(long lineNum) throws Exception {dataStore.delete(lineNum);dataStore.flush(); //write changes may need to be flushed before//they are committed log.info("pageview with key:" + lineNum + " deleted");}/** This method illustrates delete by query call */private void deleteByQuery(long startKey, long endKey) throws IOException, Exception {//Constructs a query from the dataStore. The matching rows to this query will be deletedQuery<Long, Pageview> query = dataStore.newQuery();//set the properties of queryquery.setStartKey(startKey);query.setEndKey(endKey);dataStore.deleteByQuery(query);log.info("pageviews with keys between " + startKey + " and " + endKey + " are deleted");}private void printResult(Result<Long, Pageview> result) throws IOException, Exception {while(result.next()) { //advances the Result object and breaks if at endlong resultKey = result.getKey(); //obtain current keyPageview resultPageview = result.get(); //obtain current value object//print the resultsSystem.out.println(resultKey + ":");printPageview(resultPageview);}System.out.println("Number of pageviews from the query:" + result.getOffset());}/** Pretty prints the pageview object to stdout */private void printPageview(Pageview pageview) {if(pageview == null) {System.out.println("No result to show"); } else {System.out.println(pageview.toString());}}private void close() throws IOException, Exception {//It is very important to close the datastore properly, otherwise//some data loss might occur.if(dataStore != null)dataStore.close();}private static final String USAGE = "LogManager -parse <input_log_file>\n" +" -get <lineNum>\n" +" -query <lineNum>\n" +" -query <startLineNum> <endLineNum>\n" +" -delete <lineNum>\n" +" -deleteByQuery <startLineNum> <endLineNum>\n";public static void main(String[] args) throws Exception {if(args.length < 2) {System.err.println(USAGE);System.exit(1);}LogManager manager = new LogManager();if("-parse".equals(args[0])) {manager.parse(args[1]);} else if("-get".equals(args[0])) {manager.get(Long.parseLong(args[1]));} else if("-query".equals(args[0])) {if(args.length == 2) manager.query(Long.parseLong(args[1]));else manager.query(Long.parseLong(args[1]), Long.parseLong(args[2]));} else if("-delete".equals(args[0])) {manager.delete(Long.parseLong(args[1]));} else if("-deleteByQuery".equalsIgnoreCase(args[0])) {manager.deleteByQuery(Long.parseLong(args[1]), Long.parseLong(args[2]));} else {System.err.println(USAGE);System.exit(1);}manager.close();}}
2、在eclipse中run as java application,輸出如下:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/liaoliuqing/99_Project/1_myCodes/MyGoraDemo/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/liaoliuqing/99_Project/99_userLibrary/log4j_2.0/log4j-slf4j-impl-2.0-rc2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/liaoliuqing/1_BigData/1_Hadoop/0_Official/hadoop-1.2.1/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
LogManager -parse <input_log_file>
?????????? -get <lineNum>
?????????? -query <lineNum>
?????????? -query <startLineNum> <endLineNum>
?????????? -delete <lineNum>
?????????? -deleteByQuery <startLineNum> <endLineNum>


3、將項(xiàng)目打包并放至服務(wù)器中。

export --> runnable jar file



4、執(zhí)行程序
在bin目錄下執(zhí)行以下命令
$ java -jar MyGoraDemo.jar -parse resource/access.log
5、查看結(jié)果
$hbase shell

hbase(main):001:0> list
TABLE????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
AccessLog????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Jan2814_webpage??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Jan2819_webpage??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Jan2910_webpage??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
member???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
5 row(s) in 1.2440 seconds

hbase(main):002:0> count 'AccessLog'
Current count: 1000, row: \x00\x00\x00\x00\x00\x00\x03\xE7???????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 2000, row: \x00\x00\x00\x00\x00\x00\x07\xCF???????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 3000, row: \x00\x00\x00\x00\x00\x00\x0B\xB7???????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 4000, row: \x00\x00\x00\x00\x00\x00\x0F\x9F???????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 5000, row: \x00\x00\x00\x00\x00\x00\x13\x87???????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 6000, row: \x00\x00\x00\x00\x00\x00\x17o??????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 7000, row: \x00\x00\x00\x00\x00\x00\x1BW??????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 8000, row: \x00\x00\x00\x00\x00\x00\x1F???????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 9000, row: \x00\x00\x00\x00\x00\x00#'?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
Current count: 10000, row: \x00\x00\x00\x00\x00\x00'\x0F?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
10000 row(s) in 1.8960 seconds

四、程序分析

1、項(xiàng)目結(jié)構(gòu)

2、數(shù)據(jù)庫(kù)的其它操作(讀取與刪除)請(qǐng)參考官方文檔。

以下為部分內(nèi)容的截取,更詳細(xì)內(nèi)容請(qǐng)見http://gora.apache.org/current/tutorial.html

Fetching objects from data store

Fetching objects from the data store is as easy as storing them. There are essentially two methods for fetching objects. First one is to fetch a single object given it's key. The second method is to run a query through the data store.

To fetch objects one by one, we can use one of the overloaded get() methods. The method with signature get(K key) returns the object corresponding to the given key fetching all the fields. On the other hand get(K key, String[] fields) returns the object corresponding to the given key, but fetching only the fields given as the second argument.

When run with the argument -get LogManager class fetches the pageview object from the data store and prints the results.

/** Fetches a single pageview object and prints it*/
private void get(long key) throws IOException {
? Pageview pageview = dataStore.get(key);
? printPageview(pageview);
}

To display the 42nd line of the access log :

$ bin/gora logmanager -get 42

org.apache.gora.tutorial.log.generated.Pageview@321ce053 {
? "url":"/index.php?i=0&amp;a=1__rntjt9z0q9w&amp;k=398179"
? "timestamp":"1236710649000"
? "ip":"88.240.129.183"
? "httpMethod":"GET"
? "httpStatusCode":"200"
? "responseSize":"43"
? "referrer":"http://www.buldinle.com/index.php?i=0&amp;a=1__RnTjT9z0Q9w&amp;k=398179"
? "userAgent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
}

Querying objects

DataStore API defines a Query interface to query the objects at the data store. Each data store implementation can use a specific implementation of the Query interface. Queries are instantiated by calling DataStore#newQuery(). When the query is run through the datastore, the results are returned via the Result interface. Let's see how we can run a query and display the results below in the the LogManager class.

/** Queries and prints pageview object that have keys between startKey and endKey*/
private void query(long startKey, long endKey) throws IOException {
? Query<Long, Pageview> query = dataStore.newQuery();
? //set the properties of query
? query.setStartKey(startKey);
? query.setEndKey(endKey);

? Result<Long, Pageview> result = query.execute();

? printResult(result);
}

After constructing a Query, its properties are set via the setter methods. Then calling query.execute() returns the Result object.

Result interface allows us to iterate the results one by one by calling the next() method. The getKey() method returns the current key and get() returns current persistent object.

private void printResult(Result<Long, Pageview> result) throws IOException {

? while(result.next()) { //advances the Result object and breaks if at end
??? long resultKey = result.getKey(); //obtain current key
??? Pageview resultPageview = result.get(); //obtain current value object

??? //print the results
??? System.out.println(resultKey + ":");
??? printPageview(resultPageview);
? }

? System.out.println("Number of pageviews from the query:" + result.getOffset());
}

With these functions defined, we can run the Log Manager class, to query the access logs at HBase. For example, to display the log records between lines 10 and 12 we can use:

bin/gora logmanager -query 10 12

Which results in:

10:
org.apache.gora.tutorial.log.generated.Pageview@d38d0eaa {
? "url":"/"
? "timestamp":"1236710442000"
? "ip":"144.122.180.55"
? "httpMethod":"GET"
? "httpStatusCode":"200"
? "responseSize":"43"
? "referrer":"http://buldinle.com/"
? "userAgent":"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.10 (intrepid) Firefox/3.0.6"
}
11:
org.apache.gora.tutorial.log.generated.Pageview@b513110a {
? "url":"/index.php?i=7&amp;a=1__gefuumyhl5c&amp;k=5143555"
? "timestamp":"1236710453000"
? "ip":"85.100.75.104"
? "httpMethod":"GET"
? "httpStatusCode":"200"
? "responseSize":"43"
? "referrer":"http://www.buldinle.com/index.php?i=7&amp;a=1__GeFUuMyHl5c&amp;k=5143555"
? "userAgent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"
}

Deleting objects

Just like fetching objects, there are two main methods to delete objects from the data store. The first one is to delete objects one by one using the DataStore#delete(K key) method, which takes the key of the object. Alternatively we can delete all of the data that matches a given query by calling the DataStore#deleteByQuery(Query query) method. By using #deleteByQuery, we can do fine-grain deletes, for example deleting just a specific field from several records. Continueing from the LogManager class, the api's for both are given below.

/**Deletes the pageview with the given line number */
private void delete(long lineNum) throws Exception {
? dataStore.delete(lineNum);
? dataStore.flush(); //write changes may need to be flushed before they are committed
}

/** This method illustrates delete by query call */
private void deleteByQuery(long startKey, long endKey) throws IOException {
? //Constructs a query from the dataStore. The matching rows to this query will be deleted
? Query<Long, Pageview> query = dataStore.newQuery();
? //set the properties of query
? query.setStartKey(startKey);
? query.setEndKey(endKey);

? dataStore.deleteByQuery(query);
}

And from the command line :

bin/gora logmanager -delete 12
bin/gora logmanager -deleteByQuery 40 50

- See more at: http://gora.apache.org/current/tutorial.html#sthash.i7gfQUe7.dpufFetching objects from the data store is as easy as storing them. There are essentially two methods for fetching objects. First one is to fetch a single object given it's key. The second method is to run a query through the data store.


附生成的java類:

?

/*** Autogenerated by Avro* * DO NOT EDIT DIRECTLY*/ package org.apache.gora.tutorial.log.generated; @SuppressWarnings("all") public class Pageview extends org.apache.gora.persistency.impl.PersistentBase implements org.apache.avro.specific.SpecificRecord, org.apache.gora.persistency.Persistent {public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"Pageview\",\"namespace\":\"org.apache.gora.tutorial.log.generated\",\"fields\":[{\"name\":\"url\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"timestamp\",\"type\":\"long\",\"default\":0},{\"name\":\"ip\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"httpMethod\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"httpStatusCode\",\"type\":\"int\",\"default\":0},{\"name\":\"responseSize\",\"type\":\"int\",\"default\":0},{\"name\":\"referrer\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"userAgent\",\"type\":[\"null\",\"string\"],\"default\":null}],\"default\":null}");/** Enum containing all data bean's fields. */public static enum Field {URL(0, "url"),TIMESTAMP(1, "timestamp"),IP(2, "ip"),HTTP_METHOD(3, "httpMethod"),HTTP_STATUS_CODE(4, "httpStatusCode"),RESPONSE_SIZE(5, "responseSize"),REFERRER(6, "referrer"),USER_AGENT(7, "userAgent"),;/*** Field's index.*/private int index;/*** Field's name.*/private String name;/*** Field's constructor* @param index field's index.* @param name field's name.*/Field(int index, String name) {this.index=index;this.name=name;}/*** Gets field's index.* @return int field's index.*/public int getIndex() {return index;}/*** Gets field's name.* @return String field's name.*/public String getName() {return name;}/*** Gets field's attributes to string.* @return String field's attributes to string.*/public String toString() {return name;}};public static final String[] _ALL_FIELDS = {"url","timestamp","ip","httpMethod","httpStatusCode","responseSize","referrer","userAgent",};/*** Gets the total field count.* @return int field count*/public int getFieldsCount() {return Pageview._ALL_FIELDS.length;}private java.lang.CharSequence url;private long timestamp;private java.lang.CharSequence ip;private java.lang.CharSequence httpMethod;private int httpStatusCode;private int responseSize;private java.lang.CharSequence referrer;private java.lang.CharSequence userAgent;public org.apache.avro.Schema getSchema() { return SCHEMA$; }// Used by DatumWriter. Applications should not call. public java.lang.Object get(int field$) {switch (field$) {case 0: return url;case 1: return timestamp;case 2: return ip;case 3: return httpMethod;case 4: return httpStatusCode;case 5: return responseSize;case 6: return referrer;case 7: return userAgent;default: throw new org.apache.avro.AvroRuntimeException("Bad index");}}// Used by DatumReader. Applications should not call. @SuppressWarnings(value="unchecked")public void put(int field$, java.lang.Object value) {switch (field$) {case 0: url = (java.lang.CharSequence)(value); break;case 1: timestamp = (java.lang.Long)(value); break;case 2: ip = (java.lang.CharSequence)(value); break;case 3: httpMethod = (java.lang.CharSequence)(value); break;case 4: httpStatusCode = (java.lang.Integer)(value); break;case 5: responseSize = (java.lang.Integer)(value); break;case 6: referrer = (java.lang.CharSequence)(value); break;case 7: userAgent = (java.lang.CharSequence)(value); break;default: throw new org.apache.avro.AvroRuntimeException("Bad index");}}/*** Gets the value of the 'url' field.*/public java.lang.CharSequence getUrl() {return url;}/*** Sets the value of the 'url' field.* @param value the value to set.*/public void setUrl(java.lang.CharSequence value) {this.url = value;setDirty(0);}/*** Checks the dirty status of the 'url' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isUrlDirty(java.lang.CharSequence value) {return isDirty(0);}/*** Gets the value of the 'timestamp' field.*/public java.lang.Long getTimestamp() {return timestamp;}/*** Sets the value of the 'timestamp' field.* @param value the value to set.*/public void setTimestamp(java.lang.Long value) {this.timestamp = value;setDirty(1);}/*** Checks the dirty status of the 'timestamp' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isTimestampDirty(java.lang.Long value) {return isDirty(1);}/*** Gets the value of the 'ip' field.*/public java.lang.CharSequence getIp() {return ip;}/*** Sets the value of the 'ip' field.* @param value the value to set.*/public void setIp(java.lang.CharSequence value) {this.ip = value;setDirty(2);}/*** Checks the dirty status of the 'ip' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isIpDirty(java.lang.CharSequence value) {return isDirty(2);}/*** Gets the value of the 'httpMethod' field.*/public java.lang.CharSequence getHttpMethod() {return httpMethod;}/*** Sets the value of the 'httpMethod' field.* @param value the value to set.*/public void setHttpMethod(java.lang.CharSequence value) {this.httpMethod = value;setDirty(3);}/*** Checks the dirty status of the 'httpMethod' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isHttpMethodDirty(java.lang.CharSequence value) {return isDirty(3);}/*** Gets the value of the 'httpStatusCode' field.*/public java.lang.Integer getHttpStatusCode() {return httpStatusCode;}/*** Sets the value of the 'httpStatusCode' field.* @param value the value to set.*/public void setHttpStatusCode(java.lang.Integer value) {this.httpStatusCode = value;setDirty(4);}/*** Checks the dirty status of the 'httpStatusCode' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isHttpStatusCodeDirty(java.lang.Integer value) {return isDirty(4);}/*** Gets the value of the 'responseSize' field.*/public java.lang.Integer getResponseSize() {return responseSize;}/*** Sets the value of the 'responseSize' field.* @param value the value to set.*/public void setResponseSize(java.lang.Integer value) {this.responseSize = value;setDirty(5);}/*** Checks the dirty status of the 'responseSize' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isResponseSizeDirty(java.lang.Integer value) {return isDirty(5);}/*** Gets the value of the 'referrer' field.*/public java.lang.CharSequence getReferrer() {return referrer;}/*** Sets the value of the 'referrer' field.* @param value the value to set.*/public void setReferrer(java.lang.CharSequence value) {this.referrer = value;setDirty(6);}/*** Checks the dirty status of the 'referrer' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isReferrerDirty(java.lang.CharSequence value) {return isDirty(6);}/*** Gets the value of the 'userAgent' field.*/public java.lang.CharSequence getUserAgent() {return userAgent;}/*** Sets the value of the 'userAgent' field.* @param value the value to set.*/public void setUserAgent(java.lang.CharSequence value) {this.userAgent = value;setDirty(7);}/*** Checks the dirty status of the 'userAgent' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isUserAgentDirty(java.lang.CharSequence value) {return isDirty(7);}/** Creates a new Pageview RecordBuilder */public static org.apache.gora.tutorial.log.generated.Pageview.Builder newBuilder() {return new org.apache.gora.tutorial.log.generated.Pageview.Builder();}/** Creates a new Pageview RecordBuilder by copying an existing Builder */public static org.apache.gora.tutorial.log.generated.Pageview.Builder newBuilder(org.apache.gora.tutorial.log.generated.Pageview.Builder other) {return new org.apache.gora.tutorial.log.generated.Pageview.Builder(other);}/** Creates a new Pageview RecordBuilder by copying an existing Pageview instance */public static org.apache.gora.tutorial.log.generated.Pageview.Builder newBuilder(org.apache.gora.tutorial.log.generated.Pageview other) {return new org.apache.gora.tutorial.log.generated.Pageview.Builder(other);}private static java.nio.ByteBuffer deepCopyToReadOnlyBuffer(java.nio.ByteBuffer input) {java.nio.ByteBuffer copy = java.nio.ByteBuffer.allocate(input.capacity());int position = input.position();input.reset();int mark = input.position();int limit = input.limit();input.rewind();input.limit(input.capacity());copy.put(input);input.rewind();copy.rewind();input.position(mark);input.mark();copy.position(mark);copy.mark();input.position(position);copy.position(position);input.limit(limit);copy.limit(limit);return copy.asReadOnlyBuffer();}/*** RecordBuilder for Pageview instances.*/public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<Pageview>implements org.apache.avro.data.RecordBuilder<Pageview> {private java.lang.CharSequence url;private long timestamp;private java.lang.CharSequence ip;private java.lang.CharSequence httpMethod;private int httpStatusCode;private int responseSize;private java.lang.CharSequence referrer;private java.lang.CharSequence userAgent;/** Creates a new Builder */private Builder() {super(org.apache.gora.tutorial.log.generated.Pageview.SCHEMA$);}/** Creates a Builder by copying an existing Builder */private Builder(org.apache.gora.tutorial.log.generated.Pageview.Builder other) {super(other);}/** Creates a Builder by copying an existing Pageview instance */private Builder(org.apache.gora.tutorial.log.generated.Pageview other) {super(org.apache.gora.tutorial.log.generated.Pageview.SCHEMA$);if (isValidValue(fields()[0], other.url)) {this.url = (java.lang.CharSequence) data().deepCopy(fields()[0].schema(), other.url);fieldSetFlags()[0] = true;}if (isValidValue(fields()[1], other.timestamp)) {this.timestamp = (java.lang.Long) data().deepCopy(fields()[1].schema(), other.timestamp);fieldSetFlags()[1] = true;}if (isValidValue(fields()[2], other.ip)) {this.ip = (java.lang.CharSequence) data().deepCopy(fields()[2].schema(), other.ip);fieldSetFlags()[2] = true;}if (isValidValue(fields()[3], other.httpMethod)) {this.httpMethod = (java.lang.CharSequence) data().deepCopy(fields()[3].schema(), other.httpMethod);fieldSetFlags()[3] = true;}if (isValidValue(fields()[4], other.httpStatusCode)) {this.httpStatusCode = (java.lang.Integer) data().deepCopy(fields()[4].schema(), other.httpStatusCode);fieldSetFlags()[4] = true;}if (isValidValue(fields()[5], other.responseSize)) {this.responseSize = (java.lang.Integer) data().deepCopy(fields()[5].schema(), other.responseSize);fieldSetFlags()[5] = true;}if (isValidValue(fields()[6], other.referrer)) {this.referrer = (java.lang.CharSequence) data().deepCopy(fields()[6].schema(), other.referrer);fieldSetFlags()[6] = true;}if (isValidValue(fields()[7], other.userAgent)) {this.userAgent = (java.lang.CharSequence) data().deepCopy(fields()[7].schema(), other.userAgent);fieldSetFlags()[7] = true;}}/** Gets the value of the 'url' field */public java.lang.CharSequence getUrl() {return url;}/** Sets the value of the 'url' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setUrl(java.lang.CharSequence value) {validate(fields()[0], value);this.url = value;fieldSetFlags()[0] = true;return this; }/** Checks whether the 'url' field has been set */public boolean hasUrl() {return fieldSetFlags()[0];}/** Clears the value of the 'url' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearUrl() {url = null;fieldSetFlags()[0] = false;return this;}/** Gets the value of the 'timestamp' field */public java.lang.Long getTimestamp() {return timestamp;}/** Sets the value of the 'timestamp' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setTimestamp(long value) {validate(fields()[1], value);this.timestamp = value;fieldSetFlags()[1] = true;return this; }/** Checks whether the 'timestamp' field has been set */public boolean hasTimestamp() {return fieldSetFlags()[1];}/** Clears the value of the 'timestamp' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearTimestamp() {fieldSetFlags()[1] = false;return this;}/** Gets the value of the 'ip' field */public java.lang.CharSequence getIp() {return ip;}/** Sets the value of the 'ip' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setIp(java.lang.CharSequence value) {validate(fields()[2], value);this.ip = value;fieldSetFlags()[2] = true;return this; }/** Checks whether the 'ip' field has been set */public boolean hasIp() {return fieldSetFlags()[2];}/** Clears the value of the 'ip' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearIp() {ip = null;fieldSetFlags()[2] = false;return this;}/** Gets the value of the 'httpMethod' field */public java.lang.CharSequence getHttpMethod() {return httpMethod;}/** Sets the value of the 'httpMethod' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setHttpMethod(java.lang.CharSequence value) {validate(fields()[3], value);this.httpMethod = value;fieldSetFlags()[3] = true;return this; }/** Checks whether the 'httpMethod' field has been set */public boolean hasHttpMethod() {return fieldSetFlags()[3];}/** Clears the value of the 'httpMethod' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearHttpMethod() {httpMethod = null;fieldSetFlags()[3] = false;return this;}/** Gets the value of the 'httpStatusCode' field */public java.lang.Integer getHttpStatusCode() {return httpStatusCode;}/** Sets the value of the 'httpStatusCode' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setHttpStatusCode(int value) {validate(fields()[4], value);this.httpStatusCode = value;fieldSetFlags()[4] = true;return this; }/** Checks whether the 'httpStatusCode' field has been set */public boolean hasHttpStatusCode() {return fieldSetFlags()[4];}/** Clears the value of the 'httpStatusCode' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearHttpStatusCode() {fieldSetFlags()[4] = false;return this;}/** Gets the value of the 'responseSize' field */public java.lang.Integer getResponseSize() {return responseSize;}/** Sets the value of the 'responseSize' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setResponseSize(int value) {validate(fields()[5], value);this.responseSize = value;fieldSetFlags()[5] = true;return this; }/** Checks whether the 'responseSize' field has been set */public boolean hasResponseSize() {return fieldSetFlags()[5];}/** Clears the value of the 'responseSize' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearResponseSize() {fieldSetFlags()[5] = false;return this;}/** Gets the value of the 'referrer' field */public java.lang.CharSequence getReferrer() {return referrer;}/** Sets the value of the 'referrer' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setReferrer(java.lang.CharSequence value) {validate(fields()[6], value);this.referrer = value;fieldSetFlags()[6] = true;return this; }/** Checks whether the 'referrer' field has been set */public boolean hasReferrer() {return fieldSetFlags()[6];}/** Clears the value of the 'referrer' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearReferrer() {referrer = null;fieldSetFlags()[6] = false;return this;}/** Gets the value of the 'userAgent' field */public java.lang.CharSequence getUserAgent() {return userAgent;}/** Sets the value of the 'userAgent' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder setUserAgent(java.lang.CharSequence value) {validate(fields()[7], value);this.userAgent = value;fieldSetFlags()[7] = true;return this; }/** Checks whether the 'userAgent' field has been set */public boolean hasUserAgent() {return fieldSetFlags()[7];}/** Clears the value of the 'userAgent' field */public org.apache.gora.tutorial.log.generated.Pageview.Builder clearUserAgent() {userAgent = null;fieldSetFlags()[7] = false;return this;}@Overridepublic Pageview build() {try {Pageview record = new Pageview();record.url = fieldSetFlags()[0] ? this.url : (java.lang.CharSequence) defaultValue(fields()[0]);record.timestamp = fieldSetFlags()[1] ? this.timestamp : (java.lang.Long) defaultValue(fields()[1]);record.ip = fieldSetFlags()[2] ? this.ip : (java.lang.CharSequence) defaultValue(fields()[2]);record.httpMethod = fieldSetFlags()[3] ? this.httpMethod : (java.lang.CharSequence) defaultValue(fields()[3]);record.httpStatusCode = fieldSetFlags()[4] ? this.httpStatusCode : (java.lang.Integer) defaultValue(fields()[4]);record.responseSize = fieldSetFlags()[5] ? this.responseSize : (java.lang.Integer) defaultValue(fields()[5]);record.referrer = fieldSetFlags()[6] ? this.referrer : (java.lang.CharSequence) defaultValue(fields()[6]);record.userAgent = fieldSetFlags()[7] ? this.userAgent : (java.lang.CharSequence) defaultValue(fields()[7]);return record;} catch (Exception e) {throw new org.apache.avro.AvroRuntimeException(e);}}}public Pageview.Tombstone getTombstone(){return TOMBSTONE;}public Pageview newInstance(){return newBuilder().build();}private static final Tombstone TOMBSTONE = new Tombstone();public static final class Tombstone extends Pageview implements org.apache.gora.persistency.Tombstone {private Tombstone() { }/*** Gets the value of the 'url' field.*/public java.lang.CharSequence getUrl() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'url' field.* @param value the value to set.*/public void setUrl(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'url' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isUrlDirty(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'timestamp' field.*/public java.lang.Long getTimestamp() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'timestamp' field.* @param value the value to set.*/public void setTimestamp(java.lang.Long value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'timestamp' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isTimestampDirty(java.lang.Long value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'ip' field.*/public java.lang.CharSequence getIp() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'ip' field.* @param value the value to set.*/public void setIp(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'ip' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isIpDirty(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'httpMethod' field.*/public java.lang.CharSequence getHttpMethod() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'httpMethod' field.* @param value the value to set.*/public void setHttpMethod(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'httpMethod' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isHttpMethodDirty(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'httpStatusCode' field.*/public java.lang.Integer getHttpStatusCode() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'httpStatusCode' field.* @param value the value to set.*/public void setHttpStatusCode(java.lang.Integer value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'httpStatusCode' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isHttpStatusCodeDirty(java.lang.Integer value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'responseSize' field.*/public java.lang.Integer getResponseSize() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'responseSize' field.* @param value the value to set.*/public void setResponseSize(java.lang.Integer value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'responseSize' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isResponseSizeDirty(java.lang.Integer value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'referrer' field.*/public java.lang.CharSequence getReferrer() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'referrer' field.* @param value the value to set.*/public void setReferrer(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'referrer' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isReferrerDirty(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}/*** Gets the value of the 'userAgent' field.*/public java.lang.CharSequence getUserAgent() {throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones");}/*** Sets the value of the 'userAgent' field.* @param value the value to set.*/public void setUserAgent(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones");}/*** Checks the dirty status of the 'userAgent' field. A field is dirty if it represents a change that has not yet been written to the database.* @param value the value to set.*/public boolean isUserAgentDirty(java.lang.CharSequence value) {throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones");}}}


總結(jié)

以上是生活随笔為你收集整理的Gora官方范例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美三级在线播放 | 久久婷婷国产 | 在线观看免费一级片 | 中文字幕日本特黄aa毛片 | 国产一区二区不卡在线 | 日本久久久久久科技有限公司 | 99久久精品免费看国产一区二区三区 | 国产日韩中文字幕 | 人人射人人爽 | 日本91在线| 成人av电影免费在线播放 | 婷婷精品 | 日韩激情免费视频 | 一区国产精品 | 五月天中文字幕 | 亚洲在线激情 | www..com黄色片 | 日韩在线 一区二区 | 97超碰在线免费 | 激情久久伊人 | 一区 在线 影院 | 久久久毛片 | 97超碰在线久草超碰在线观看 | 六月婷婷久香在线视频 | 97人人人人 | 四虎在线视频免费观看 | 国产精品视频免费在线观看 | 97在线精品 | 5月丁香婷婷综合 | 91麻豆精品国产自产在线游戏 | 97av影院| 日日日操操 | 国产喷水在线 | 96av在线 | 青青草国产免费 | 91视频这里只有精品 | 三级午夜片 | 99c视频在线 | 九九影视理伦片 | 99操视频| 国产一区 在线播放 | 国产一二区精品 | 狠狠干成人 | 国产在线中文字幕 | 久久亚洲人 | 国产福利在线免费观看 | 久久免费视频这里只有精品 | 不卡电影免费在线播放一区 | 久久精品观看 | 91精品国产一区二区三区 | 天天天操操操 | 91精品啪在线观看国产81旧版 | 中文字幕精品三区 | 欧美激情另类文学 | 视频 国产区 | av电影一区二区三区 | 黄色av影视| 国产一线二线三线性视频 | 奇米777777 | 人人爽人人爽人人爽人人爽 | 亚洲九九九在线观看 | 丁香高清视频在线看看 | 亚洲精品乱码久久久久久蜜桃动漫 | 丁香婷婷综合网 | 精品视频成人 | 国产精品久久久一区二区三区网站 | 天天干国产 | 精品人妖videos欧美人妖 | 久久网址 | 果冻av在线| 欧美久久久久久久久久久久久 | 91精品国产麻豆 | 中文字幕免费成人 | 一区二区av | 色香天天| 中文字幕专区高清在线观看 | av看片网址| 人人舔人人 | 色婷婷国产精品 | 五月婷婷另类国产 | 91视频首页 | 高清不卡毛片 | 国产视频在线播放 | av片在线观看免费 | 国产又粗又长又硬免费视频 | 一区二区中文字幕在线播放 | 黄色影院在线观看 | 黄色资源网站 | 成人精品国产 | 国产精品久久久久久五月尺 | 国产精品1区2区 | 国产精品成人一区二区三区吃奶 | 黄网站www| 国产精品18久久久久久首页狼 | 99国产情侣在线播放 | 亚洲精品在线资源 | 天天操天天射天天爽 | 天天视频色版 | 99久久精品免费看国产一区二区三区 | 日本在线观看一区 | 国产一二三四在线观看视频 | 欧美在线视频精品 | 色婷婷亚洲精品 | 人人狠狠综合久久亚洲 | free,性欧美 九九交易行官网 | 国产精品国产三级国产专区53 | 91超级碰| 亚洲尺码电影av久久 | 亚洲第一成网站 | 精品福利网站 | 香蕉视频最新网址 | 婷婷视频在线播放 | 成年人网站免费在线观看 | 久久婷综合 | 国产精品麻豆免费版 | 精品九九久久 | 国产亚洲免费的视频看 | 天天摸夜夜操 | 天天干,天天操,天天射 | 国产专区一 | 国产亚洲视频在线 | 亚洲aⅴ在线 | 亚洲一区二区精品 | 天天操夜夜做 | 狠狠色狠狠色终合网 | 米奇四色影视 | 日韩二区三区在线观看 | 久久久久久99精品 | 天天天天射 | 一本一道久久a久久精品 | 97电影在线| av怡红院| 国产1区在线观看 | 97在线观看视频免费 | 国产精品免费一区二区三区 | 黄a在线| 国产精品麻 | 四虎永久国产精品 | 精品在线小视频 | 国产在线观看地址 | 美女久久视频 | 91麻豆视频| 日韩激情影院 | 亚洲成人资源在线观看 | 精品国产自在精品国产精野外直播 | 午夜性福利 | 又粗又长又大又爽又黄少妇毛片 | 久热久草 | 九七人人干 | 色综合久久99 | 69国产成人综合久久精品欧美 | 日本黄色免费观看 | 日韩资源在线 | 国产亚洲午夜高清国产拍精品 | 久久天天操 | 日韩激情视频在线观看 | 色姑娘综合天天 | 99久国产 | 国内精品国产三级国产aⅴ久 | 国产人免费人成免费视频 | 久久久国产一区二区 | 国产一区二区在线观看视频 | 在线视频电影 | 日韩久久精品一区二区三区下载 | 色婷婷成人 | 99久热在线精品视频观看 | 亚洲精品小区久久久久久 | 精品中文字幕在线播放 | 激情小说久久 | 国产精品 999 | 一区二区高清在线 | 国产精品你懂的在线观看 | 久久国产精品免费一区 | 99精品视频免费看 | 四虎小视频 | 成人app在线播放 | 亚洲激情 | 精品久久久久久亚洲综合网 | 一本一本久久a久久精品综合妖精 | 亚洲精品国产精品乱码在线观看 | 日韩一级黄色av | 久久久资源网 | 五月丁色 | 六月丁香激情综合色啪小说 | 超碰97中文| 青青河边草观看完整版高清 | 欧美日韩在线免费观看 | 黄色毛片观看 | 在线三级中文 | 国产亚洲精品久久久久久网站 | 免费a v视频| av网站免费看 | 国产三级视频在线 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久久久久99精品 | 97视频精品 | 九九综合久久 | 黄色av免费看| 一区二区三区免费在线观看 | 亚洲天天| 久久久精品一区二区三区 | 亚洲少妇天堂 | 一区二区三区高清在线 | 手机av网站| 久草视频网 | 天天舔天天射天天操 | 九色免费视频 | 一级成人免费 | 99九九99九九九视频精品 | 色吊丝av中文字幕 | 在线天堂中文在线资源网 | 国产成人综合精品 | 国产精品一二三 | h视频日本 | 国产精品久久久久影视 | 亚洲一级电影 | 日日草天天干 | 最新av在线播放 | 免费午夜网站 | 9免费视频 | 999成人 | 亚洲免费精品视频 | 91av在线免费 | 亚洲a色 | 久久大片网站 | 国产精品第二十页 | 成人在线观看免费视频 | 综合激情伊人 | 一级黄色片毛片 | 精品欧美乱码久久久久久 | 伊人五月天综合 | 久久影院中文字幕 | 天堂在线成人 | 五月天开心 | 永久免费精品视频网站 | 日日干美女 | 草久视频在线 | 国产精品一区二区三区免费视频 | 日本美女xx | 久久综合九色欧美综合狠狠 | 国产在线一区二区 | 精品国产欧美 | 日本xxxxav| 天天性天天草 | 探花在线观看 | 久草视频免费在线播放 | 二区三区在线视频 | 在线久草视频 | 国产精品99精品久久免费 | 国产91对白在线播 | 中文乱幕日产无线码1区 | 日韩精品中文字幕久久臀 | 亚洲第一香蕉视频 | 精品视频成人 | 国产a网站 | 久久久精品午夜 | 欧美韩国日本在线观看 | 国产精品麻豆一区二区三区 | 久久精品一区八戒影视 | 好看av在线 | 免费久久久| 天天躁天天躁天天躁婷 | 丁香六月伊人 | 亚洲精品麻豆视频 | 亚洲狠狠婷婷综合久久久 | 日韩欧美v | 手机成人免费视频 | 精品一二三区 | 日本精品视频在线观看 | 久久福利| 中文在线a√在线 | 射综合网 | 91丝袜美腿 | 99视频国产在线 | 国产精品欧美久久久久久 | 亚洲精品免费在线 | 探花系列在线 | 超碰人人做 | av理论电影 | 中文久久精品 | 在线国产欧美 | 在线免费av网 | 国产黄色片久久 | 丰满少妇对白在线偷拍 | 亚洲精品在线免费 | 久久夜色精品国产欧美乱 | 亚洲欧美日韩国产一区二区三区 | 国产xxxx性hd极品 | 国产伦精品一区二区三区四区视频 | 九九视频精品免费 | 精品夜夜嗨av一区二区三区 | 91网在线观看 | 久久一区二区三区超碰国产精品 | 五月天综合激情网 | 欧美91av | 国产一级电影免费观看 | 日本特黄特色aaa大片免费 | 亚洲男模gay裸体gay | 中文字幕一区二区三区四区 | 欧美视频xxx | 欧美不卡视频在线 | 二区三区在线 | 丁香六月欧美 | 伊人黄| www.天天综合 | 黄色小说在线观看视频 | 狠狠搞,com | 久久av免费电影 | av亚洲产国偷v产偷v自拍小说 | 久久久久久久久久久久av | 黄色特一级| 99久久婷婷国产综合精品 | 二区三区av| 少妇bbw撒尿 | 天天操天天操天天操天天操天天操 | av中文天堂在线 | 丁香五月亚洲综合在线 | 国产青春久久久国产毛片 | 在线观看黄 | 国产一级免费av | 国产成人av网 | 欧产日产国产69 | 91在线区| 精品在线观看一区二区 | 国产一区二区三区免费在线观看 | 黄毛片在线观看 | 日韩免费视频观看 | 久久草av | 国产69精品久久app免费版 | 手机在线黄色网址 | 亚洲精品乱码久久久一二三 | 黄色在线观看污 | 91日韩在线视频 | 亚洲高清视频在线观看免费 | 一区二区欧美激情 | www.久久91| 最新av在线网站 | 视色网站 | 免费亚洲黄色 | 国产欧美三级 | 欧美精品一区二区在线观看 | 欧美小视频在线观看 | 玖玖在线播放 | 五月情婷婷 | 久久精品视频一 | 在线观看亚洲精品 | 久久久国产精品成人免费 | 欧美日高清视频 | 成x99人av在线www | 久久精品aaa| 日韩一区精品 | 国产成人三级 | 国产精品第54页 | 欧美日韩视频在线 | 亚洲国产黄色片 | 免费在线观看av网址 | 一本之道乱码区 | 最新av免费在线观看 | av亚洲产国偷v产偷v自拍小说 | 久爱精品在线 | 99视频偷窥在线精品国自产拍 | 日韩在线免费小视频 | 婷婷综合久久 | 欧美精品一二三 | 久久黄色网址 | 国产手机视频在线播放 | 日本一区二区不卡高清 | 国产另类xxxxhd高清 | 99视频在线观看免费 | 成人动漫精品一区二区 | 久久精品国产一区二区 | 国内免费久久久久久久久久久 | 国产在线成人 | 91成人精品一区在线播放69 | 日韩成人欧美 | 亚洲午夜精品久久久久久久久 | 天天综合网在线 | 免费在线观看a v | 国产精品久久久久久高潮 | 99在线视频免费观看 | 超碰夜夜 | 日本护士三级少妇三级999 | 成人久久久精品国产乱码一区二区 | 国产精品人成电影在线观看 | av免费网页 | 国产精品k频道 | 欧美一区二视频在线免费观看 | 亚洲午夜久久久久久久久电影网 | www.91av在线| 色999五月色 | 精品久久久国产 | 高清av中文字幕 | 国产午夜一级毛片 | 国产一级高清视频 | 日韩一区二区三区高清在线观看 | 九九在线高清精品视频 | 日韩精品视频久久 | 久久婷婷网 | 午夜精品一二区 | 色天堂在线视频 | 国产精彩视频一区二区 | 日日夜夜精品视频天天综合网 | 视频91| 久久久麻豆精品一区二区 | 天天操天天操天天 | av福利网址导航大全 | 免费福利视频网 | 在线观看黄网 | 超碰97人人射妻 | 免费看v片网站 | 久久国产精品影片 | 国产最新在线视频 | 日韩在线观看网站 | 久久超碰99 | 欧美精品成人在线 | 美女视频是黄的免费观看 | 欧美一区二视频在线免费观看 | 91福利国产在线观看 | 91福利影院在线观看 | 91精品国自产在线偷拍蜜桃 | 亚洲精品91天天久久人人 | 中文字幕在线电影 | 欧美一区中文字幕 | 色综合天天在线 | 91在线麻豆| 久久男人免费视频 | 色综合天天狠天天透天天伊人 | 日韩av中文在线观看 | 伊人av综合 | 香蕉视频久久久 | 福利视频| 国产一区二区三区四区在线 | 国产精品美女久久久久久久网站 | a黄色 | 91在线看网站 | 亚洲视频免费在线 | 午夜av一区 | 国产欧美最新羞羞视频在线观看 | 免费亚洲片 | 日韩网 | 久久久在线免费观看 | 久久av高清 | 久久精品免费观看 | 国产精品久久久久久久久久久久午 | 成人黄色免费在线观看 | 国产在线观看免费 | 欧美日韩在线视频观看 | 亚洲精品视频在线看 | 美女免费黄视频网站 | 日韩电影一区二区在线 | 波多野结衣在线播放一区 | 成人免费观看a | 91porny九色91啦中文 | 亚洲aaa毛片| 免费在线黄 | 月下香电影| 人人插人人射 | 六月激情久久 | 午夜精品一区二区三区视频免费看 | 久草在线资源观看 | 在线91视频| av丁香花| 国产一区高清在线 | 久久精品视 | 国产四虎影院 | 亚洲欧美日韩一级 | 亚洲精品网站 | 99久久夜色精品国产亚洲96 | 九九久久久| 五月天婷亚洲天综合网鲁鲁鲁 | 欧美一级片在线观看视频 | 波多野结衣视频一区二区三区 | 五月婷婷在线视频观看 | 色吊丝在线永久观看最新版本 | 欧美日韩天堂 | 黄污视频网站大全 | 成人国产精品免费观看 | 黄色大全免费网站 | 日本在线视频网址 | 国产精品第2页 | 免费观看成人av | 色国产视频 | 久草在线国产 | 亚洲国产中文在线 | 精品视频久久久 | 亚洲精品久久久久中文字幕二区 | 久久黄色精品视频 | 色永久免费视频 | 在线中文字幕视频 | 免费视频国产 | 欧美成人黄色 | 91麻豆网站| 国产人成在线观看 | 欧美日韩中文字幕视频 | 黄色av电影在线 | av一区二区三区在线观看 | 国产中文字幕在线免费观看 | 99久精品视频 | 日韩区视频 | 国产一级片免费播放 | 日韩成人精品一区二区三区 | 午夜精品av | 久久久久激情 | 久九视频 | 国产视频黄 | 久久免费av电影 | 亚洲一区二区高潮无套美女 | 色综合久久久久综合体 | 免费a视频 | 久久久久国产精品免费网站 | 天堂久久电影网 | 开心激情综合网 | 在线午夜av | 国产中文字幕视频 | 国产99re| 中文字幕在线一二 | www黄色com | 91视频91蝌蚪 | 久久久久 免费视频 | 伊人电影天堂 | 国产资源免费在线观看 | 中文字幕在线资源 | 一区视频在线 | 国产免费观看高清完整版 | 在线观看黄色小视频 | 免费精品国产va自在自线 | 黄色日视频 | 在线视频久久 | 国产不卡免费视频 | 久草在线视频网 | 91综合视频在线观看 | 欧美日本国产在线观看 | 国产免费亚洲高清 | 婷婷色网址| 成人免费观看视频大全 | 色偷偷中文字幕 | 成人av在线看 | 黄色www免费 | 久久久电影网站 | 精品色综合 | 伊色综合久久之综合久久 | 91av在线免费观看 | 一本一本久久a久久 | av中文天堂 | 免费热情视频 | 久久久久久久久免费视频 | 在线看片视频 | 日韩精品一区二区三区不卡 | 国产又粗又猛又黄又爽 | 午夜精品福利影院 | 久草网视频在线观看 | 日韩狠狠操 | 香蕉网在线| 在线91av | 国产亚洲精品久久久网站好莱 | 激情五月六月婷婷 | 色播99 | 国产视频一区精品 | 天天透天天插 | 亚洲国产中文字幕 | 色综合久久88色综合天天6 | 久久中文字幕在线视频 | 亚洲精品在线免费播放 | 免费看片成人 | 美女久久精品 | 手机av片 | 黄色三几片 | 日韩1级片 | 免费看一级黄色大全 | 天天操天天干天天爽 | 国内精品久久久久影院优 | 亚洲成人蜜桃 | 中文字幕观看视频 | 草久中文字幕 | 免费观看国产视频 | 在线播放国产一区二区三区 | 91香蕉视频污在线 | 欧美日本中文字幕 | 亚洲砖区区免费 | 国产精品手机在线播放 | 国产免费成人 | 欧美一区二区在线免费观看 | 日韩一区二区三区高清免费看看 | 色婷婷五 | 99久久婷婷国产精品综合 | 欧美日韩p片| 成人av网站在线观看 | 亚洲国产婷婷 | 超碰精品在线 | v片在线看 | www免费视频com━| 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 91视频在线观看免费 | 亚洲国产色一区 | 婷婷综合伊人 | 亚洲成人av免费 | 韩日精品在线观看 | 色a4yy| 国产中文欧美日韩在线 | 中文字幕在线视频免费播放 | 成年人三级网站 | 精品福利网 | 丁香六月天婷婷 | 亚洲免费av网站 | 欧美一二三区在线观看 | av日韩在线网站 | 9999在线观看 | 国产一区成人在线 | 国产黄色av影视 | 国产日韩av在线 | 国产精品久久久久久一区二区 | 奇米网777 | 亚洲高清av在线 | av超碰在线 | 国产精品对白一区二区三区 | 久久爱992xxoo | 亚洲久久视频 | 又色又爽又激情的59视频 | 欧美日韩电影在线播放 | 久久麻豆精品 | 日韩激情免费视频 | 天天插综合网 | 在线精品视频免费播放 | 激情伊人五月天久久综合 | 亚洲成 人精品 | 狠狠地日 | 亚洲成人资源 | 波多野结衣一区三区 | 午夜视频在线观看一区 | 欧美人zozo | 国产精品久久久久久久av大片 | 国产在线观看av | 亚洲精品在线观看视频 | 精品视频国产 | 91成熟丰满女人少妇 | 国产色视频网站 | 日本二区三区在线 | 国产亚洲精品久久久久久无几年桃 | 免费视频91 | 精品99久久 | 一级性视频 | 日韩精品欧美专区 | 成人网看片| 亚洲香蕉视频 | 麻豆免费看片 | 91丨九色丨91啦蝌蚪老版 | 天天操比 | 天天草天天草 | 日韩字幕在线观看 | 天天av综合网 | 国产免费三级在线观看 | 狠狠狠色狠狠色综合 | 蜜桃av久久久亚洲精品 | 在线播放视频一区 | 国产黑丝袜在线 | 精品国模一区二区 | 欧美激情综合五月色丁香小说 | 欧美一级性生活片 | 亚洲成人家庭影院 | 韩日成人av| 久久综合五月婷婷 | 中文字幕在线观看网 | 伊人在线视频 | 亚洲经典中文字幕 | 日韩国产精品久久 | av在线中文 | 亚洲国产精品成人女人久久 | 亚洲精品久久久久中文字幕二区 | 六月激情婷婷 | 成人免费观看在线视频 | 欧美日韩免费一区二区三区 | 91精品爽啪蜜夜国产在线播放 | 婷婷久久一区二区三区 | 97天天干| 最新av电影网址 | 欧美激情视频免费看 | 狠狠干综合 | 欧美一级艳片视频免费观看 | 91精品国产91| 色婷婷www| 中文字幕在线视频网站 | 免费看色的网站 | 国产精品高清一区二区三区 | 国产小视频在线观看 | 丝袜av网站 | 中文国产在线观看 | 免费黄色av | 日日干天天爽 | 国产乱老熟视频网88av | 亚洲欧美日韩精品一区二区 | 国产xx视频| 三级av免费观看 | 黄色毛片在线 | 在线观看日韩av | 久久精品欧美日韩精品 | 九色在线视频 | 亚洲三级黄色 | 99热最新地址| 亚洲精品大全 | 中文字幕在线电影 | 人人插人人澡 | 国产精品久久久久av免费 | 亚洲精品视频在线观看网站 | 日韩欧美精品一区 | 欧美精品一区二区三区一线天视频 | 日b视频在线观看网址 | 久久国产精品视频观看 | 91夫妻视频| 日韩黄色中文字幕 | 免费精品在线 | www操操 | 久久久久久免费网 | 国产淫片免费看 | 99精品区| 国产一区免费视频 | 97电影院网| 欧美精品乱码久久久久 | 日本大尺码专区mv | 91精品啪在线观看国产 | 久久久不卡影院 | 国产 日韩 欧美 中文 在线播放 | 手机在线免费av | 日韩欧美一区二区三区视频 | 国产亚洲精品久久久久秋 | 免费特级黄色片 | 久久99视频免费观看 | 日韩免费在线观看视频 | 99夜色 | 国产成人亚洲在线观看 | 在线免费高清 | 2018好看的中文在线观看 | 久久草草影视免费网 | 久久久这里有精品 | 高潮久久久久久 | 18+视频网站链接 | 国产资源在线视频 | 亚洲精品乱码久久久久v最新版 | 五月综合久久 | 国产精品video | 国产一区二区三区高清播放 | 国产成人综合精品 | 久久免费视频播放 | 久久福利 | 国产在线精品一区二区不卡了 | 亚洲黑丝少妇 | 久久天天躁狠狠躁亚洲综合公司 | 国产aaa免费视频 | 毛片美女网站 | 天天草综合网 | 欧美特一级片 | 丝袜制服综合网 | 四虎国产精品成人免费影视 | 日本久久久久 | 日韩最新av在线 | 黄色网www | 国产一区二区久久久久 | 99热只有精品在线观看 | 国产一区二区三区网站 | 久久99精品久久久久婷婷 | 日韩欧美大片免费观看 | 免费高清男女打扑克视频 | 在线网站黄 | 在线99热| 精一区二区 | 香蕉久久久久 | 波多野结衣亚洲一区二区 | 在线观看av黄色 | 成人a视频片观看免费 | 久久99视频 | 色播六月天 | 免费观看www小视频的软件 | 久久综合网色—综合色88 | www日韩在线观看 | 97精品国产97久久久久久免费 | 91aaa在线观看 | 亚洲第一av在线播放 | 国产探花 | 天天插日日射 | 亚洲综合在线观看视频 | 久草在线这里只有精品 | 一区二区不卡 | 亚洲综合在线五月天 | 97色资源| 久久不卡国产精品一区二区 | 九九热精品在线 | 亚洲欧美日韩在线看 | 免费毛片aaaaaa | 国产在线理论片 | 全久久久久久久久久久电影 | 青青草视频精品 | 97av视频| 九九亚洲精品 | 日本精品二区 | 精品国产电影一区二区 | 国产成人精品999在线观看 | 亚洲美女视频在线观看 | 人人干在线观看 | 成人免费xxxxxx视频 | 久久精品国产第一区二区三区 | 日韩视频二区 | 久久a v视频 | 99久久9| 中文字幕不卡在线88 | 亚州人成在线播放 | 国产一级一级国产 | 中文有码在线 | 男女拍拍免费视频 | 一区二区三区在线看 | 婷婷国产一区二区三区 | 久久色视频 | 欧美日韩国产精品一区二区亚洲 | 91福利在线观看 | 国产91丝袜在线播放动漫 | 91热这里只有精品 | 亚洲精品在线免费看 | 狠狠干激情 | 99精品乱码国产在线观看 | 天天综合91 | 日本中文字幕视频 | 国产精品免费成人 | 在线视频国产区 | 免费观看性生交 | 午夜性生活 | 日韩一区二区三区在线观看 | 91亚色视频在线观看 | 在线观看亚洲 | 日韩动漫免费观看高清完整版在线观看 | 激情综合狠狠 | 中国美女一级看片 | 婷婷精品在线视频 | 国产精品综合在线观看 | 在线免费观看涩涩 | 亚洲视频,欧洲视频 | 国偷自产中文字幕亚洲手机在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产日产欧美在线观看 | 玖玖在线看 | 国产精品免费看久久久8精臀av | 亚洲国产中文字幕在线观看 | 美女久久视频 | 亚洲精品综合久久 | 国产色在线视频 | 色偷偷88888欧美精品久久 | 日本精品中文字幕在线观看 | 天天干夜夜爱 | 色天天天| 啪啪精品 | 日本久久久久久久久久久 | 国产精品永久在线观看 | av中文字幕网 | 亚洲国产成人高清精品 | 国产精品视频你懂的 | 精品国产99| 超碰在线日本 | 日韩高清无线码2023 | 色视频在线看 | 国产欧美高清 | 伊人国产在线播放 | 亚洲精品在线视频网站 | 久久精品网址 | 中文字幕中文 | 看片在线亚洲 | 中文字幕在 | 91精品视频在线 | 6080yy午夜一二三区久久 | 日本中文字幕网址 | 亚洲dvd | 91成人精品视频 | 欧美aaa视频 | 亚洲专区中文字幕 | 中文字幕乱码一区二区 | 日韩一区二区在线免费观看 | 日本中文不卡 | 午夜精品一区二区国产 | 婷婷六月网 | 99久久成人 | 国产在线精品区 | 成人免费观看在线视频 | 91大神精品视频在线观看 | 99视频一区二区 | 免费在线一区二区三区 | 丝袜美女视频网站 | 久久精品视频网站 | 狠狠狠操 | 毛片网在线 | 国产一区视频免费在线观看 | 国产一级a毛片视频爆浆 | 久久久性| 伊人射 | 国产精品久久久久久久av电影 | 久久久香蕉视频 | 色综合久久中文字幕综合网 | 1区2区视频 | 精品国产成人av | 色综合久| 中文区中文字幕免费看 | 综合色综合色 | 午夜电影 电影 | 五月婷婷中文字幕 | 色黄久久久久久 | 6080yy精品一区二区三区 | 国产五月婷 | 国产精品视频久久 | av午夜电影| 欧美在线观看视频一区二区 | 中文字幕一区二区三区四区在线视频 | 99草在线视频 | 国产视频一二三 | 伊人中文网 | 色偷偷97| 伊人天天综合 | 成 人 黄 色 视频免费播放 | 日日夜夜亚洲 | av电影免费 | 欧美色图p | 天天天色 | 天天干夜夜爽 | 99精品热视频 | 日韩高清在线一区二区三区 | 国产综合香蕉五月婷在线 | 色综合天天综合 | 中文字幕中文 | 国产亚洲精品xxoo | 中文字幕在线观看完整版电影 | 天堂av免费观看 | 国产自在线观看 | 欧美日韩一区二区在线 | 黄色1级大片 | 欧美一级片免费播放 | 播五月综合 | 亚洲精品h | 人人看人人做人人澡 | www.天堂av| 在线观看视频91 | 国产女人免费看a级丨片 | 黄色电影在线免费观看 | 色天天综合久久久久综合片 | 日韩免费中文字幕 | 亚洲精品在线观看不卡 | 久久精品日本啪啪涩涩 | 久久69精品 | 久久久久久久久久久成人 | 91在线公开视频 | 丝袜美腿亚洲 | 99九九热只有国产精品 | 日韩欧美国产免费播放 | 91麻豆看国产在线紧急地址 | 亚洲专区欧美专区 | 国产精品 日韩精品 | 精品日韩在线 | 国产成人福利片 | 欧美日本在线观看视频 | 婷婷5月色 | 亚洲免费成人 | 成片免费观看视频 | 亚洲精品 在线视频 | 四虎在线观看网址 | 久久久99精品免费观看乱色 | 国产精品淫 | 免费看一及片 | 六月色丁香 | 久久精品久久久久电影 | 国产高清日韩欧美 | 亚州av一区 | 婷婷免费视频 | 一区二区三区在线播放 | 日韩亚洲欧美中文字幕 | 亚洲永久精品一区 | 色婷婷综合久久久久 | 欧洲色吧| 国产精品黑丝在线观看 | 国产成人精品久久亚洲高清不卡 | 一区二区三区免费在线播放 | 日日夜夜狠狠干 | 曰本免费av | 99色资源 | 日韩免费观看一区二区三区 | 日日摸日日添日日躁av | 久久久久亚洲国产 | 久久久亚洲麻豆日韩精品一区三区 | 国产伦理一区二区三区 | 中文字幕999 | 亚洲综合在线播放 | 亚洲免费高清视频 | 久久综合久久久 | 麻豆成人精品 | 精品嫩模福利一区二区蜜臀 | 国产尤物在线 | 国产在线a免费观看 | 少妇bbw揉bbb欧美 | av成人免费观看 | 日韩在线观看 | 亚洲精品美女在线观看播放 | 狠狠狠的干 | 久久精品99国产精品日本 | 欧美成人黄色 | 日本中出在线观看 | 久久精品人人做人人综合老师 |