Cant thank you enough for clarifying it at length. Yeah its pretty
confusing even for experienced Solr users. I used the upconfig and
linkconfig commands to update 4 collections into zookeeper...As you
described, I lucked out as I used the same name for configset and the
collection and hence did not have to use the collections API :-)

Thanks,

Ravi Kiran Bhaskar

On Sat, Sep 19, 2015 at 11:22 PM, Erick Erickson <erickerick...@gmail.com>
wrote:

> Let's back up a second. Configsets are what _used_ to be in the conf
> directory for each core on a local drive, it's just that they're now
> kept up on Zookeeper. Otherwise, you'd have to put them on each
> instance in SolrCloud, and bringing up a new replica on a new machine
> would look a lot like adding a core with the old core admin API.
>
> So instead, configurations are kept on zookeeper. A config set
> consists of, essentially, a named old-style "conf" directory. There's
> no a-priori limit to the number of config sets you can have. Look in
> the admin UI, Cloud>>tree>>configs and you'll see each name you've
> pushed to ZK. If you explore that tree, you'll see a lot of old
> familiar faces, schema.xml, solrconfig.xml, etc.
>
> So now we come to associating configs with collections. You've
> probably done one of the examples where some things happen under the
> covers, including explicitly pushing the configset to Zookeeper.
> Currently, there's no option in the bin/solr script to push a config,
> although I know there's a JIRA to do that.
>
> So, to put a new config set up you currently need to use the zkCli.sh
> script see:
> https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities,
> the "upconfig" command. That pushes the configset up to ZK and gives
> it a name.
>
> Now, you create a collection and it needs a configset stored in ZK.
> It's a little tricky in that if you do _not_ explicitly specify a
> configest (using the collection.configName parameter to the
> collections API CREATE command), then by default it'll look for a
> configset with the same name as the collection. If it doesn't find
> one, _and_ there is one and only one configset, then it'll use that
> one (personally I find that confusing, but that's the way it works).
> See: https://cwiki.apache.org/confluence/display/solr/Collections+API
>
> If you have two or more configsets in ZK, then either the configset
> name has to be identical to the collection name (if you don't specify
> collection.configName), _or_ you specify collection.configName at
> create time.
>
> NOTE: there are _no_ config files on the local disk! When a replica of
> a collection loads, it "knows" what collection it's part of and pulls
> the corresponding configset from ZK.
>
> So typically the process is this.
> > you create the config set by editing all the usual suspects, schema.xml,
> solrconfig.xml, DIH config etc.
> > you put those configuration files into some version control system (you
> are using one, right?)
> > you push the configs to Zookeeper
> > you create the collection
> > you figure out you need to change the configs so you
>   > check the code out of your version control
>   > edit them
>   > put the current version back into version control
>   > push the configs up to zookeeper, overwriting the ones already
> there with that name
>   > reload the collection or bounce all the servers. As each replica
> in the collection comes up,
>      it downloads the latest configs from Zookeeper to memory (not to
> disk) and uses them.
>
> Seems like a long drawn-out process, but pretty soon it's automatic.
> And really, the only extra step is the push to Zookeeper, the rest is
> just like old-style cores with the exception that you don't have to
> manually push all the configs to all the machines hosting cores.
>
> Notice that I have mostly avoided talking about "cores" here. Although
> it's true that a replica in a collection is just another core, it's
> "special" in that it has certain very specific properties set. I
> _strongly_ advise you stop thinking about old-style Solr cores and
> instead thing about collections and replicas. And above all, do _not_
> use the admin core API to try to create members of a collection
> (cores), use the collections API to ADDREPLICA/DELETEREPLICA instead.
> Loading/unloading cores is less "fraught", but I try to avoid that too
> and use
>
> Best,
> Erick
>
> On Sat, Sep 19, 2015 at 9:08 PM, Ravi Solr <ravis...@gmail.com> wrote:
> > Thanks Erick, I will report back once the reindex is finished. Oh, your
> > answer reminded me of another question - Regarding configsets the
> > documentation says
> >
> > "On a multicore Solr instance, you may find that you want to share
> > configuration between a number of different cores."
> >
> > Can the same be used to push disparate mutually exclusive configs ? I ask
> > this as I have 4 mutually exclusive apps each with a 4 single core index
> on
> > a single machine which I am trying to convert to SolrCloud with single
> > shard approach. Just being lazy and trying to find a way to update and
> link
> > configs to zookeeper ;-)
> >
> > Thanks
> >
> > Rvai Kiran Bhaskar
> >
> > On Sat, Sep 19, 2015 at 6:54 PM, Erick Erickson <erickerick...@gmail.com
> >
> > wrote:
> >
> >> Just pushing up the entire configset would be easiest, but the
> >> Zookeeper command line tools allow you to push up a single
> >> file if you want.
> >>
> >> Yeah, it puzzles me too that the import worked yesterday, not really
> >> sure what happened, the file shouldn't just disappear....
> >>
> >> Erick
> >>
> >> On Sat, Sep 19, 2015 at 2:46 PM, Ravi Solr <ravis...@gmail.com> wrote:
> >> > Thank you for the prompt response Erick. I did a full-import
> yesterday,
> >> you
> >> > are correct that I did not push dataimport.properties to ZK, should it
> >> have
> >> > not worked even for a full import ?. You may be right about 'clean'
> >> option,
> >> > I will reindex again today. BTW how do we push a single file to a
> >> specific
> >> > config name in zookeeper ?
> >> >
> >> >
> >> > Thanks,
> >> >
> >> > Ravi Kiran Bhaskar
> >> >
> >> >
> >> > On Sat, Sep 19, 2015 at 1:48 PM, Erick Erickson <
> erickerick...@gmail.com
> >> >
> >> > wrote:
> >> >
> >> >> Could not read DIH properties from
> >> >> /configs/sitesearchcore/dataimport.properties
> >> >>
> >> >> This looks like somehow you didn't push this file up to Zookeeper.
> You
> >> >> can check what files are there in the admin UI. How you indexed
> >> >> yesterday is a mystery though, unless somehow this file was removed
> >> >> from ZK.
> >> >>
> >> >> As for why you lost all the docs, my suspicion is that you have the
> >> >> clean param set up for delta import....
> >> >>
> >> >> FWIW,
> >> >> Erick
> >> >>
> >> >> On Sat, Sep 19, 2015 at 10:36 AM, Ravi Solr <ravis...@gmail.com>
> wrote:
> >> >> > I am facing a weird problem. As part of upgrade from 4.7.2
> >> (Master-Slave)
> >> >> > to 5.3.0 (Solrcloud) I re-indexed 1.5 million records via DIH using
> >> >> > SolrEntityProcessor yesterday, all of them indexed properly. Today
> >> >> morning
> >> >> > I just ran the DIH again with delta import and I lost all
> docs...what
> >> am
> >> >> I
> >> >> > missing ? Did anybody face similar issue ?
> >> >> >
> >> >> > Here are the errors in the logs
> >> >> >
> >> >> > 9/19/2015, 2:41:17 AM ERROR null SolrCore Previous SolrRequestInfo
> was
> >> >> not
> >> >> > closed!
> >> >> > req=waitSearcher=true&distrib.from=
> >> >>
> >>
> http://10.128.159.32:8983/solr/sitesearchcore/&update.distrib=FROMLEADER&openSearcher=true&commit=true&wt=javabin&expungeDeletes=false&commit_end_point=true&version=2&softCommit=false
> >> >> > 9/19/2015,
> >> >> > 2:41:17 AM ERROR null SolrCore prev == info : false 9/19/2015,
> >> 2:41:17 AM
> >> >> > WARN null ZKPropertiesWriter Could not read DIH properties from
> >> >> > /configs/sitesearchcore/dataimport.properties :class
> >> >> > org.apache.zookeeper.KeeperException$NoNodeException
> >> >> >
> >> >> > org.apache.zookeeper.KeeperException$NoNodeException:
> KeeperErrorCode
> >> >> > = NoNode for /configs/sitesearchcore/dataimport.properties
> >> >> >         at
> >> >> org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
> >> >> >         at
> >> >> org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
> >> >> >         at
> org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155)
> >> >> >         at
> >> >>
> org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:349)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.ZKPropertiesWriter.readIndexerProperties(ZKPropertiesWriter.java:91)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.ZKPropertiesWriter.persist(ZKPropertiesWriter.java:65)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.DocBuilder.finish(DocBuilder.java:307)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:253)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:480)
> >> >> >         at
> >> >>
> >>
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:461)
> >> >> >
> >> >> > 9/19/2015, 11:16:43 AM ERROR null SolrCore Previous SolrRequestInfo
> >> was
> >> >> not
> >> >> > closed!
> >> >> > req=waitSearcher=true&distrib.from=
> >> >>
> >>
> http://10.128.159.32:8983/solr/sitesearchcore/&update.distrib=FROMLEADER&openSearcher=true&commit=true&wt=javabin&expungeDeletes=false&commit_end_point=true&version=2&softCommit=false
> >> >> > 9/19/2015,
> >> >> > 11:16:43 AM ERROR null SolrCore prev == info : false
> >> >> >
> >> >> >
> >> >> >
> >> >> > Thanks
> >> >> >
> >> >> > Ravi Kiran Bhaskar
> >> >>
> >>
>

Reply via email to