From c8a0e3fd5ef4445ea6893b153c138683865a09e1 Mon Sep 17 00:00:00 2001 From: Dmitry Mescheryakov Date: Tue, 9 Jul 2013 01:15:59 +0400 Subject: [PATCH] The starting page for User Guide is done Partially implements blueprint docs-for-v02 Change-Id: Ic6a632337b426794fdab3b97d10ffb97dd3e7d7c --- doc/source/images/hadoop-cluster-example.jpg | Bin 0 -> 38120 bytes doc/source/index.rst | 3 +- doc/source/userdoc/overview.rst | 64 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 doc/source/images/hadoop-cluster-example.jpg create mode 100644 doc/source/userdoc/overview.rst diff --git a/doc/source/images/hadoop-cluster-example.jpg b/doc/source/images/hadoop-cluster-example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70f9f675da9a3f958ef0dc934a4b72194802bd5e GIT binary patch literal 38120 zcmb@t1yo!?)F#-t1-IZ39MTX75?qoX-MB*|!P7uPaEAn!;0{3oH15(k1Pe|Q92yDk z?v`xlpP8M1cF*pa+1ctkecpR@Z{2#gs_y;j-248{{rwFf0Vyae0MO9T07|GI;4c#J z8i0ZRul)PRKov}E%zp(J8ygE74;LRF4;K#){|WIEd;%f@JUl{DLLy=k5>gWUCuHPg zB;=@Tl7F3`{o};I#6>ZZ5a1D@p8hYEzuy3)xM=Uu4KUE20nka&Fi6q<_5m0GXaLl( zP{aK{3pNfK7CI&_1|F)}k_7NiFgofU2Ok%Q2nP)f9Rm}9g^fc>M$UpOK=DjYlal(W zpuV|tDi!Oego(+im-1RVdIrfU^}pC&=~}oaCVj;d5_R*atz+ll5*B%*pl#{m8r0DE zTG7Tcq@eo*C4>eg{eKt%0Dy*$g@K7`;vq#14-E|m_3Hm^gs1_KVv#cN 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 Q_Q6Os*Ob z2Erts-jx=cKrw7?{-I%TtEcq=!-G0E#f_V@iOz$1neTrJjDKy^i5hjQO5p+V`7zDg zvDs;MhkwB<@6nV8{sLDI+RtdDpeu7Ch4-!CYHnX(?x~+z%Nc@)zRs`ape@cH+jY^T z$(pIl<|mW9yf~MrGj;8-78%~+d_U3rq{@H_o3mE`q5|V0|382J6&f@+qMYrLgx3U)8 z;byZTsz9I;w)DTbmWN*Q|Imr`+fxdAQ8-v<=4D|M7VE;8#nNjaZ7r4YP|eTS&KC>7 z>6*_3mN(a+y>ZO2Z^TSibd+p)x-X8gd(NC+*5yz62A`>Pf4b*;?=oN&7TsFua(2Y^ zQo}@LH(3+^e4%Sg@4}|}1-DZl)zS$Tve3pEo`l?UfsHl8OE3-g&(H+F0Z6AL+YmluZ82Avws=l?~7?#`Odm80X z5f_o9BJrBaiH$*z-}VFHMOKsUd>W@jR0IwXcOK=Q3gWuzOV#4zBm0cv?+WlIZ(kzX zELMloNB#O4%X~B4#^$bwbXeZsoN>k3>Km3NsJ^y3p{p@zBJLEVN&76Wd46oZmW*}G z!R6V@z@+4OW6?KI2yS=R7G)e`<5fH|JTA*io^Hs7M6N6nO15mS{_$!Qaf3WVX2Sk`zeS}JalI99hE7+??pi)hUSc5^X zd}V}>R;8hD&Tl7?>~s>D%i6GNVz>ZHg%ctLTVpJ)NxEuj2Jp^9zo zB*^l`+|!9v2SZzM5iS9L9PX-uNnAk>4}QkZEA?;CROIn0qJf9@O7!^|{UiEOmnWbZ z8QyF2F^;`^y4fhXQ|ZEt|T#i2Z`hRmy&Gphuc7#J1B-dgc9=$VwPh z@ma=PiIpVF^}ZeCzz1vfjkGKS6g52bdvbsO!{uv1p;A|XD{ua24)4T8?4!7@6lW`B z%tZ64dipGPn3~}~9wP+_Y3s~W?oed zt=u6w>epF0AaIzMV{cc#2+_CV?VqZ z?#f!UdJprSy9X5kAK(yeXxgPEeR0#^Pe=v?ijqG_@!wT4!wl4I_S~$s6l=7B_xk9V zgCcbZpHtY`lxHuf%i8!M;nz&4!ZxE@+bV0vAs4rH>$uTFs7Xc(mhj2cyJ>&a*nhj; zd_R?xR?05+J*iv%6(^qr<0)}ttTE4u?|rMnhG62nr_G3N>3wVGb$4S2fIPOK%`@?w zyZos9>yptOZbueR(t-=G2Bu{I$+onq9h2=XL*HyUvF^Mx<=N#l;BMimG{9NbBVn7e zEZiEobH*(R#kxQY#%mEL>1E)L5hKt+&){X+{wl;63*nuXQ>JCNnj! zaO~q?4c6ZeWWmDXou(Ce#!OgOHT;|2{Aj_%@7op~n9Uw!{cH`_EWFn{5WK&e#JT{5 zB^t<^)`)^_EVaBiHqwraPS*wQiN89d=lZ%woQJ=5BQ3AW$n-4gjET2A7FPG&+XRjKU)}}fi>O@0DbiB(vQUzMFZ^6S~`9dr%U1$rA z#vXq^#pR)8I3|J)V;zp`g>o%NeVTM%Er|)=qJs-&rUCQaV7|2X+rM8mRf>4WqubK~ z^)wJkG^3Nar+Rjlr5jUH#4Ez6)-{{?o;)_+L}Ahy%Uj6Xe=6!+YV@mw1a!w=b7;TX z0lFX#;))=eG&2AyGiCIsf&R0EP%Tf7VlOw5aM!}`M^(<0s+0st;6u-SEljgO(L1NX zni{hTi?0!4&mi@H2Y5+nvS1>1;27Cc1`@6Clc{SJ&GQaN;j(FBFog_F`Z%b7Q7 p=aaH*r<*&~teYig1SHyZkGSdk@Vv8)C@|-L6(s$iF4_K>{uhiQb{GHv literal 0 HcmV?d00001 diff --git a/doc/source/index.rst b/doc/source/index.rst index 4914b0e4..eca0a0c2 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -20,9 +20,10 @@ User guide userdoc/installation.guide horizon/installation.guide - userdoc/rest_api_v1.0 + userdoc/overview userdoc/features userdoc/hadoop-swift.rst + userdoc/rest_api_v1.0 Developer Guide diff --git a/doc/source/userdoc/overview.rst b/doc/source/userdoc/overview.rst new file mode 100644 index 00000000..0ada9578 --- /dev/null +++ b/doc/source/userdoc/overview.rst @@ -0,0 +1,64 @@ +General Overview +================ + +Clusters +-------- + +A cluster deployed by Savanna consists of node groups. Node groups vary by +their role, parameters and number of machines. The picture below +illustrates example of Hadoop cluster consisting of 3 node groups each having +different role (set of processes). + +.. image:: ../images/hadoop-cluster-example.jpg + +Node group parameters include Hadoop parameters like `io.sort.mb` or +`mapred.child.java.opts`, and several infrastructure parameters like flavor +for VMs or storage location (ephemeral drive or Cinder volume). + +A cluster is characterized by its node groups and its parameters. Like a node +group, cluster has Hadoop and infrastructure parameters. An +example of cluster-wide Hadoop parameter is `dfs.replication`. For +infrastructure an example could be image which will be used to launch cluster +VMs. + +Templates +--------- + +In order to simplify cluster provisioning Savanna employs concept of templates. +There are two kind of templates: node group template and cluster template. The +former is used to create node groups, the later - clusters. Essentially +templates have the very same parameters as corresponding entities. Their aim +is to remove burden of specifying all the required parameters each time user +wants to launch a cluster. + +Provisioning Plugins +-------------------- + +A provisioning plugin is a component responsible for provisioning Hadoop +cluster. Generally each plugin is capable of provisioning a specific Hadoop +distribution. Also plugin can install management and/or monitoring tools for +a cluster. + +Since Hadoop parameters vary depending on distribution and Hadoop version, +templates are always plugin and Hadoop version specific. A template could not +be used with plugun/Hadoop version different than ones it was created for. + +Image Registry +-------------- + +OpenStack starts VMs based on pre-built image with installed OS. The image +requirements for Savanna depend on plugin and Hadoop version. Some plugins +require just basic cloud image and install Hadoop on VMs from scratch. Some +plugins might require images with pre-installed Hadoop. + +The Savanna Image Registry is a feature which helps filter out images during +cluster creation. Before creating a cluster, user should register an image in +Image Registry and tag it with specific tags. Each plugin has its own set of +tags which help it to determine if an image is suitable for a specific +Hadoop version. + +Features +-------- + +Savanna has several interesting features. The full list could be found there: +:doc:`features`