[ 
https://issues.apache.org/jira/browse/HBASE-25346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

nilonealex updated HBASE-25346:
-------------------------------
    Description: 
Recently we found that the newly built hbase cluster is running a bit slow 
,then wo begin to  data load and query performance verification based on 
Hbase2.0.2 ( HDP3.1.1) & Hbase1.2.0 ( CDH5.13.3 ), and found that put data 
based on hbase2.0 is much slower than hbase1.x (the former is almost half of 
the latter), I use BufferedMutator and BufferedMutatorParams syntax for batch 
[put to improve efficiency. Some of the codes are as follows:

-----------------------------------------------------------------------
List<Mutation> mutator = new ArrayList<>();
BufferedMutator table = null;

BufferedMutatorParams params = new 
BufferedMutatorParams(TableName.valueOf(fileHbRule.getHbaseTableName()));
params.writeBufferSize(fileHbRule.getFlushBuffer().intValue()*1024*1024);
table = connection.getBufferedMutator(params);          
                
mutator.add(p);

if(totalCnts % 5000 == 0 ) {
        table.mutate(mutator);
        mutator.clear();
}
-----------------------------------------------------------------------

The file to put is a text format file: 2 million rows comma-separated text 
file, each row records 110 columns, total size is about 1G. In addition to the 
main parameter configuration such as heap memory, I kept the default parameter 
values ??for most of the hbase services.
The load program is designed for single thread.

The following is the progress information :

----------------------- Hbase1.2.0 ( CDH5.13.3 ) 
--------------------------------------------
2020-12-01 16:48:18 inserted:  100000
2020-12-01 16:48:36 inserted:  200000
2020-12-01 16:48:52 inserted:  300000
2020-12-01 16:49:08 inserted:  400000
2020-12-01 16:49:23 inserted:  500000
2020-12-01 16:49:39 inserted:  600000
2020-12-01 16:49:56 inserted:  700000
2020-12-01 16:50:12 inserted:  800000
2020-12-01 16:50:29 inserted:  900000
2020-12-01 16:50:45 inserted:  1000000
2020-12-01 16:51:01 inserted:  1100000
2020-12-01 16:51:17 inserted:  1200000
2020-12-01 16:51:34 inserted:  1300000
2020-12-01 16:51:49 inserted:  1400000
2020-12-01 16:52:05 inserted:  1500000
2020-12-01 16:52:21 inserted:  1600000
2020-12-01 16:52:40 inserted:  1700000
2020-12-01 16:52:57 inserted:  1800000
2020-12-01 16:53:19 inserted:  1900000
2020-12-01 16:53:42 inserted:  2000000
2020-12-01 16:53:48 inserted:  2000000
imp finished ok! 
--job finished--

-----------------------Hbase.2.0.2 ( 
HDP3.1.1)--------------------------------------------------------------
2020-12-01 17:25:24 inserted:  100000
2020-12-01 17:26:03 inserted:  200000
2020-12-01 17:26:39 inserted:  300000
2020-12-01 17:27:13 inserted:  400000
2020-12-01 17:27:47 inserted:  500000
2020-12-01 17:28:23 inserted:  600000
2020-12-01 17:29:03 inserted:  700000
2020-12-01 17:29:40 inserted:  800000
2020-12-01 17:30:15 inserted:  900000
2020-12-01 17:30:51 inserted:  1000000
2020-12-01 17:31:27 inserted:  1100000
2020-12-01 17:32:03 inserted:  1200000
2020-12-01 17:32:39 inserted:  1300000
2020-12-01 17:33:14 inserted:  1400000
2020-12-01 17:33:50 inserted:  1500000
2020-12-01 17:34:25 inserted:  1600000
2020-12-01 17:35:01 inserted:  1700000
2020-12-01 17:35:38 inserted:  1800000
2020-12-01 17:36:14 inserted:  1900000
2020-12-01 17:36:51 inserted:  2000000
2020-12-01 17:36:55 inserted:  2000000
imp finished ok! 
--job finished--
returnCode=0

Are there any key points that I have not done configuration? or,, this version 
has performance defects ?

  was:
I am doing data load and query performance verification based on Hbase2.0.2 ( 
HDP3.1.1) & Hbase1.2.0 ( CDH5.13.3 ), and found that put data based on hbase2.0 
is much slower than hbase1.x (the former is almost half of the latter), I use 
BufferedMutator and BufferedMutatorParams syntax for batch [put to improve 
efficiency. Some of the codes are as follows:

-----------------------------------------------------------------------
List<Mutation> mutator = new ArrayList<>();
BufferedMutator table = null;

BufferedMutatorParams params = new 
BufferedMutatorParams(TableName.valueOf(fileHbRule.getHbaseTableName()));
params.writeBufferSize(fileHbRule.getFlushBuffer().intValue()*1024*1024);
table = connection.getBufferedMutator(params);          
                
mutator.add(p);

if(totalCnts % 5000 == 0 ) {
        table.mutate(mutator);
        mutator.clear();
}
-----------------------------------------------------------------------

The file to put is a text format file: 2 million rows comma-separated text 
file, each row records 110 columns, total size is about 1G. In addition to the 
main parameter configuration such as heap memory, I kept the default parameter 
values ??for most of the hbase services.
The load program is designed for single thread.

The following is the progress information :

----------------------- Hbase1.2.0 ( CDH5.13.3 ) 
--------------------------------------------
2020-12-01 16:48:18 inserted:  100000
2020-12-01 16:48:36 inserted:  200000
2020-12-01 16:48:52 inserted:  300000
2020-12-01 16:49:08 inserted:  400000
2020-12-01 16:49:23 inserted:  500000
2020-12-01 16:49:39 inserted:  600000
2020-12-01 16:49:56 inserted:  700000
2020-12-01 16:50:12 inserted:  800000
2020-12-01 16:50:29 inserted:  900000
2020-12-01 16:50:45 inserted:  1000000
2020-12-01 16:51:01 inserted:  1100000
2020-12-01 16:51:17 inserted:  1200000
2020-12-01 16:51:34 inserted:  1300000
2020-12-01 16:51:49 inserted:  1400000
2020-12-01 16:52:05 inserted:  1500000
2020-12-01 16:52:21 inserted:  1600000
2020-12-01 16:52:40 inserted:  1700000
2020-12-01 16:52:57 inserted:  1800000
2020-12-01 16:53:19 inserted:  1900000
2020-12-01 16:53:42 inserted:  2000000
2020-12-01 16:53:48 inserted:  2000000
imp finished ok! 
--job finished--

-----------------------Hbase.2.0.2 ( 
HDP3.1.1)--------------------------------------------------------------
2020-12-01 17:25:24 inserted:  100000
2020-12-01 17:26:03 inserted:  200000
2020-12-01 17:26:39 inserted:  300000
2020-12-01 17:27:13 inserted:  400000
2020-12-01 17:27:47 inserted:  500000
2020-12-01 17:28:23 inserted:  600000
2020-12-01 17:29:03 inserted:  700000
2020-12-01 17:29:40 inserted:  800000
2020-12-01 17:30:15 inserted:  900000
2020-12-01 17:30:51 inserted:  1000000
2020-12-01 17:31:27 inserted:  1100000
2020-12-01 17:32:03 inserted:  1200000
2020-12-01 17:32:39 inserted:  1300000
2020-12-01 17:33:14 inserted:  1400000
2020-12-01 17:33:50 inserted:  1500000
2020-12-01 17:34:25 inserted:  1600000
2020-12-01 17:35:01 inserted:  1700000
2020-12-01 17:35:38 inserted:  1800000
2020-12-01 17:36:14 inserted:  1900000
2020-12-01 17:36:51 inserted:  2000000
2020-12-01 17:36:55 inserted:  2000000
imp finished ok! 
--job finished--
returnCode=0

Are there any key points that I have not done configuration? or,, this version 
has performance defects ?


> hbase2.x the speed of writing data is slower than version 1.x
> -------------------------------------------------------------
>
>                 Key: HBASE-25346
>                 URL: https://issues.apache.org/jira/browse/HBASE-25346
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 2.0.2
>            Reporter: nilonealex
>            Priority: Critical
>         Attachments: hbase-site.xml
>
>
> Recently we found that the newly built hbase cluster is running a bit slow 
> ,then wo begin to  data load and query performance verification based on 
> Hbase2.0.2 ( HDP3.1.1) & Hbase1.2.0 ( CDH5.13.3 ), and found that put data 
> based on hbase2.0 is much slower than hbase1.x (the former is almost half of 
> the latter), I use BufferedMutator and BufferedMutatorParams syntax for batch 
> [put to improve efficiency. Some of the codes are as follows:
> -----------------------------------------------------------------------
> List<Mutation> mutator = new ArrayList<>();
> BufferedMutator table = null;
> BufferedMutatorParams params = new 
> BufferedMutatorParams(TableName.valueOf(fileHbRule.getHbaseTableName()));
> params.writeBufferSize(fileHbRule.getFlushBuffer().intValue()*1024*1024);
> table = connection.getBufferedMutator(params);                
>               
> mutator.add(p);
> if(totalCnts % 5000 == 0 ) {
>       table.mutate(mutator);
>       mutator.clear();
> }
> -----------------------------------------------------------------------
> The file to put is a text format file: 2 million rows comma-separated text 
> file, each row records 110 columns, total size is about 1G. In addition to 
> the main parameter configuration such as heap memory, I kept the default 
> parameter values ??for most of the hbase services.
> The load program is designed for single thread.
> The following is the progress information :
> ----------------------- Hbase1.2.0 ( CDH5.13.3 ) 
> --------------------------------------------
> 2020-12-01 16:48:18 inserted:  100000
> 2020-12-01 16:48:36 inserted:  200000
> 2020-12-01 16:48:52 inserted:  300000
> 2020-12-01 16:49:08 inserted:  400000
> 2020-12-01 16:49:23 inserted:  500000
> 2020-12-01 16:49:39 inserted:  600000
> 2020-12-01 16:49:56 inserted:  700000
> 2020-12-01 16:50:12 inserted:  800000
> 2020-12-01 16:50:29 inserted:  900000
> 2020-12-01 16:50:45 inserted:  1000000
> 2020-12-01 16:51:01 inserted:  1100000
> 2020-12-01 16:51:17 inserted:  1200000
> 2020-12-01 16:51:34 inserted:  1300000
> 2020-12-01 16:51:49 inserted:  1400000
> 2020-12-01 16:52:05 inserted:  1500000
> 2020-12-01 16:52:21 inserted:  1600000
> 2020-12-01 16:52:40 inserted:  1700000
> 2020-12-01 16:52:57 inserted:  1800000
> 2020-12-01 16:53:19 inserted:  1900000
> 2020-12-01 16:53:42 inserted:  2000000
> 2020-12-01 16:53:48 inserted:  2000000
> imp finished ok! 
> --job finished--
> -----------------------Hbase.2.0.2 ( 
> HDP3.1.1)--------------------------------------------------------------
> 2020-12-01 17:25:24 inserted:  100000
> 2020-12-01 17:26:03 inserted:  200000
> 2020-12-01 17:26:39 inserted:  300000
> 2020-12-01 17:27:13 inserted:  400000
> 2020-12-01 17:27:47 inserted:  500000
> 2020-12-01 17:28:23 inserted:  600000
> 2020-12-01 17:29:03 inserted:  700000
> 2020-12-01 17:29:40 inserted:  800000
> 2020-12-01 17:30:15 inserted:  900000
> 2020-12-01 17:30:51 inserted:  1000000
> 2020-12-01 17:31:27 inserted:  1100000
> 2020-12-01 17:32:03 inserted:  1200000
> 2020-12-01 17:32:39 inserted:  1300000
> 2020-12-01 17:33:14 inserted:  1400000
> 2020-12-01 17:33:50 inserted:  1500000
> 2020-12-01 17:34:25 inserted:  1600000
> 2020-12-01 17:35:01 inserted:  1700000
> 2020-12-01 17:35:38 inserted:  1800000
> 2020-12-01 17:36:14 inserted:  1900000
> 2020-12-01 17:36:51 inserted:  2000000
> 2020-12-01 17:36:55 inserted:  2000000
> imp finished ok! 
> --job finished--
> returnCode=0
> Are there any key points that I have not done configuration? or,, this 
> version has performance defects ?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to