Thanks! I don't know that. HBaseAdmin.modifyTable method looks like overwrite the previous configuration. Is it correct?
In my case, I provide a service using HBase and only admin access HBase directly. The reasons why I choose dynamic loading coprocessor. 1) I don't want to meet the dependency version conflicts. static loading coprocessor's classloader looks like region server's classloader. But dynamic loading coprocessor's classloader and RegionServer's classloader is different. I think I can avoid dependency version conflicts using dynamic loading coprocessor. Because there are using different classloader. 2) It is a hard task that region server rolling restart. Our team wants to avoid region server rolling restart. Doesn't table coprocessor recommend in real production? If it was not recommended, I will consider using system coprocessor. I don't have experience using coprocessor before. I would appreciate your help. Best regards, Minwoo Kang ________________________________________ 보낸 사람: 张铎(Duo Zhang) <palomino...@gmail.com> 보낸 날짜: 2019년 5월 14일 화요일 17:35 받는 사람: hbase-user 제목: Re: How to reload dynamic Coprocessors You have to call HBaseAdmin.modifyTable to trigger a region reopen. And for me, I haven't made use of table level coprocessor in real production, as it is a bit dangerous in a multi-tenant environment. Usually we will add coprocessor at cluster level, through config file. So I'm not sure why we do not provide such method... Maybe it is a bit difficult to control the uploading part? Kang Minwoo <minwoo.k...@outlook.com> 于2019年5月14日周二 下午3:41写道: > Thank you for your reply. > > I tried to update the table descriptor using set > HTableDescriptor#setValue(byte[], byte[]). > the table descriptor changed sucessfully. > But the region doesn't reopen. so new jar didn't apply. > > Why don't we provide a coprocessor jar file update method for users? > Is it not a good idea? > > Best regards, > Minwoo Kang > > ________________________________________ > 보낸 사람: 张铎(Duo Zhang) <palomino...@gmail.com> > 보낸 날짜: 2019년 5월 14일 화요일 11:44 > 받는 사람: hbase-user > 제목: Re: How to reload dynamic Coprocessors > > I think the safest way is to disable the table first, then update the > coprocessor jar in place, and then enable the table. > > Or another way is to upload the coprocessor jar to another place, and > update the table descriptor to point to the new place. I think this could > be done by code, as you can completely replace the old coprocessor config. > Not sure if this is easy to do through shell. > > Kang Minwoo <minwoo.k...@outlook.com> 于2019年5月14日周二 上午10:36写道: > > > Hello Users, > > > > When I load a dynamic coprocessor, If the table already has the same > class > > coprocessor, coprocessor fails to load. > > Because the same class coprocessor cannot load. > > > > So I should unload old version coprocessor before load new version > > coprocessor. > > But coprocessor has a mission-critical task. So the table always loads > the > > coprocessor. > > > > Here is a problem. > > If I should update coprocessor jar file, I think I cannot update > > coprocessor jar file before coprocessor unload. > > > > If I can use a reload command, It is great for me. > > Does there have a reload command? > > > > (HBase version: 1.2.9) > > > > Best regards, > > Minwoo Kang >