Archive for the ‘Uncategorized’ Category

ESEMPIO COMANDI PER CAMBIO SCHEMA SOLR

15 novembre 2017

server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost localhost:9983 -confdir /home/florenna/conf -confname helloworld

 

server/scripts/cloud-scripts/zkcli.sh -cmd linkconfig -zkhost localhost:9983 -collection helloworld -confname helloworld

e poi da browser fare:
(NEL CASO DI MODIFICA DI SCHEMA (REOLAD) IL COMANDO E’:
http://localhost:8983/solr/admin/collections?action=RELOAD&name=helloworld

NEL CASO CREAZIONE DI SCHEMA, IL COMANDO E’ (AL POSTO DI nomecoll mettere il nome della propria collezione):
curl ‘http://127.0.0.1:8983/solr/admin/collections?

action=CREATE&name=nomecoll&numShards=3

&replicationFactor=2&maxShardsPerNode=2’

Annunci

SQL HIVE ESEMPI

15 novembre 2017

LOAD DATA LOCAL INPATH ‘/home/florenna/HIVE/apache-hive-2.3.1-bin/examples/files/kv2.txt’ OVERWRITE INTO TABLE pokes;

 

LOAD DATA LOCAL INPATH ‘/home/florenna/HIVE/apache-hive-2.3.1-bin/examples/files/kv2.txt’ OVERWRITE INTO TABLE invites PARTITION (ds=’2008-08-15′);

 

LOAD DATA LOCAL INPATH ‘/home/florenna/HIVE/apache-hive-2.3.1-bin/examples/files/kv2.txt’ OVERWRITE INTO TABLE invites PARTITION (ds=’2008-08-08′);

 

Erano state create 2 partizioni della tabella
con il comando:

CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);

 

creates a table called invites with two columns and a partition column called ds. The partition column is a virtual column. It is not part of the data itself but is derived from the partition that a particular dataset is loaded into.

Dalla suddetta tabella vedere come are i cluster,
per esempio tutti i cluster , formati da riche
che hanno
il valore del campo foo uguale.

—-

SELECT foo,bar FROM invites cluster BY foo ;

—-

Guardare a questo esempio per avere quando 2 istances sono uguali per il cluster

https://stackoverflow.com/questions/27726186/sql-find-all-instances-where-two-columns-are-the-same

SELECT pv_users.gender, count (DISTINCT pv_users.userid)
FROM pv_users
GROUP BY pv_users.gender;

 

SELECT foo, count ( invites.foo)
FROM invites
GROUP BY foo;

Sopra clusterizza secondo la prima colonna foo.

 

—–

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

—–

Map-side Aggregation for Group By

hive.map.aggr controls how we do aggregations. The default is false. If it is set to true, Hive will do the first-level aggregation directly in the map task.
This usually provides better efficiency, but may require more memory to run successfully.
set hive.map.aggr=true;
SELECT COUNT(*) FROM table2;
—–

Importante articolo sulle performance di hive
https://blog.matthewrathbone.com/2015/12/08/hive-vs-mysql.html

——
IMPORTANTE CON QUERY PER RAGGRUPPAMENTO

CREATE TABLE tabellafab (id INT, valore_ip STRING, commento STRING) row format delimited fields terminated by ‘,’;

LOAD DATA LOCAL INPATH ‘/home/florenna/PROVATESTO/prova1.csv’ OVERWRITE INTO TABLE tabellafab;

 

Esempio1:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

Esempio mio:

SELECT tabellafab.id, tabellafab.valore_ip
From tabellafab
INNER JOIN
(
select tabellafab.id, tabellafab.valore_ip
From tabellafab
) as p
on
tabellafab.valore_ip=p.valore_ip;

 

Esempio mio migliorato:

SELECT tabellafab.id as ID1, p.id as ID2, tabellafab.valore_ip
From tabellafab
INNER JOIN
(
select tabellafab.id, tabellafab.valore_ip
From tabellafab
) as p
on
tabellafab.valore_ip=p.valore_ip
where
( tabellafab.id <> p.id );

 

PROVADRAFT PER CONTROLLO DUPLICATI:
SELECT tabellafab.id as ID1, p.id as ID2, tabellafab.valore_ip
From tabellafab
INNER JOIN
(
select tabellafab.id, tabellafab.valore_ip
From tabellafab
) as p
on
tabellafab.valore_ip=p.valore_ip
where
( tabellafab.id <> p.id )and
( (tabellafab.id = 519) and ( p.id=1000) ) or
( (tabellafab.id = 1000) and ( p.id=519) );

 

