Skip to content

Margus Roo –

If you're inventing and pioneering, you have to be willing to be misunderstood for long periods of time

  • Cloudbreak Autoscale fix
  • Endast

Category: Linux

Astmehulk

Posted on February 21, 2015 - February 21, 2015 by margusja

Mingi hulga A astmehulgaks 2^A ehk P (A) nimetatakse selle hulga kõikide osahulkade hulka.

Näide: Olgu antud A = { a b } Sellise hulga A astmehulk on: 2^ A = P (A) = { { } { a } { b } { a b } }

Hulga { 0 , 1 , 2 } astmehulk on: 2^ {0 , 1 , 2} = P ( { 0 , 1 , 2 } ) = { { } {0} {1} {2} {0 1} {0 2} {1 2} { 0 1 2 } }

Posted in Linux

Regulaarsuse aksioom

Posted on February 21, 2015 - September 24, 2015 by margusja

Mul oli pikka aega regulaarsuse aksioomist keeriline aru saada. Kirjeldus, kuidas seda mulle esitleti oli:

Suvalises mittetühjas hulgas x peab leiduma selline element z nii, et x ja z ei oma ühiseid elemente.

Ehk on see minu isiklik probleem, et järgnev seletus tundub mulle asjakohasem:

Igas mittetühjas hulgas peab leiduma element, mille ühisosa antud hulgaga on tühi.

No ja kokkuvõtteks, milleks regulaarsuse aksioomi üldse vaja. Aksioomi eesmärgiks on välistada ebameeldivad olukorrad, nagu näiteks a kuulub a või a kuulub b ja b kuulub a.

Posted in Linux

Beauty of Scala

Posted on February 11, 2015 - February 11, 2015 by margusja

scala> val kala = (x: Int, y: Int) => x + y
kala: (Int, Int) => Int = <function2>

scala> kala(1,3)
res71: Int = 4

scala> val kala2 = (x: Int, y: Int) => x + y

kala2: (Int, Int) => Int = <function2>

scala> val kala3 = (x: Int, y: Int) => kala(x,y)+kala2(y,x)
kala3: (Int, Int) => Int = <function2>

scala> kala3(1,2)
res75: Int = 6

 

Posted in Linux

Python + numpy matrix inverse session

Posted on November 28, 2014 by margusja

Screenshot 2014-11-28 21.36.34

margusja@IRack:~/Documents/itcollege/lineaaralgebra$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> from numpy import *
>>> A = matrix(‘1.0 2.0; 3.0 4.0’)
>>> A
matrix([[ 1., 2.],
[ 3., 4.]])
>>> A.I
matrix([[-2. , 1. ],
[ 1.5, -0.5]])
>>>

Posted in Linux

Kafka-Storm

Posted on April 29, 2014 - April 29, 2014 by margusja

 

Screen Shot 2014-04-29 at 10.00.16
Screen Shot 2014-04-29 at 10.02.05
Screen Shot 2014-04-29 at 09.57.42

 

 

Posted in Apache, Linux

Apache-Kafka

Posted on April 29, 2014 - April 29, 2014 by margusja

Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.

producer_consumer

 

[root@sandbox kafka_2.8.0-0.8.1]# bin/kafka-server-start.sh config/server.properties

[root@sandbox kafka_2.8.0-0.8.1]# bin/kafka-topics.sh –create –replication-factor 1 –zookeeper localhost:2181 –partition 1 –topic demoTopic
Created topic “demoTopic”.
[root@sandbox kafka_2.8.0-0.8.1]#

[root@sandbox kafka_2.8.0-0.8.1]# bin/kafka-topics.sh –list –zookeeper localhost:2181
demoTopic
[root@sandbox kafka_2.8.0-0.8.1]#

[root@sandbox kafka_2.8.0-0.8.1]# bin/kafka-console-producer.sh –broker-list localhost:9092 –topic demoTopic
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Kirjutame siia midagi…

Kuulame:

[root@sandbox kafka_2.8.0-0.8.1]# ./bin/kafka-console-consumer.sh –zookeeper localhost:2181 –topic demoTopic –from-beginning

Posted in Linux

Find class from jars

Posted on April 25, 2014 by margusja

[margusja@sandbox storm_to_file]$ find libs/hbase-0.96.2-hadoop2/lib/ -name ‘*.jar’ -exec grep -Hls HBaseConfiguration {} \;

Posted in Linux

Hadoop and how to read via webhdfs

Posted on April 25, 2014 by margusja

Create a local demo file – demo.txt and put some content into it

Upload to hdfs:

margusja@IRack:~/hadoop-2.4.0$ bin/hdfs dfs -put demo.txt hdfs://127.0.0.1/user/margusja/

Open and read via webhdfs:

