hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Yu <yuzhih...@gmail.com>
Subject Re: What if I want to write another table in MasterObserver.preModifyColumnFamily ?
Date Thu, 09 Mar 2017 18:17:30 GMT
Zookeeper is supposed to store transient data.
Plus you need to secure the audit log in zookeeper so that unauthorized
user cannot temper the audit.

On Thu, Mar 9, 2017 at 9:24 AM, Xi Yang <alex.xi.yang@gmail.com> wrote:

> Thank you Anoop. After thinking, I give up the idea about write records to
> RS, I will using other ways like zk, or just a text file. I appreciate your
> help!
>
> 2017-03-07 23:36 GMT-08:00 Anoop John <anoop.hbase@gmail.com>:
>
> > It will be cross server call.. The pre/postModifyColumn is in master
> > side. (MasterObserver)  You want to write the info to a table means
> > this will be in some RS.  So an RPC request will be needed. But still
> > it is not a case like one RS to another RS cross server call where
> > there is a remote chance of all handlers getting stuck and possible
> > deadlock.  Need to carefully done though!
> >
> > -Anoop-
> >
> > On Wed, Mar 8, 2017 at 8:26 AM, Xi Yang <alex.xi.yang@gmail.com> wrote:
> > > Got it. I appreciate your help!
> > >
> > > 2017-03-07 17:05 GMT-08:00 Ted Yu <yuzhihong@gmail.com>:
> > >
> > >> It seems the following hook is better for your use case:
> > >>
> > >>   default void postModifyColumn(final
> > >> ObserverContext<MasterCoprocessorEnvironment> ctx,
> > >>       TableName tableName, HColumnDescriptor columnFamily) throws
> > >> IOException {}
> > >>
> > >> since there is no guarantee that column family is modified at
> > >> time preModifyColumnFamily() is called.
> > >>
> > >> Cheers
> > >>
> > >> On Tue, Mar 7, 2017 at 4:43 PM, Xi Yang <alex.xi.yang@gmail.com>
> wrote:
> > >>
> > >> > Requirement:
> > >> >
> > >> > I want to record every change of modify columnFamily by using
> > >> > preModifyColumnFamily().
> > >> > Now I have a table "my_ddl_log" which used to record the change of
> > >> > columnFamily. For example:
> > >> >
> > >> > If jack change the TTL of columnFamily "primary" in table
> "employee".
> > >> Then
> > >> > we should add a put to "my_ddl_log" like this record:
> > >> > log:name= 'jack'
> > >> > log:updateTime= '2017-03-07 12:12 GMT-08:00'
> > >> > log:change= ''Change TTL of Table: employee ColumnFamily: primary'
> > >> >
> > >> > I try to use preModifyColumnFamily to do this stuff.
> > >> >
> > >> > Thanks,
> > >> > Alex
> > >> >
> > >> >
> > >> > 2017-03-07 12:12 GMT-08:00 Ted Yu <yuzhihong@gmail.com>:
> > >> >
> > >> > > Describing your use case would allow people to give better answer.
> > >> > >
> > >> > > What kind of data do you write to other table in
> > >> preModifyColumnFamily()
> > >> > ?
> > >> > >
> > >> > > Cross server call within observer is not good idea.
> > >> > >
> > >> > > Take a look at ConnectionUtils.createShortCircuitConnection().
> > >> > >
> > >> > > Cheers
> > >> > >
> > >> > > On Tue, Mar 7, 2017 at 11:42 AM, Xi Yang <alex.xi.yang@gmail.com>
> > >> wrote:
> > >> > >
> > >> > > >     All the articles I've ever seen are talking about add
> > increment
> > >> or
> > >> > > > change put/get status or pinrt out logs. what if I want
to write
> > some
> > >> > > data
> > >> > > > to another table in Observer? For
> > >> > > > example, MasterObserver.preModifyColumnFamily()? Seems Observer
> > is
> > >> > > runing
> > >> > > > at server side, so use connection is unneccessary and might
> raise
> > >> some
> > >> > > > problem.
> > >> > > >    I know this might be a stupid question, so if you can
just
> give
> > >> some
> > >> > > > links let me to learn without explain in email, I will be
> > grateful to
> > >> > you
> > >> > > > for your help
> > >> > > >
> > >> > > > Thanks,
> > >> > > > Alex
> > >> > > >
> > >> > >
> > >> >
> > >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message