ESEMPIO MIO ANCORA MIGLIORATO PER ELIMINARE I DUPLICATI:

SELECT tabellafab.id as ID1, p.id as ID2, tabellafab.valore_ip
From tabellafab
INNER JOIN
(
select tabellafab.id, tabellafab.valore_ip
From tabellafab
) as p
on
tabellafab.valore_ip=p.valore_ip
where
( tabellafab.id <> p.id )
and ( tabellafab.id < p.id );

 

 

Come avviare SOLR CLOUD

7 novembre 2017

PER AVVIARE CLOUD SOLR (ESEMPIO)
Immaginiamo che abbiamo 3 nodi solr sulla nostra macchina localhost :
un nodo core che è sulla porta 8983
altri due nodi slave che sono sulla porta 8984 e 8985
l’address di zookeper è (in questo esempio)
in questo esempio l’home directory di solr è /home/tizio/solr-6.6.0/
FAR PARTIRE SOLR TRAMITE QUESTI 3 COMANDI:
Starting up Solr on port 8983 using command:
“/home/tizio/solr-6.6.0/bin/solr” start -cloud -p 8983 -s “/home/tizio/solr-6.6.0/example/cloud/node1/solr”

Starting up Solr on port 8984 using command:
“/home/tizio/solr-6.6.0/bin/solr” start -cloud -p 8984 -s “/home/tizio/solr-6.6.0/example/cloud/node2/solr” -z localhost:9983

Starting up Solr on port 8985 using command:
“/home/tizio/solr-6.6.0/bin/solr” start -cloud -p 8985 -s “/home/tizio/solr-6.6.0/example/cloud/node3/solr” -z localhost:9983

Avvertenza: se si vogliono anche le funzionalità di clustering, ai suddetti comandi aggiungere:
-Dsolr.clustering.enabled=true

Appunti Solr

7 novembre 2017

Per crearsi una collezione:

– Copiarsi in un folder, che era vuoto, locale
( ad esempio /home/tizio/conf )
tutto il contenuto del folder
/home/tizio/solr-6.6.0/server/solr/configsets/basic_configs/conf

– Nel folder, che mi ero riempito ( ad esempio era /home/tizio/conf )
sovrascrivere il file managed-schema.xml (oppure schema.xml se la collezione già esisteva,
prima di essere cancellata, e lo schema aveva questo nome)
con quello della mia collezione
(ovviamente se la collezione era stata cancellata, bisognava
aver fatto un backup del contenuto del file schema.xml e solrconfig.xml
e mettere solo questi 2 files poi nella directory /home/tizio/conf )
che si trova sulla console di amministrazione come schema.xml )

 

– Per creare la collezione,
fare questi comandi (esempio):

prima bisogna registrarla a zookeper
mediante questi due comandi:

/home/tizio/solr-6.6.0/server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost localhost:9983 -confdir /home/tizio/conf -confname esempiocollezione

/home/tizio/solr-6.6.0/server/scripts/cloud-scripts/zkcli.sh -cmd linkconfig -zkhost localhost:9983 -collection esempiocollezione -confname esempiocollezione

 

Nei due suddetti comandi, per sapere dove è l’address
di zookeper, fare come segue:

andare alla pagina di amministrazione di solr (in uno dei nodi slave) nella sezione
“Dashboard” , per esempio nel caso mio notebook
vado all’indirizzo:
http://localhost:8985/solr/#/ (infatti io ho il master sulla porta 8983 , mentre uno dei due slave è sulla porta 8985 )

su questa pagina vedo che c’è un parametro che si chiama (è in grigetto), ad esempio:
-DzkHost=localhost:9983

il suddetto è proprio l’address di zookeper.

Poi per creare la struttura della collezione dare il comando:

curl ‘http://127.0.0.1:8983/solr/admin/collections?

action=CREATE&name=esempiocollezione&numShards=3&replicationFactor=2&

collection.configName=esempiocollezione&maxShardsPerNode=2′

 

———————————-

PRIMA DI CANCELLARE UNA COLLEZIONE COME
SI FA IL BACKUP DELLA COLLEZIONE

con questo comando:
vedi anche:
https://lucene.apache.org/solr/guide/6_6/making-and-restoring-backups.html

ATTENZIONE, PER SICUREZZA PRIMA DI FARE UN BACKUP FARE LA COMMIT
SU SOLR:
http://localhost:8983/solr/esempiocollezione/update?commit=true