margusja@IRack:~/hadoop-2.4.0$ curl -i -L “http://localhost:50070/webhdfs/v1/user/margusja/demo.txt?op=OPEN”
HTTP/1.1 307 TEMPORARY_REDIRECT
Cache-Control: no-cache
Expires: Fri, 25 Apr 2014 09:34:46 GMT
Date: Fri, 25 Apr 2014 09:34:46 GMT
Pragma: no-cache
Expires: Fri, 25 Apr 2014 09:34:46 GMT
Date: Fri, 25 Apr 2014 09:34:46 GMT
Pragma: no-cache
Location: http://sandbox.hortonworks.com:50075/webhdfs/v1/user/margusja/demo.txt?op=OPEN&namenoderpcaddress=sandbox.hortonworks.com:8020&offset=0
Content-Type: application/octet-stream
Content-Length: 0
Server: Jetty(6.1.26)

HTTP/1.1 200 OK
Cache-Control: no-cache
Expires: Fri, 25 Apr 2014 09:34:46 GMT
Date: Fri, 25 Apr 2014 09:34:46 GMT
Pragma: no-cache
Expires: Fri, 25 Apr 2014 09:34:46 GMT
Date: Fri, 25 Apr 2014 09:34:46 GMT
Pragma: no-cache
Content-Length: 93
Content-Type: application/octet-stream
Server: Jetty(6.1.26)

Hello, this is a demo file by Margusja@deciderlab.com
This is demo how to use hadoop webhdfs
margusja@IRack:~/hadoop-2.4.0$

Posted in Linux

Apache-storm

Posted on April 23, 2014 - April 25, 2014 by margusja

Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate

 

Apache-zookeeper http://zookeeper.apache.org/doc/trunk/index.html

zookeeper on mõeldud hoidma teenuste seadistusi ja staatusi. Näiteks antud juhul on zookeeper serverites talletatud informatsioon, millised storm’i workerid on olemas.

Zookeeper teenus võib olla jaotunud eraldi serverite vahel, mis tagab kõrge veakindluse

zkservice

 

Zookeeper hoiab seadistusi hierarhias

zookeeper2

Näiteks minu testkeskkonnas on üks storm supervisor e worker ja hetkel on üks topoloogia, see kajastub zookeeperis:

[root@sandbox ~]# /usr/lib/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181

…

[zk: 127.0.0.1:2181(CONNECTED) 1] ls /storm
[workerbeats, errors, supervisors, storms, assignments]
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /storm/storms
[engineMessages5-2-1398208863]
[zk: 127.0.0.1:2181(CONNECTED) 3]

Zookeeper võimaldab stormi workereid dünaamiliselt juurde lisada. Storm master e nimbus oskab zookeeper serverist saadud info kohaselt workereid kasutada. Näiteks, kui mõni worker mingil põhjusel ei ole enam kättesaadav, siis zookeeper saab sellest teada, kuna heardbeate enam ei tule ja nimbus organiseerib voogude teekonnad ringi tekitades kadunud workeri asemel uue, eeldusel, et on kuhugile tekitada ehk on veel vabu supervisoreid.

 

Storm

Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your     data will be processed, and is easy to set up and operate.

storm-cluster2

 

Nimbus

On master topoloogias, kes kordineerib, kasutades zookeeper-klastris olevat informatsiooni, storm-supervisorite töid ehk tagab voogude läbimise topoloogiast.

 Storm-supervisor ehk worker

Spout(id) ja/või Bolt(id), kes kuuluvad mingisse topoloogiasse. Võivad asuda ühes füüsilises serveris või jaotatud erinevate füüsiliste serverite vahel. Zookeeperi abil annavad nimbusele teada oma olemasolust.

Storm-supervisor versus supervisor (http://supervisord.org/)

Etteruttavalt selgitan, et antud juhul on kasutusel kaks supervisor teenust, mis on erinevad ja mida on vaja lahti seletada.

storm-supervisor – strom worker

supervisor – Process Control System.

On kasutusel, tagamaks, et teenused – nimbus, zookeeper, storm_supervisor (worker) oleksid kiirelt taastatud, kui mõni neist peaks mingil põhjusel seiskuma.

Näide:

Hetkel on minu testkeskkonnas supervisor (mitte storm-supervisor) kontrolli all vajalikud storm teenused

[root@sandbox ~]# supervisorctl
storm-supervisor RUNNING pid 3483, uptime 2:14:55
storm_nimbus RUNNING pid 3765, uptime 1:44:23
storm_ui RUNNING pid 3672, uptime 2:13:09
zookeeper RUNNING pid 3484, uptime 2:14:55
supervisor>

Peatades näiteks storm_nimbus protsessi 3765

[root@sandbox ~]# kill -9 3765

supervisord logis:

2014-04-22 17:53:20,884 INFO exited: storm_nimbus (terminated by SIGKILL; not expected)
2014-04-22 17:53:20,884 INFO received SIGCLD indicating a child quit
2014-04-22 17:53:21,894 INFO spawned: ‘storm_nimbus’ with pid 4604
2014-04-22 17:53:22,898 INFO success: storm_nimbus entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

Kontrollime supervusord statust

supervisor> status
storm-supervisor RUNNING pid 3483, uptime 2:30:50
storm_nimbus RUNNING pid 4604, uptime 0:00:38
storm_ui RUNNING pid 3672, uptime 2:29:04
zookeeper RUNNING pid 3484, uptime 2:30:50

On näha, et just on uus protsess käivitatud.

Toodangusüsteemides on soovitatav jaotada storm komponendid nii, et nimbus, ui ja üks zookeeper server  on ühes masinas ja teistes asuvad zookeeper server ja storm-supervisor. Komplekte zookeeper-server ja storm-supervusor võib dünaamiliselt hiljem lisada.

Vahemärkusena, et tegelikult ei pea storm-supervisor ja zookeeper ühes füüsilises serveris asuma. Piisab, kui storm-supervisor teab, kus asub zookeeper server, et sinna oma staatus teatada.

Kui mingil põhjusel peaks üks  storm-supervusor kättesaamatuks muutuma, siis nimbus saab sellest teada ja organiseerib topoloogia niimoodi, et voog oleks täielik.

Kui mingil põhjusel peaks muutuma mittekättesaadavaks nimbus, siis topoloogia on terviklik ja vood täätavad edasi.

Kui mingil põhjusel peaks muutuma korraga mittekättesaadavaks nimbus ja mõni hetkel topoloogias aktiivselt osalev storm-supervisor, siis tekib esimene reaalne probleem. Samas ka siin ei kao voos liikuvad andmed vaid õige seadistuse puhul iga topoloogias olev Spout registreerib voos olevate sõnumite mittekohalejõudmise ja kui nüüd taastatakse nimbus ja/või storm-supervisor, siis Spout saadab sõnumi uuesti.

Kujutame ette, et meil on allpool toodud topoloogia

topo1

Kõik Bolt’d ja Spout’d asuvad eraldi masinates ehk on srorm-supervusor + zookeeper komplektid, siis juhul, kui peaks tekkima selline olukord

topo2

Siis nimbus saab sellest teada, sest zookeeperisse enam heartbeate ei tule ja nimbus üritab leida zookeeperi kaudu mõnda vaba serverit, kus on storm-supervisor.

Kui nüüd on olemas zookeeperi kaudu nimbusele teada mõni vaba storm-supervisor, siis topoloogia taastatakse. Kui mõnii sõnum ei jõudnud vahepeal kohale, kuna topoloogia ei olnud täielik, siis Spout on sellest teadlik ja saadab sõnumi uuesti.

topo3

jätkub…

Posted in Apache, Linux

Pentaho and Saiku

Posted on April 2, 2014 - April 3, 2014 by margusja

Some screenshot may help me in future

Add a new datasource

pentaho_mysql_jdbc

 

 

configure new mysql connection

pentaho_mysql_connection2

 

Add a new datasource wizard

pentaho_datasource_wizard

 

pentaho_datasource_wizard2

 

Select your external DB

pentaho_source_wizard3

 

 

Select fact table as Mondrian star structure requires (Basically you will build Mondrian schema) 

pentaho_ds_wizard_fact_table

 

 

Map facts table to dimension tables

pentaho_ds_wizard_map2 pentaho_ds_wizard_map1

Save it

pentaho_datasource_wizard_save

If you want edit mode then choose “Customize model now”

pentaho_ds_wiz_cust_model

 

Go and create a new Saiku Analytics

pentaho_saiku_cube

 

Set columns and rows

pentaho_saiku2

 

Now you can enjoy your nice graphs

pentaho_saiku_graph4 pentaho_saiku_graph3 pentaho_saiku_graph2 pentaho_saiku_graph1

 

 

 

Posted in Linux

Posts navigation

Older posts
Newer posts

The Master

Categories

  • Apache
  • Apple
  • Assembler
  • Audi
  • BigData
  • BMW
  • C
  • Elektroonika
  • Fun
  • Hadoop
  • help
  • Infotehnoloogia koolis
  • IOT
  • IT
  • IT eetilised
  • Java
  • Langevarjundus
  • Lapsed
  • lastekodu
  • Linux
  • M-401
  • Mac
  • Machine Learning
  • Matemaatika
  • Math
  • MSP430
  • Muusika
  • neo4j
  • openCL
  • Õpetaja identiteet ja tegevusvõimekus
  • oracle
  • PHP
  • PostgreSql
  • ProM
  • R
  • Turvalisus
  • Varia
  • Windows
Proudly powered by WordPress | Theme: micro, developed by DevriX.