ATTENZIONE I SEGUENTI COMANDI DI BACKUP E RESTORE NON SONO SICURO FUNZIONINO SEMPRE BENE, PER MAGGIORI DETTAGLI VEDERE LA DOCUMENTAZIONE UFFICIALE  in

https://lucene.apache.org/solr/guide/6_6/making-and-restoring-backups.html

il comando è:
http://localhost:8983/solr/esempiocollezione/replication?command=backup&location=/home/tizio/solr-backup-esempiocollezione

(attenzione, nel suddetto comando solr-backup-esempiocollezione all’inizio
deve essere una directory già esistente e vuota).

Poi dopo per fare il restore del backup, il comando è:

http://localhost:8983/solr/esempiocollezione/replication?command=restore&location=/home/tizio/solr-backup-esempiocollezione

 

IMPORTANTE!!!! PER VERIFICARE CHE POI C’E’
TUTTO NELLA COLLEZIONE FARLO CON CURL
TRAMITE IL COMANDO (ESEMPIO):
curl ‘http://localhost:8983/solr/esempiocollezione/select?indent=on&q=*:*&wt=json&#8217;

———————————-
PER INVECE CANCELLARE UNA COLLEZIONE A CALDO
FARSI PRIMA UN BACKUP di managed-schema.xml
e solrconfig.xml
mentre gli altri rimanenti files si possono prendere
da
/home/tizio/solr-6.6.0/server/solr/configsets/basic_configs/conf )
tutti i suddetti files metterseli su un proprio folder personale, ad esempio
/home/tizio/conf

– A questo punto si può
cancellare a caldo la collection tramite
il comando
http://localhost:8983/solr/admin/collections?action=DELETE&name=nomecollezione

 

Per esempio do il comando (se la collezione si chiama esempiocollezione ):

http://localhost:8983/solr/admin/collections?action=DELETE&name=esempiocollezione

 

————-
NOTE:

da
https://lucene.apache.org/solr/guide/6_6/uploading-data-with-index-handlers.html

UPDATE CON XML PER AGGIUNGERE NUOVI DOC A UNA COLLECTION,
esempio:

 

Using curl to Perform Updates

You can use the curl utility to perform any of the above commands, using its –data-binary option to append the XML message to the curl command, and generating a HTTP POST request. For example:

curl http://localhost:8983/solr/my_collection/update -H “Content-Type: text/xml” –data-binary ‘
<add>
<doc>
<field name=”id”>111</field>
<field name=”pippo”>contenuto111</field>
<field name=”pippo_s”>contenutopippo_s2111</field>
<field name=”f1_i”>f1_i_111</field>

</doc>
</add>’

 

curl http://localhost:8983/solr/my_collection/update -H “Content-Type: text/xml” –data-binary ‘
<add>
<doc>
<field name=”id”>111</field>
<field name=”pippo”>contenuto111</field>
<field name=”pippo_s”>contenutopippo_s2111</field>
<field name=”f1_i”>f1_i_111</field>

</doc>
</add>’

——————————–

PER l’ INSERIMENTO DOCUMENTI TRAMITE JSON
(PIU’ PRATICO IN QUANTO SI PUO’ PRENDERE
IL RISULTATO DI UNA QUERY DI UN’ ALTRA COLLEZIONE
CHE HA LA STESSA STRUTTURA):

Ad esempio se la query da (dopo i “docs”) questo:
“docs”:[
{
“id”:”111″,
“pippo”:[“contenuto111”],
“pippo_s”:”contenutopippo_s2111″,
“_version_”:1583400423243382784},
{
“id”:”222″,
“pippo”:[“Valore_pippo222”],
“pluto”:[222],
“pippo_s”:”nuovo valore pippo222″,
“f1_i”:222,
“_version_”:1583400535234445312}]
}}

Per inserire per esempio 1 nuovo documento, allora
predere l’output suddetto dalla prima parentesi graffa aperta
(solo ad esempio il primo documento, escludendo il campo “_version_”,
e chiudendo prima la parentesi graffa) ottenendo per cui:

{
“id”:”111″,
“pippo”:[“contenuto111”],
“pippo_s”:”contenutopippo_s2111″
}

 

 

 

Esempio implementazione EJB

26 settembre 2016

Semplice esempio su come implementare un EJB tramite jdk, eclipse e JBOSS 6.1 . Ecco il link, buon divertimento: http://theopentutorials.com/post/uncategorized/how-to-create-a-simple-ejb3-project-in-eclipse-jboss-6-1/