Sie sind auf Seite 1von 15

2/21/2014

Welcomerushi

How to Set Up a Hadoop Cluster Using Oracle Solaris


Account SignOut Help Country Communities Iama... Iwantto...

Search

Products
OracleTechnologyNetwork
Archive AutoServiceRequest(ASR) AllSystemAdminArticles AllSystemsTopics CoolThreads DST EndofNotices FAQ HandsOnLabs HighPerformanceComputing Interoperability Patches Security SoftwareStacks SolarisDeveloper SolarisHowTo SolarisStudioIDETopics SysadminDays SystemAdminDocs Upgrade VMServerforSPARC DidyouKnow JetToolkit OracleACESforSystems OracleonDell

Solutions

Downloads
HandsOnLabs

Store

Support

Training

Partners

About

OTN

SystemAdminsandDevelopers

HowtoSetUpaHadoopClusterUsingOracleSolaris
HandsOnLabsoftheSystemAdminandDeveloperCommunityofOTN byOrgadKimchi HowtosetupaHadoopclusterusingtheOracleSolarisZones,ZFS,andnetworkvirtualizationtechnologies.
PublishedOctober2013

TableofContents LabIntroduction Prerequisites SystemRequirements SummaryofLabExercises TheCaseforHadoop Exercise1:InstallHadoop Exercise2:EdittheHadoopConfigurationFiles Exercise3:ConfiguretheNetworkTimeProtocol Exercise4:CreatetheVirtualNetworkInterfaces Exercise5:CreatetheNameNodeandSecondaryNameNodeZones Exercise6:SetUptheDataNodeZones Exercise7:ConfiguretheNameNode Exercise8:SetUpSSH Exercise9:FormatHDFSfromtheNameNode Exercise10:StarttheHadoopCluster Exercise11:RunaMapReduceJob Exercise12:UseZFSEncryption Exercise13:UseOracleSolarisDTraceforPerformanceMonitoring Summary SeeAlso AbouttheAuthor

Wanttocommentonthis article?Postthelink onFacebook'sOTN Garagepage.Havea similararticletoshare? BringituponFacebookor Twitterandlet'sdiscuss.

Expectedduration:180minutes LabIntroduction ThishandsonlabpresentsexercisesthatdemonstratehowtosetupanApacheHadoopclusterusingOracleSolaris11technologiessuchas OracleSolarisZones,ZFS,andnetworkvirtualization.KeytopicsincludetheHadoopDistributedFileSystem(HDFS)andtheHadoopMapReduce programmingmodel. WewillalsocovertheHadoopinstallationprocessandtheclusterbuildingblocks:NameNode,asecondaryNameNode,andDataNodes.In addition,youwillseehowyoucancombinetheOracleSolaris11technologiesforbetterscalabilityanddatasecurity,andyouwilllearnhowto loaddataintotheHadoopclusterandrunaMapReducejob. Prerequisites ThishandsonlabisappropriateforsystemadministratorswhowillbesettingupormaintainingaHadoopclusterinproductionordevelopment environments.BasicLinuxorOracleSolarissystemadministrationexperienceisaprerequisite.PriorknowledgeofHadoopisnotrequired. SystemRequirements ThishandsonlabisrunonOracleSolaris11inOracleVMVirtualBox.Thelabisselfcontained.AllyouneedisintheOracleVMVirtualBox instance. ForthoseattendingthelabatOracleOpenWorld,yourlaptopsarealreadypreloadedwiththecorrectOracleVMVirtualBoximage. IfyouwanttotrythislaboutsideofOracleOpenWorld,youwillneedanOracleSolaris11system.Dothefollowingtosetupyourmachine: IfyoudonothaveOracleSolaris11,downloadithere. DownloadtheOracleSolaris11.1VirtualBoxTemplate(filesize1.7GB). Installthetemplateasdescribedhere.(Note:Onstep4ofExercise2forinstallingthetemplate,settheRAMsizeto4GBinordertogetgood performance.)

NotesforOracleOpenWorldAttendees
Eachattendeewillhavehisorherownlaptopforthelab. Theloginnameandpasswordforthislabareprovidedina"onepager." OracleSolaris11usestheGNOMEdesktop.IfyouhaveusedthedesktopsonLinuxorotherUNIXoperatingsystems,theinterfaceshouldbe familiar.Herearesomequickbasicsincasetheinterfaceisnewforyou. InordertoopenaterminalwindowintheGNOMEdesktopsystem,rightclickthebackgroundofthedesktop,andselectOpenTerminalinthepop upmenu. Thefollowingsourcecodeeditorsareprovidedonthelabmachines:vi(typev i inaterminalwindow)andemacs(typee m a c s inaterminal window). SummaryofLabExercises Thishandsonlabconsistsof13exercisescoveringvariousOracleSolarisandApacheHadooptechnologies: InstallHadoop. EdittheHadoopconfigurationfiles. ConfiguretheNetworkTimeProtocol. Createthevirtualnetworkinterfaces(VNICs). CreatetheNameNodeandthesecondaryNameNodezones. SetuptheDataNodezones. ConfiguretheNameNode. SetupSSH. FormatHDFSfromtheNameNode. StarttheHadoopcluster. RunaMapReducejob. SecuredataatrestusingZFSencryption. UseOracleSolarisDTraceforperformancemonitoring. TheCaseforHadoop TheApacheHadoopsoftwareisaframeworkthatallowsforthedistributedprocessingoflargedatasetsacrossclustersofcomputersusingsimple programmingmodels. Tostoredata,HadoopusestheHadoopDistributedFileSystem(HDFS),whichprovideshighthroughputaccesstoapplicationdataandissuitable forapplicationsthathavelargedatasets. FormoreinformationaboutHadoopandHDFS,seehttp://hadoop.apache.org/. TheHadoopclusterbuildingblocksareasfollows: NameNode:ThecenterpieceofHDFS,whichstoresfilesystemmetadata,directstheslaveDataNodedaemonstoperformthelowlevelI/Otasks,

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

1/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


andalsorunstheJobTrackerprocess. SecondaryNameNode:PerformsinternalchecksoftheNameNodetransactionlog. DataNodes:NodesthatstorethedatainHDFS,whicharealsoknownasslavesandruntheTaskTrackerprocess. Intheexamplepresentedinthislab,alltheHadoopclusterbuildingblockswillbeinstalledusingtheOracleSolarisZones,ZFS,andnetwork virtualizationtechnologies.Figure1showsthearchitecture:

Figure1 Exercise1:InstallHadoop InOracleVMVirtualBox,enableabidirectional"sharedclipboard"betweenthehostandtheguestinordertoenablecopyingandpastingtextfrom thisfile.

Figure2 OpenaterminalwindowbyrightclickinganypointinthebackgroundofthedesktopandselectingOpenTerminalinthepopupmenu.

Figure3 Next,switchtother o o t userusingthefollowingcommand. Note:ForOracleOpenWorldattendees,therootpasswordhasbeenprovidedintheonepagerassociatedwiththislab.Forthoserunningthislab outsideofOracleOpenWorld,entertherootpasswordyouenteredwhenyoufollowedthestepsinthe"SystemRequirements"section. r o o t @ g l o b a l _ z o n e : ~ #s uP a s s w o r d : O r a c l eC o r p o r a t i o n S u n O S5 . 1 1 1 1 . 1 S e p t e m b e r2 0 1 2 Setupthevirtualnetworkinterfacecard(VNIC)inordertoenablenetworkaccesstotheglobalzonefromthenonglobalzones. Note:OracleOpenWorldattendeescanskipthisstep(becausethepreloadedOracleVMVirtualBoximagealreadyprovidesconfiguredVNICs) andgodirectlytostep16,"Browsethelabsupplementmaterials." r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0v n i c 0 r o o t @ g l o b a l _ z o n e : ~ #i p a d mc r e a t e i pv n i c 0 r o o t @ g l o b a l _ z o n e : ~ #i p a d mc r e a t e a d d rTs t a t i cal o c a l = 1 9 2 . 1 6 8 . 1 . 1 0 0 / 2 4v n i c 0 / a d d r VerifytheVNICcreation: r o o t @ g l o b a l _ z o n e : ~ #i p a d ms h o w a d d rv n i c 0 A D D R O B J T Y P E S T A T E A D D R v n i c 0 / a d d r s t a t i c o k 1 9 2 . 1 6 8 . 1 . 1 0 0 / 2 4 Createtheh a d o o p h o l directorywewilluseittostorethelabsupplementmaterialsassociatedwiththislab,suchasscriptsandinputfiles.

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

2/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


r o o t @ g l o b a l _ z o n e : ~ #m k d i rp/ u s r / l o c a l / h a d o o p h o l CreatetheB i n directorywewillputtheHadoopbinaryfilethere. r o o t @ g l o b a l _ z o n e : ~ #m k d i r/ u s r / l o c a l / h a d o o p h o l / B i n Inthislab,wewillusetheApacheHadoop"23Jul2013,2013:Release1.2.1"release.YoucandownloadtheHadoopbinaryfileusingaweb browser.OpentheFirefoxwebbrowserfromthedesktopanddownloadthefile.

Figure4 CopytheHadooptarballto/ u s r / l o c a l / h a d o o p h o l / B i n . r o o t @ g l o b a l _ z o n e : ~ #c p/ e x p o r t / h o m e / o r a c l e / D o w n l o a d s / h a d o o p 1 . 2 . 1 . t a r . g z/ u s r / l o c a l / h a d o o p h o l / B i n / Note:Bydefault,thefileisdownloadedtotheuser'sD o w n l o a d s directory. Next,wearegoingtocreatethelabscripts,socreateadirectoryforthem: r o o t @ g l o b a l _ z o n e : ~ #m k d i r/ u s r / l o c a l / h a d o o p h o l / S c r i p t s Createthec r e a t e z o n e scriptusingyourfavoriteeditor,asshowninListing1.WewillusethisscripttosetuptheOracleSolarisZones. r o o t @ g l o b a l _ z o n e : ~ #v i/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n e Listing1 # ! / b i n / k s h #F I L E N A M E : c r e a t e z o n e #C r e a t eaz o n ew i t haV N I C #U s a g e : #c r e a t e z o n e< z o n en a m e >< V N I C > i f[$ #! =2] t h e n e c h o" U s a g e :c r e a t e z o n e< z o n en a m e >< V N I C > " e x i t1 f i Z O N E N A M E = $ 1 V N I C N A M E = $ 2 z o n e c f gz$ Z O N E N A M E>/ d e v / n u l l2 > & 1< <E O F c r e a t e s e ta u t o b o o t = t r u e s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e s e tz o n e p a t h = / z o n e s / $ Z O N E N A M E a d df s s e td i r = / u s r / l o c a l s e ts p e c i a l = / u s r / l o c a l s e tt y p e = l o f s s e to p t i o n s = [ r o , n o d e v i c e s ] e n d a d dn e t s e tp h y s i c a l = $ V N I C N A M E e n d v e r i f y e x i t E O F i f[$ ?= =0];t h e n e c h o" S u c c e s s f u l l yc r e a t e dt h e$ Z O N E N A M Ez o n e " e l s e e c h o" E r r o r :u n a b l et oc r e a t et h e$ Z O N E N A M Ez o n e " e x i t1 f i Createthev e r i f y c l u s t e r scriptusingyourfavoriteeditor,asshowninListing2.WewillusethisscripttoverifytheHadoopclustersetup. r o o t @ g l o b a l _ z o n e : ~ #v i/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / v e r i f y c l u s t e r Listing2 # ! / b i n / k s h #F I L E N A M E : v e r i f y c l u s t e r #V e r i f yt h eh a d o o pc l u s t e rc o n f i g u r a t i o n #U s a g e : #v e r i f y c l u s t e r R E T = 1

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

3/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


f o rt r a n s a c t i o ni n_ ;d o f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ il s/ u s r / l o c a l>/ d e v / n u l l2 > & 1" e v a l$ c m d| |b r e a k2 d o n e f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ ip i n gn a m e n o d e>/ d e v / n u l l2 > & 1 " e v a l$ c m d| |b r e a k2 d o n e f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ ip i n gs e c n a m e n o d e>/ d e v / n u l l2 > & 1 " e v a l$ c m d| |b r e a k2 d o n e f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ ip i n gd a t a n o d e 1>/ d e v / n u l l2 > & 1 " e v a l$ c m d| |b r e a k2 d o n e f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ ip i n gd a t a n o d e 2>/ d e v / n u l l2 > & 1 " e v a l$ c m d| |b r e a k2 d o n e f o rii nn a m e n o d es e c n a m e n o d ed a t a n o d e 1d a t a n o d e 2d a t a n o d e 3 d o c m d = " z l o g i n$ ip i n gd a t a n o d e 3>/ d e v / n u l l2 > & 1 " e v a l$ c m d| |b r e a k2 d o n e R E T = 0 d o n e i f[$ R E T= =0];t h e n e c h o" T h ec l u s t e ri sv e r i f i e d " e l s e e c h o" E r r o r :u n a b l et ov e r i f yt h ec l u s t e r " f i e x i t$ R E T CreatetheD o c directorywewillputtheHadoopinputfilesthere. r o o t @ g l o b a l _ z o n e : ~ #m k d i r/ u s r / l o c a l / h a d o o p h o l / D o c DownloadthefollowingeBookfromProjectGutenbergasaplaintextfilewithUTF8encoding:TheOutlineofScience,Vol.1(of4)byJ.Arthur Thomson. Copythedownloadedfile(p g 2 0 4 1 7 . t x t )intothe/ u s r / l o c a l / h a d o o p h o l / D o c directory. r o o t @ g l o b a l _ z o n e : ~ #c p~ o r a c l e / D o w n l o a d s / p g 2 0 4 1 7 . t x t/ u s r / l o c a l / h a d o o p h o l / D o c / Browsethelabsupplementmaterialsbytypingthefollowingonthecommandline: r o o t @ g l o b a l _ z o n e : ~ #c d/ u s r / l o c a l / h a d o o p h o l Onthecommandline,typel sl toseethecontentofthedirectory: r o o t @ g l o b a l _ z o n e : ~ #l sl t o t a l9 d r w x r x r x 2r o o t r o o t d r w x r x r x 2r o o t r o o t d r w x r x r x 2r o o t r o o t Youcanseethefollowingdirectorystructure: B i n TheHadoopbinarylocation D o c TheHadoopinputfiles S c r i p t s Thelabscripts InthislabwewillusetheApacheHadoop"23Jul2013,2013:Release1.2.1"release.CopytheHadooptarballinto/ u s r / l o c a l : r o o t @ g l o b a l _ z o n e : ~ #c p/ u s r / l o c a l / h a d o o p h o l / B i n / h a d o o p 1 . 2 . 1 . t a r . g z/ u s r / l o c a l Unpackthetarball: r o o t @ g l o b a l _ z o n e : ~ #c d/ u s r / l o c a l r o o t @ g l o b a l _ z o n e : ~ #t a rx v f z/ u s r / l o c a l / h a d o o p 1 . 2 . 1 . t a r . g z Createtheh a d o o p group: r o o t @ g l o b a l _ z o n e : ~ #g r o u p a d dh a d o o p Addtheh a d o o p user: r o o t @ g l o b a l _ z o n e : ~ #u s e r a d dmgh a d o o ph a d o o p Settheuser'sHadooppassword.Youcanusewhateverpasswordthatyouwant,butbesureyourememberthepassword. r o o t @ g l o b a l _ z o n e : ~ #p a s s w dh a d o o p CreateasymlinkfortheHadoopbinaries: r o o t @ g l o b a l _ z o n e : ~ #l ns/ u s r / l o c a l / h a d o o p 1 . 2 . 1/ u s r / l o c a l / h a d o o p Giveownershiptotheh a d o o p user: r o o t @ g l o b a l _ z o n e : ~ #c h o w nRh a d o o p : h a d o o p/ u s r / l o c a l / h a d o o p * Changethepermissions: r o o t @ g l o b a l _ z o n e : ~ #c h m o dR7 5 5/ u s r / l o c a l / h a d o o p * Exercise2:EdittheHadoopConfigurationFiles Inthisexercise,wewilledittheHadoopconfigurationfiles,whichareshowninTable1:

2J u l 81 5 : 1 1B i n 2J u l 81 5 : 1 1D o c 2J u l 81 5 : 1 2S c r i p t s

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

4/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


Table1.HadoopConfigurationFiles FileName Description h a d o o p e n v . s h SpecifiesenvironmentvariablesettingsusedbyHadoop. c o r e s i t e . x m l SpecifiesparametersrelevanttoallHadoopdaemonsandclients. m a p r e d SpecifiesparametersusedbytheMapReducedaemonsandclients. s i t e . x m l m a s t e r s ContainsalistofmachinesthatruntheSecondaryNameNode. ContainsalistofmachinenamesthatruntheDataNodeandTaskTrackerpairof s l a v e s daemons. TolearnmoreabouthowtheHadoopframeworkiscontrolledbytheseconfigurationfiles,see http://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/conf/Configuration.html. Runthefollowingcommandtochangetothec o n f directory: r o o t @ g l o b a l _ z o n e : ~ #c d/ u s r / l o c a l / h a d o o p / c o n f Runthefollowingcommandstochangetheh a d o o p e n v . s h script: Note:TheclusterconfigurationwillsharetheHadoopdirectorystructure(/ u s r / l o c a l / h a d o o p )acrossthezonesasareadonlyfilesystem.Every Hadoopclusternodeneedstobeabletowriteitslogstoanindividualdirectory.Thedirectory/ v a r / l o g / h a d o o p isabestpracticedirectoryfor everyOracleSolarisZone. r o o t @ g l o b a l _ z o n e : ~ #e c h o" e x p o r tJ A V A _ H O M E = / u s r / j a v a "> > h a d o o p e n v . s h r o o t @ g l o b a l _ z o n e : ~ #e c h o" e x p o r tH A D O O P _ L O G _ D I R = / v a r / l o g / h a d o o p "> >h a d o o p e n v . s h Editthem a s t e r s filetoreplacethel o c a l h o s t entrywiththelineshowninListing3: r o o t @ g l o b a l _ z o n e : ~ #v im a s t e r s Listing3 s e c n a m e n o d e Editthes l a v e s filetoreplacethel o c a l h o s t entrywiththelinesshowninListing4: r o o t @ g l o b a l _ z o n e : ~ #v is l a v e s Listing4 d a t a n o d e 1 d a t a n o d e 2 d a t a n o d e 3 Editthec o r e s i t e . x m l filesoitlookslikeListing5: r o o t @ g l o b a l _ z o n e : ~ #v ic o r e s i t e . x m l Note:f s . d e f a u l t . n a m e istheURIthatdescribestheNameNodeaddress(protocolspecifier,hostname,andport)forthecluster.EachDataNode instancewillregisterwiththisNameNodeandmakeitsdataavailablethroughit.Inaddition,theDataNodessendheartbeatstotheNameNodeto confirmthateachDataNodeisoperatingandtheblockreplicasithostsareavailable. Listing5 < ? x m lv e r s i o n = " 1 . 0 " ? > < ? x m l s t y l e s h e e tt y p e = " t e x t / x s l "h r e f = " c o n f i g u r a t i o n . x s l " ? > < ! -P u ts i t e s p e c i f i cp r o p e r t yo v e r r i d e si nt h i sf i l e .> < c o n f i g u r a t i o n > < p r o p e r t y > < n a m e > f s . d e f a u l t . n a m e < / n a m e > < v a l u e > h d f s : / / n a m e n o d e < / v a l u e > < / p r o p e r t y > < / c o n f i g u r a t i o n > Edittheh d f s s i t e . x m l filesoitlookslikeListing6: r o o t @ g l o b a l _ z o n e : ~ #v ih d f s s i t e . x m l Notes: d f s . d a t a . d i r isthepathonthelocalfilesysteminwhichtheDataNodeinstanceshouldstoreitsdata. d f s . n a m e . d i r isthepathonthelocalfilesystemoftheNameNodeinstancewheretheNameNodemetadataisstored.Itisonlyusedbythe NameNodeinstancetofinditsinformation. d f s . r e p l i c a t i o n isthedefaultreplicationfactorforeachblockofdatainthefilesystem.(Foraproductioncluster,thisshouldusuallybeleftatits defaultvalueof3.) Listing6 < ? x m lv e r s i o n = " 1 . 0 " ? > < ? x m l s t y l e s h e e tt y p e = " t e x t / x s l "h r e f = " c o n f i g u r a t i o n . x s l " ? > < ! -P u ts i t e s p e c i f i cp r o p e r t yo v e r r i d e si nt h i sf i l e .> < c o n f i g u r a t i o n > < p r o p e r t y > < n a m e > d f s . d a t a . d i r < / n a m e > < v a l u e > / h d f s / d a t a / < / v a l u e > < / p r o p e r t y > < p r o p e r t y > < n a m e > d f s . n a m e . d i r < / n a m e > < v a l u e > / h d f s / n a m e / < / v a l u e > < / p r o p e r t y > < p r o p e r t y > < n a m e > d f s . r e p l i c a t i o n < / n a m e > < v a l u e > 3 < / v a l u e > < / p r o p e r t y > < / c o n f i g u r a t i o n > Editthem a p r e d s i t e . x m l filesoitlookslikeListing7: r o o t @ g l o b a l _ z o n e : ~ #v im a p r e d s i t e . x m l Note:m a p r e d . j o b . t r a c k e r isahost:portstringspecifyingtheJobTracker'sRPCaddress. Listing7 < ? x m lv e r s i o n = " 1 . 0 " ? > < ? x m l s t y l e s h e e tt y p e = " t e x t / x s l "h r e f = " c o n f i g u r a t i o n . x s l " ? > < c o n f i g u r a t i o n > < p r o p e r t y > < n a m e > m a p r e d . j o b . t r a c k e r < / n a m e > < v a l u e > n a m e n o d e : 8 0 2 1 < / v a l u e > < / p r o p e r t y > < / c o n f i g u r a t i o n > Exercise3:ConfiguretheNetworkTimeProtocol

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

5/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


WeshouldensurethatthesystemclockontheHadoopzonesissynchronizedbyusingtheNetworkTimeProtocol(NTP). Note:ItisbesttoselectanNTPserverthatcanbeadedicatedtimesynchronizationsourcesothatotherservicesarenotnegativelyaffectedifthe machineisbroughtdownforplannedmaintenance. Inthefollowingexample,theglobalzoneisconfiguredasanNTPserver. ConfigureanNTPserver: r o o t @ g l o b a l _ z o n e : ~ #c d/ e t c / i n e t r o o t @ g l o b a l _ z o n e : ~ #c pn t p . s e r v e rn t p . c o n f r o o t @ g l o b a l _ z o n e : ~ #c h m o d+ w/ e t c / i n e t / n t p . c o n f r o o t @ g l o b a l _ z o n e : ~ #t o u c h/ v a r / n t p / n t p . d r i f t EdittheNTPserverconfigurationfile,asshowninListing8: r o o t @ g l o b a l _ z o n e : ~ #v i/ e t c / i n e t / n t p . c o n f Listing8 s e r v e r1 2 7 . 1 2 7 . 1 . 0p r e f e r b r o a d c a s t2 2 4 . 0 . 1 . 1t t l4 e n a b l ea u t hm o n i t o r d r i f t f i l e/ v a r / n t p / n t p . d r i f t s t a t s d i r/ v a r / n t p / n t p s t a t s / f i l e g e np e e r s t a t sf i l ep e e r s t a t st y p ed a ye n a b l e f i l e g e nl o o p s t a t sf i l el o o p s t a t st y p ed a ye n a b l e f i l e g e nc l o c k s t a t sf i l ec l o c k s t a t st y p ed a ye n a b l e k e y s/ e t c / i n e t / n t p . k e y s t r u s t e d k e y0 r e q u e s t k e y0 c o n t r o l k e y0 EnabletheNTPserverservice: r o o t @ g l o b a l _ z o n e : ~ #s v c a d me n a b l en t p VerifythattheNTPserverisonlinebyusingthefollowingcommand: r o o t @ g l o b a l _ z o n e : ~ #s v c sa|g r e pn t p o n l i n e 1 6 : 0 4 : 1 5s v c : / n e t w o r k / n t p : d e f a u l t Exercise4:CreatetheVirtualNetworkInterfaces

ConceptBreak:OracleSolaris11NetworkingVirtualizationTechnology
OracleSolarisprovidesareliable,secure,andscalableinfrastructuretomeetthegrowingneedsofdatacenterimplementations.Itspowerful networkstackarchitecture,alsoknownasProjectCrossbow,providesthefollowing. NetworkvirtualizationwithvirtualNICs(VNICs)andvirtualswitching TightintegrationwithOracleSolarisZonesandOracleSolaris10Zones Networkresourcemanagement,whichprovidesanefficientandeasywaytomanageintegratedQoStoenforcebandwidthlimitsonVNICsand trafficflows Anoptimizednetworkstackthatreactstonetworkloadlevels Theabilitytobuilda"datacenterinabox" OracleSolarisZonesonthesamesystemcanbenefitfromveryhighnetworkI/Othroughput(uptofourtimesfaster)withverylowlatency comparedtosystemswith,say,1Gbphysicalnetworkconnections.ForaHadoopcluster,thismeansthattheDataNodescanreplicatetheHDFS blocksmuchfaster. Formoreinformationaboutnetworkvirtualizationbenchmarks,see"HowtoControlYourApplication'sNetworkBandwidth." Createaseriesofvirtualnetworkinterfaces(VNICs)forthedifferentzones: r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0n a m e _ n o d e 1 r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0s e c o n d a r y _ n a m e 1 r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0d a t a _ n o d e 1 r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0d a t a _ n o d e 2 r o o t @ g l o b a l _ z o n e : ~ #d l a d mc r e a t e v n i cln e t 0d a t a _ n o d e 3 VerifytheVNICscreation: r o o t @ g l o b a l _ z o n e : ~ #d l a d ms h o w v n i c L I N K O V E R S P E E D n a m e _ n o d e 1 n e t 0 1 0 0 0 s e c o n d a r y _ n a m e 1 n e t 0 1 0 0 0 d a t a _ n o d e 1 n e t 0 1 0 0 0 d a t a _ n o d e 2 n e t 0 1 0 0 0 d a t a _ n o d e 3 n e t 0 1 0 0 0

M A C A D D R E S S 2 : 8 : 2 0 : c 6 : 3 e : f 1 2 : 8 : 2 0 : b 9 : 8 0 : 4 5 2 : 8 : 2 0 : 3 0 : 1 c : 3 a 2 : 8 : 2 0 : a 8 : b 1 : 1 6 2 : 8 : 2 0 : d f : 8 9 : 8 1

M A C A D D R T Y P E r a n d o m r a n d o m r a n d o m r a n d o m r a n d o m

V I D 0 0 0 0 0

WecanseethatwehavefiveVNICsnow.Figure5showsthearchitecturelayout:

Figure5 Exercise5:CreatetheNameNodeandSecondaryNameNodeZones

ConceptBreak:OracleSolarisZones
OracleSolarisZonesletyouisolateoneapplicationfromothersonthesameOS,allowingyoutocreateanisolatedenvironmentinwhichusers canloginanddowhattheywantfrominsideanOracleSolarisZonewithoutaffectinganythingoutsidethatzone.Inaddition,OracleSolarisZones aresecurefromexternalattacksandinternalmaliciousprograms.EachOracleSolarisZonecontainsacompleteresourcecontrolledenvironment

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

6/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


thatallowsyoutoallocateresourcessuchasCPU,memory,networking,andstorage. Ifyouaretheadministratorwhoownsthesystem,youcanchoosetocloselymanagealltheOracleSolarisZonesoryoucanassignrightstoother administratorsforspecificOracleSolarisZones.Thisflexibilityletsyoutailoranentirecomputingenvironmenttotheneedsofaparticular application,allwithinthesameOS. FormoreinformationaboutOracleSolarisZones,see"HowtoGetStartedCreatingOracleSolarisZonesinOracleSolaris11." AlltheHadoopnodesforthislabwillbeinstalledusingOracleSolarisZones. Ifyoudon'talreadyhaveafilesystemfortheNameNodeandSecondaryNameNodezones,runthefollowingcommand: r o o t @ g l o b a l _ z o n e : ~ #z f sc r e a t eom o u n t p o i n t = / z o n e sr p o o l / z o n e s VerifytheZFSfilesystemcreation: r o o t @ g l o b a l _ z o n e : ~ #z f sl i s tr p o o l / z o n e s N A M E U S E D A V A I L R E F E R M O U N T P O I N T r p o o l / z o n e s 3 1 K 5 1 . 4 G 3 1 K / z o n e s Createthen a m e n o d e zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e c f gzn a m e n o d e U s e' c r e a t e 't ob e g i nc o n f i g u r i n gan e wz o n e . Z o n e c f g : n a m e n o d e >c r e a t e c r e a t e :U s i n gs y s t e md e f a u l tt e m p l a t e' S Y S d e f a u l t ' z o n e c f g : n a m e n o d e >s e ta u t o b o o t = t r u e z o n e c f g : n a m e n o d e >s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e z o n e c f g : n a m e n o d e >s e tz o n e p a t h = / z o n e s / n a m e n o d e z o n e c f g : n a m e n o d e >a d df s z o n e c f g : n a m e n o d e : f s >s e td i r = / u s r / l o c a l z o n e c f g : n a m e n o d e : f s >s e ts p e c i a l = / u s r / l o c a l z o n e c f g : n a m e n o d e : f s >s e tt y p e = l o f s z o n e c f g : n a m e n o d e : f s >s e to p t i o n s = [ r o , n o d e v i c e s ] z o n e c f g : n a m e n o d e : f s >e n d z o n e c f g : n a m e n o d e >a d dn e t z o n e c f g : n a m e n o d e : n e t >s e tp h y s i c a l = n a m e _ n o d e 1 z o n e c f g : n a m e n o d e : n e t >e n d z o n e c f g : n a m e n o d e >v e r i f y z o n e c f g : n a m e n o d e >e x i t (Optional)Youcancreatethen a m e n o d e zoneusingthefollowingscript,whichwillcreatethezoneconfigurationfile.Forarguments,thescript needsthezonenameandVNICname,forexample:c r e a t e z o n e< z o n en a m e >< V N I Cn a m e > . r o o t @ g l o b a l _ z o n e : ~ #/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n en a m e n o d en a m e _ n o d e 1 Createthes e c n a m e n o d e zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e c f gzs e c n a m e n o d e U s e' c r e a t e 't ob e g i nc o n f i g u r i n gan e wz o n e . Z o n e c f g : s e c n a m e n o d e >c r e a t e c r e a t e :U s i n gs y s t e md e f a u l tt e m p l a t e' S Y S d e f a u l t ' z o n e c f g : s e c n a m e n o d e >s e ta u t o b o o t = t r u e z o n e c f g : s e c n a m e n o d e >s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e z o n e c f g : s e c n a m e n o d e >s e tz o n e p a t h = / z o n e s / s e c n a m e n o d e z o n e c f g : s e c n a m e n o d e >a d df s z o n e c f g : s e c n a m e n o d e : f s >s e td i r = / u s r / l o c a l z o n e c f g : s e c n a m e n o d e : f s >s e ts p e c i a l = / u s r / l o c a l z o n e c f g : s e c n a m e n o d e : f s >s e tt y p e = l o f s z o n e c f g : s e c n a m e n o d e : f s >s e to p t i o n s = [ r o , n o d e v i c e s ] z o n e c f g : s e c n a m e n o d e : f s >e n d z o n e c f g : s e c n a m e n o d e >a d dn e t z o n e c f g : s e c n a m e n o d e : n e t >s e tp h y s i c a l = s e c o n d a r y _ n a m e 1 z o n e c f g : s e c n a m e n o d e : n e t >e n d z o n e c f g : s e c n a m e n o d e >v e r i f y z o n e c f g : s e c n a m e n o d e >e x i t (Optional)Youcancreatethes e c n a m e n o d e zoneusingthefollowingscript,whichwillcreatethezoneconfigurationfile.Forarguments,the scriptneedsthezonenameandVNICname,forexample:c r e a t e z o n e< z o n en a m e >< V N I Cn a m e > . r o o t @ g l o b a l _ z o n e : ~ :/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n es e c n a m e n o d es e c o n d a r y _ n a m e 1 Exercise6:SetUptheDataNodeZones Inthisexercise,wewillleveragetheintegrationbetweenOracleSolarisZonesvirtualizationtechnologyandtheZFSfilesystemthatisbuiltinto OracleSolaris. Table2showsasummaryoftheHadoopzonesconfigurationwewillcreate: Table2.ZoneSummary Function ZoneName ZFSMountPoint VNICName IPAddress NameNode n a m e n o d e / z o n e s / n a m e n o d e n a m e _ n o d e 1 192.168.1.1 SecondaryNameNode s e c n a m e n o d e/ z o n e s / s e c n a m e n o d es e c o n d a r y _ n a m e 1192.168.1.2 DataNode d a t a n o d e 1 / z o n e s / d a t a n o d e 1 d a t a _ n o d e 1 192.168.1.3 DataNode d a t a n o d e 2 / z o n e s / d a t a n o d e 2 d a t a _ n o d e 2 192.168.1.4 DataNode d a t a n o d e 3 / z o n e s / d a t a n o d e 3 d a t a _ n o d e 3 192.168.1.5 Createthed a t a n o d e 1 zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e c f gzd a t a n o d e 1 U s e' c r e a t e 't ob e g i nc o n f i g u r i n gan e wz o n e . z o n e c f g : d a t a n o d e 1 >c r e a t e c r e a t e :U s i n gs y s t e md e f a u l tt e m p l a t e' S Y S d e f a u l t ' z o n e c f g : d a t a n o d e 1 >s e ta u t o b o o t = t r u e z o n e c f g : d a t a n o d e 1 >s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e z o n e c f g : d a t a n o d e 1 >s e tz o n e p a t h = / z o n e s / d a t a n o d e 1 z o n e c f g : d a t a n o d e 1 >a d df s z o n e c f g : d a t a n o d e 1 : f s >s e td i r = / u s r / l o c a l z o n e c f g : d a t a n o d e 1 : f s >s e ts p e c i a l = / u s r / l o c a l z o n e c f g : d a t a n o d e 1 : f s >s e tt y p e = l o f s z o n e c f g : d a t a n o d e 1 : f s >s e to p t i o n s = [ r o , n o d e v i c e s ] z o n e c f g : d a t a n o d e 1 : f s >e n d z o n e c f g : d a t a n o d e 1 >a d dn e t z o n e c f g : d a t a n o d e 1 : n e t >s e tp h y s i c a l = d a t a _ n o d e 1 z o n e c f g : d a t a n o d e 1 : n e t >e n d z o n e c f g : d a t a n o d e 1 >v e r i f y z o n e c f g : d a t a n o d e 1 >c o m m i t z o n e c f g : d a t a n o d e 1 >e x i t (Optional)Youcancreatethed a t a n o d e 1 zoneusingthefollowingscript:

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

7/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


r o o t @ g l o b a l _ z o n e : ~ #/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n ed a t a n o d e 1d a t a _ n o d e 1 Createthed a t a n o d e 2 zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e c f gzd a t a n o d e 2 U s e' c r e a t e 't ob e g i nc o n f i g u r i n gan e wz o n e . z o n e c f g : d a t a n o d e 2 >c r e a t e c r e a t e :U s i n gs y s t e md e f a u l tt e m p l a t e' S Y S d e f a u l t ' z o n e c f g : d a t a n o d e 2 >s e ta u t o b o o t = t r u e z o n e c f g : d a t a n o d e 2 >s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e z o n e c f g : d a t a n o d e 2 >s e tz o n e p a t h = / z o n e s / d a t a n o d e 2 z o n e c f g : d a t a n o d e 2 >a d df s z o n e c f g : d a t a n o d e 2 : f s >s e td i r = / u s r / l o c a l z o n e c f g : d a t a n o d e 2 : f s >s e ts p e c i a l = / u s r / l o c a l z o n e c f g : d a t a n o d e 2 : f s >s e tt y p e = l o f s z o n e c f g : d a t a n o d e 2 : f s >s e to p t i o n s = [ r o , n o d e v i c e s ] z o n e c f g : d a t a n o d e 2 : f s >e n d z o n e c f g : d a t a n o d e 2 >a d dn e t z o n e c f g : d a t a n o d e 2 : n e t >s e tp h y s i c a l = d a t a _ n o d e 2 z o n e c f g : d a t a n o d e 2 : n e t >e n d z o n e c f g : d a t a n o d e 2 >v e r i f y z o n e c f g : d a t a n o d e 2 >c o m m i t z o n e c f g : d a t a n o d e 2 >e x i t (Optional)Youcancreatethed a t a n o d e 2 zoneusingthefollowingscript: r o o t @ g l o b a l _ z o n e : ~ #/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n ed a t a n o d e 2d a t a _ n o d e 2 Createthed a t a n o d e 3 zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e c f gzd a t a n o d e 3 U s e' c r e a t e 't ob e g i nc o n f i g u r i n gan e wz o n e . z o n e c f g : d a t a n o d e 3 >c r e a t e c r e a t e :U s i n gs y s t e md e f a u l tt e m p l a t e' S Y S d e f a u l t ' z o n e c f g : d a t a n o d e 3 >s e ta u t o b o o t = t r u e z o n e c f g : d a t a n o d e 3 >s e tl i m i t p r i v = d e f a u l t , d t r a c e _ p r o c , d t r a c e _ u s e r , s y s _ t i m e z o n e c f g : d a t a n o d e 3 >s e tz o n e p a t h = / z o n e s / d a t a n o d e 3 z o n e c f g : d a t a n o d e 3 >a d df s z o n e c f g : d a t a n o d e 3 : f s >s e td i r = / u s r / l o c a l z o n e c f g : d a t a n o d e 3 : f s >s e ts p e c i a l = / u s r / l o c a l z o n e c f g : d a t a n o d e 3 : f s >s e tt y p e = l o f s z o n e c f g : d a t a n o d e 3 : f s >s e to p t i o n s = [ r o , n o d e v i c e s ] z o n e c f g : d a t a n o d e 3 : f s >e n d z o n e c f g : d a t a n o d e 3 >a d dn e t z o n e c f g : d a t a n o d e 3 : n e t >s e tp h y s i c a l = d a t a _ n o d e 3 z o n e c f g : d a t a n o d e 3 : n e t >e n d z o n e c f g : d a t a n o d e 3 >v e r i f y z o n e c f g : d a t a n o d e 3 >c o m m i t z o n e c f g : d a t a n o d e 3 >e x i t (Optional)Youcancreatethed a t a n o d e 3 zoneusingthefollowingscript: r o o t @ g l o b a l _ z o n e : ~ #/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / c r e a t e z o n ed a t a n o d e 3d a t a _ n o d e 3 Exercise7:ConfiguretheNameNode Now,installthen a m e n o d ezonelaterwewillcloneitinordertoacceleratezonecreationtime. r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzn a m e n o d ei n s t a l l T h ef o l l o w i n gZ F Sf i l es y s t e m ( s )h a v eb e e nc r e a t e d : r p o o l / z o n e s / n a m e n o d e P r o g r e s sb e i n gl o g g e dt o/ v a r / l o g / z o n e s / z o n e a d m . 2 0 1 3 0 1 0 6 T 1 3 4 8 3 5 Z . n a m e n o d e . i n s t a l l I m a g e :P r e p a r i n ga t/ z o n e s / n a m e n o d e / r o o t . Bootthen a m e n o d e zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzn a m e n o d eb o o t Checkthestatusofthezoneswe'vecreated: r o o t @ g l o b a l _ z o n e : ~ #z o n e a d ml i s tc v I DN A M E S T A T U S P A T H 0g l o b a l r u n n i n g / 1n a m e n o d e r u n n i n g / z o n e s / n a m e n o d e -s e c n a m e n o d e c o n f i g u r e d/ z o n e s / s e c n a m e n o d e -d a t a n o d e 1 c o n f i g u r e d/ z o n e s / d a t a n o d e 1 -d a t a n o d e 2 c o n f i g u r e d/ z o n e s / d a t a n o d e 2 -d a t a n o d e 3 c o n f i g u r e d/ z o n e s / d a t a n o d e 3 Logintothen a m e n o d e zone:

B R A N D I P s o l a r i ss h a r e d s o l a r i s e x c l s o l a r i s e x c l s o l a r i s e x c l s o l a r i s e x c l s o l a r i s e x c l

r o o t @ g l o b a l _ z o n e : ~ #z l o g i nCn a m e n o d e Providethezonehostinformationbyusingthefollowingconfigurationforthen a m e n o d e zone: Forthehostname,usen a m e n o d e . Selectmanualnetworkconfiguration. Ensurethenetworkinterfacen a m e _ n o d e 1 hasanIPaddressof192.168.1.1andanetmaskof255.255.255.0. Ensurethenameserviceisbasedonyournetworkconfiguration.Inthislab,wewilluse/ e t c / h o s t s fornameresolution,sowewon'tsetupDNS forhostnameresolution.SelectDonotconfigureDNS. ForAlternateNameService,selectNone. ForTimeZoneRegion,selectAmericas. ForTimeZoneLocation,selectUnitedStates. ForTimeZone,selectPacificTime. Enteryourrootpassword. Afterfinishingthezonesetup,youwillgettheloginprompt.Logintothezoneasuserr o o t . n a m e n o d ec o n s o l el o g i n :r o o t P a s s w o r d : DevelopingforHadooprequiresaJavaprogrammingenvironment.YoucaninstallJavaDevelopmentKit(JDK)6usingthefollowingcommand: r o o t @ n a m e n o d e : ~ #p k gi n s t a l lj d k 6 VerifytheJavainstallation: r o o t @ n a m e n o d e : ~ #w h i c hj a v a / u s r / b i n / j a v a r o o t @ n a m e n o d e : ~ #j a v av e r s i o n j a v av e r s i o n" 1 . 6 . 0 _ 3 5 " J a v a ( T M )S ER u n t i m eE n v i r o n m e n t( b u i l d1 . 6 . 0 _ 3 5 b 1 0 ) J a v aH o t S p o t ( T M )C l i e n tV M( b u i l d2 0 . 1 0 b 0 1 ,m i x e dm o d e ) CreateaHadoopuserinsidethen a m e n o d e zone:

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

8/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


r o o t @ n a m e n o d e : ~ #g r o u p a d dh a d o o p r o o t @ n a m e n o d e : ~ #u s e r a d dmgh a d o o ph a d o o p r o o t @ n a m e n o d e : ~ #p a s s w dh a d o o p Note:ThepasswordshouldbethesamepasswordasyouenteredinStep22ofExercise1whenyousettheuser'sHadooppassword. CreateadirectoryfortheHadooplogfiles: r o o t @ n a m e n o d e : ~ #m k d i r/ v a r / l o g / h a d o o p r o o t @ n a m e n o d e : ~ #c h o w nh a d o o p : h a d o o p/ v a r / l o g / h a d o o p ConfigureanNTPclient,asshowninthefollowingexample: InstalltheNTPpackage: r o o t @ n a m e n o d e : ~ #p k gi n s t a l ln t p CreatetheNTPclientconfigurationfiles: r o o t @ n a m e n o d e : ~ #c d/ e t c / i n e t r o o t @ n a m e n o d e : ~ #c pn t p . c l i e n tn t p . c o n f r o o t @ n a m e n o d e : ~ #c h m o d+ w/ e t c / i n e t / n t p . c o n f r o o t @ n a m e n o d e : ~ #t o u c h/ v a r / n t p / n t p . d r i f t EdittheNTPclientconfigurationfile,asshowninListing9: r o o t @ n a m e n o d e : ~ #v i/ e t c / i n e t / n t p . c o n f Note:Inthislab,weareusingtheglobalzoneasatimeserversoweadditsname(forexample,g l o b a l z o n e )to/ e t c / i n e t / n t p . c o n f . Listing9 s e r v e rg l o b a l z o n ep r e f e r d r i f t f i l e/ v a r / n t p / n t p . d r i f t s t a t s d i r/ v a r / n t p / n t p s t a t s / f i l e g e np e e r s t a t sf i l ep e e r s t a t st y p ed a ye n a b l e f i l e g e nl o o p s t a t sf i l el o o p s t a t st y p ed a ye n a b l e AddtheHadoopclustermembers'hostnamesandIPaddressesto/ e t c / h o s t s ,asshowninListing10: r o o t @ n a m e n o d e : ~ #v i/ e t c / h o s t s Listing10 : : 1 l o c a l h o s t 1 2 7 . 0 . 0 . 1 l o c a l h o s tl o g h o s t 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e 1 9 2 . 1 6 8 . 1 . 2s e c n a m e n o d e 1 9 2 . 1 6 8 . 1 . 3d a t a n o d e 1 1 9 2 . 1 6 8 . 1 . 4d a t a n o d e 2 1 9 2 . 1 6 8 . 1 . 5d a t a n o d e 3 1 9 2 . 1 6 8 . 1 . 1 0 0g l o b a l z o n e EnabletheNTPclientservice: r o o t @ n a m e n o d e : ~ #s v c a d me n a b l en t p VerifytheNTPclientstatus: r o o t @ n a m e n o d e : ~ #s v c sn t p S T A T E S T I M E F M R I o n l i n e 1 1 : 1 5 : 5 9s v c : / n e t w o r k / n t p : d e f a u l t CheckwhethertheNTPclientcansynchronizeitsclockwiththeNTPserver: r o o t @ n a m e n o d e : ~ #n t p qp Exercise8:SetUpSSH SetupSSHkeybasedauthenticationfortheHadoopuseronthen a m e _ n o d e zoneinordertoenablepasswordlesslogintotheSecondary DataNodeandtheDataNodes: r o o t @ n a m e n o d e : ~ #s u-h a d o o p h a d o o p @ n a m e n o d e$s s h k e y g e ntd s aP" "f~ / . s s h / i d _ d s a h a d o o p @ n a m e n o d e$c a t~ / . s s h / i d _ d s a . p u b> >~ / . s s h / a u t h o r i z e d _ k e y s Edit$ H O M E / . p r o f i l e toappendtotheendofthefilethelinesshowninListing11: h a d o o p @ n a m e n o d e$v i$ H O M E / . p r o f i l e Listing11 #S e tJ A V A _ H O M E e x p o r tJ A V A _ H O M E = / u s r / j a v a #A d dH a d o o pb i n /d i r e c t o r yt oP A T H e x p o r tP A T H = $ P A T H : / u s r / l o c a l / h a d o o p / b i n Thenrunthefollowingcommand: h a d o o p @ n a m e n o d e$s o u r c e$ H O M E / . p r o f i l e CheckthatHadooprunsbytypingthefollowingcommand: h a d o o p @ n a m e n o d e : ~ $h a d o o pv e r s i o n H a d o o p1 . 2 . 1 S u b v e r s i o nh t t p s : / / s v n . a p a c h e . o r g / r e p o s / a s f / h a d o o p / c o m m o n / b r a n c h e s / b r a n c h 1 . 2r1 5 0 3 1 5 2 C o m p i l e db ym a t t fo nM o nJ u l2 21 5 : 2 3 : 0 9P D T2 0 1 3 F r o ms o u r c ew i t hc h e c k s u m6 9 2 3 c 8 6 5 2 8 8 0 9 c 4 e 7 e 6 f 4 9 3 b 6 b 4 1 3 a 9 a Note:Press~ . toexitfromthen a m e n o d e consoleandreturntotheglobalzone. Youcanverifythatyouareintheglobalzoneusingthez o n e n a m e command: r o o t @ g l o b a l _ z o n e : ~ #z o n e n a m e g l o b a l Fromtheglobalzone,runthefollowingcommandtocreatethes e c n a m e n o d e zoneasacloneofn a m e n o d e : r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzn a m e n o d es h u t d o w n r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzs e c n a m e n o d ec l o n en a m e n o d e Bootthes e c n a m e n o d e zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzs e c n a m e n o d eb o o t r o o t @ g l o b a l _ z o n e : ~ #z l o g i nCs e c n a m e n o d e Asweexperiencedpreviously,thesystemconfigurationtoolislaunched(seeFigure6),sodothefinalconfigurationfors e c n a m e n o d e zone: Note:Allthezonesmusthavethesametimezoneconfigurationandthesamerootpassword.

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

9/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris

Figure6 Forthehostname,uses e c n a m e n o d e . Selectmanualnetworkconfigurationandforthenetworkinterface,uses e c o n d a r y _ n a m e 1 . UseanIPaddressof192.168.1.2andanetmaskof255.255.255.0. SelectDonotconfigureDNSintheDNSnameservicewindow. EnsureAlternateNameServiceissettoNone. ForTimeZoneRegion,selectAmericas. ForTimeZoneLocation,selectUnitedStates. ForTimeZone,selectPacificTime. Enteryourrootpassword. Note:Press~ . toexitfromthes e c n a m e n o d e consoleandreturntotheglobalzone. Performsimilarstepsford a t a n o d e 1 ,d a t a n o d e 2 ,andd a t a n o d e 3 : Dothefollowingford a t a n o d e 1 : r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 1c l o n en a m e n o d e r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 1b o o t r o o t @ g l o b a l _ z o n e : ~ #z l o g i nCd a t a n o d e 1 Forthehostname,used a t a n o d e 1 . Selectmanualnetworkconfigurationandforthenetworkinterface,used a t a _ n o d e 1 . UseanIPaddressof192.168.1.3andanetmaskof255.255.255.0. SelectDonotconfigureDNSintheDNSnameservicewindow. EnsureAlternateNameServiceissettoNone. ForTimeZoneRegion,selectAmericas. ForTimeZoneLocation,selectUnitedStates. ForTimeZone,selectPacificTime. Enteryourrootpassword. Dothefollowingford a t a n o d e 2 : r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 2c l o n en a m e n o d e r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 2b o o t r o o t @ g l o b a l _ z o n e : ~ #z l o g i nCd a t a n o d e 2 Forthehostname,used a t a n o d e 2 . Forthenetworkinterface,used a t a _ n o d e 2 . UseanIPaddressof192.168.1.4andanetmaskof255.255.255.0. SelectDonotconfigureDNSintheDNSnameservicewindow. EnsureAlternateNameServiceissettoNone. ForTimeZoneRegion,selectAmericas. ForTimeZoneLocation,selectUnitedStates. ForTimeZone,selectPacificTime. Enteryourrootpassword. Dothefollowingford a t a n o d e 3 : r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 3c l o n en a m e n o d e r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzd a t a n o d e 3b o o t r o o t @ g l o b a l _ z o n e : ~ #z l o g i nCd a t a n o d e 3 Forthehostname,used a t a n o d e 3 . Forthenetworkinterface,used a t a _ n o d e 3 . UseanIPaddressof192.168.1.5andanetmaskof255.255.255.0. SelectDonotconfigureDNSintheDNSnameservicewindow. EnsureAlternateNameServiceissettoNone. ForTimeZoneRegion,selectAmericas. ForTimeZoneLocation,selectUnitedStates. ForTimeZone,selectPacificTime. Enteryourrootpassword. Bootthen a m e _ n o d e zone: r o o t @ g l o b a l _ z o n e : ~ #z o n e a d mzn a m e n o d eb o o t Verifythatallthezonesareupandrunning: r o o t @ g l o b a l _ z o n e : ~ #z o n e a d ml i s tc v I DN A M E S T A T U S P A T H B R A N D I P 0g l o b a l r u n n i n g / s o l a r i ss h a r e d 1 0s e c n a m e n o d e r u n n i n g / z o n e s / s e c n a m e n o d e s o l a r i s e x c l 1 2d a t a n o d e 1 r u n n i n g / z o n e s / d a t a n o d e 1 s o l a r i s e x c l 1 4d a t a n o d e 2 r u n n i n g / z o n e s / d a t a n o d e 2 s o l a r i s e x c l 1 6d a t a n o d e 3 r u n n i n g / z o n e s / d a t a n o d e 3 s o l a r i s e x c l 1 7n a m e n o d e r u n n i n g / z o n e s / n a m e n o d e s o l a r i s e x c l ToverifyyourSSHaccesswithoutusingapasswordfortheHadoopuser,dothefollowing. Fromn a m e _ n o d e ,loginviaSSHinton a m e n o d e (thatis,toitself): r o o t @ g l o b a l _ z o n e : ~ #z l o g i nn a m e n o d e r o o t @ n a m e n o d e : ~ #s u-h a d o o p

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

10/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


h a d o o p @ n a m e n o d e$s s hn a m e n o d e T h ea u t h e n t i c i t yo fh o s t' n a m e n o d e( 1 9 2 . 1 6 8 . 1 . 1 ) 'c a n ' tb ee s t a b l i s h e d . R S Ak e yf i n g e r p r i n ti s0 4 : 9 3 : a 9 : e 0 : b 7 : 8 c : d 7 : 8 b : 5 1 : b 8 : 4 2 : d 7 : 9 f : e 1 : 8 0 : c a . A r ey o us u r ey o uw a n tt oc o n t i n u ec o n n e c t i n g( y e s / n o ) ?y e s W a r n i n g :P e r m a n e n t l ya d d e d' n a m e n o d e , 1 9 2 . 1 6 8 . 1 . 1 '( R S A )t ot h el i s to fk n o w nh o s t s . Now,trytologintos e c n a m e n o d e andtheDataNodes(d a t a n o d e 1 ,d a t a n o d e 2 ,andd a t a n o d e 3). TryloggingintothehostsagainusingSSH.Youshouldn'tgetaprompttoaddthehosttotheknownkeyslist. Editthe/ e t c / h o s t s filesinsides e c n a m e n o d e andtheDataNodesinordertoaddthen a m e n o d e entry: r o o t @ g l o b a l _ z o n e : ~ #z l o g i ns e c n a m e n o d e' e c h o" 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e "> >/ e t c / h o s t s ' r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 1' e c h o" 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e "> >/ e t c / h o s t s ' r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 2' e c h o" 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e "> >/ e t c / h o s t s ' r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 3' e c h o" 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e "> >/ e t c / h o s t s ' VerifynameresolutionbyensuringthattheglobalzoneandalltheHadoopzoneshavethehostentriesshowninListing12in/ e t c / h o s t s : #c a t/ e t c / h o s t s Listing12 : : 1 l o c a l h o s t 1 2 7 . 0 . 0 . 1 l o c a l h o s tl o g h o s t 1 9 2 . 1 6 8 . 1 . 1n a m e n o d e 1 9 2 . 1 6 8 . 1 . 2s e c n a m e n o d e 1 9 2 . 1 6 8 . 1 . 3d a t a n o d e 1 1 9 2 . 1 6 8 . 1 . 4d a t a n o d e 2 1 9 2 . 1 6 8 . 1 . 5d a t a n o d e 3 1 9 2 . 1 6 8 . 1 . 1 0 0g l o b a l z o n e Note:IfyouareusingtheglobalzoneasanNTPserver,youmustalsoadditshostnameandIPaddressto/ e t c / h o s t s . Verifytheclusterusingthev e r i f y c l u s t e r script: r o o t @ g l o b a l _ z o n e : ~ #/ u s r / l o c a l / h a d o o p h o l / S c r i p t s / v e r i f y c l u s t e r Iftheclustersetupisfine,youwillgetac l u s t e ri sv e r i f i e d message. Note:Ifthev e r i f y c l u s t e r scriptfailswithanerrormessage,checkthatthe/ e t c / h o s t s fileineveryzoneincludesallthezonesnamesas describedintheStep12,andthenrerunthev e r i f i a b i l i t y scriptagain. Exercise9:FormatHDFSfromtheNameNode

ConceptBreak:HadoopDistributedFileSystem(HDFS)
HDFSisadistributed,scalablefilesystem.HDFSstoresmetadataontheNameNode.ApplicationdataisstoredontheDataNodes,andeach DataNodeservesupblocksofdataoverthenetworkusingablockprotocolspecifictoHDFS.ThefilesystemusestheTCP/IPlayerfor communication.ClientsuseRemoteProcedureCall(RPC)tocommunicatewitheachother. TheDataNodesdonotrelyondataprotectionmechanisms,suchasRAID,tomakethedatadurable.Instead,thefilecontentisreplicatedon multipleDataNodesforreliability. Withthedefaultreplicationvalue(3),whichissetupintheh d f s s i t e . x m l file,dataisstoredonthreenodes.DataNodescantalktoeachotherin ordertorebalancedata,tomovecopiesaround,andtokeepthereplicationofdatahigh.InFigure7,wecanseethateverydatablockisreplicated acrossthreedatanodesbasedonthereplicationvalue. AnadvantageofusingHDFSisdataawarenessbetweentheJobTrackerandTaskTracker.TheJobTrackerschedulesmaporreducejobsto TaskTrackerwithanawarenessofthedatalocation.AnexampleofthiswouldbeifnodeAcontaineddata(x,y,z)andnodeBcontaineddata (a,b,c).ThentheJobTrackerwillschedulenodeBtoperformmaporreducetaskson(a,b,c)andnodeAwouldbescheduledtoperformmapor reducetaskson(x,y,z).Thisreducestheamountoftrafficthatgoesoverthenetworkandpreventsunnecessarydatatransfer..Thisdataawareness canhaveasignificantimpactonjobcompletiontimes,whichhasbeendemonstratedwhenrunningdataintensivejobs. FormoreinformationaboutHadoopHDFSseehttps://en.wikipedia.org/wiki/Hadoop.

Figure7 ToformatHDFS,runthefollowingcommandsandanswerYattheprompt:

r o o t @ g l o b a l _ z o n e : ~ #z l o g i nn a m e n o d e r o o t @ n a m e n o d e : ~ #m k d i rp/ h d f s / n a m e r o o t @ n a m e n o d e : ~ #c h o w nRh a d o o p : h a d o o p/ h d f s r o o t @ n a m e n o d e : ~ #s u-h a d o o p h a d o o p @ n a m e n o d e : $/ u s r / l o c a l / h a d o o p / b i n / h a d o o pn a m e n o d ef o r m a t 1 3 / 1 0 / 1 30 9 : 1 0 : 5 2I N F On a m e n o d e . N a m e N o d e :S T A R T U P _ M S G : / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * S T A R T U P _ M S G :S t a r t i n gN a m e N o d e S T A R T U P _ M S G : h o s t=n a m e n o d e / 1 9 2 . 1 6 8 . 1 . 1 S T A R T U P _ M S G : a r g s=[ f o r m a t ] S T A R T U P _ M S G : v e r s i o n=1 . 2 . 1 S T A R T U P _ M S G : b u i l d=h t t p s : / / s v n . a p a c h e . o r g / r e p o s / a s f / h a d o o p / c o m m o n / b r a n c h e s / b r a n c h 1 . 2r1 5 0 3 1 5 2 ;c o m p i l e db y' m a t t f 'o nM o nJ u S T A R T U P _ M S G : j a v a=1 . 6 . 0 _ 3 5 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / h a d o o p @ n a m e n o d e : $R e f o r m a tf i l e s y s t e mi n/ h d f s / n a m e?( Yo rN )Y OneveryDataNode(d a t a n o d e 1 ,d a t a n o d e 2 ,andd a t a n o d e 3 ),createaHadoopdatadirectorytostoretheHDFSblocks: r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 1 r o o t @ d a t a n o d e 1 : ~ #m k d i rp/ h d f s / d a t a r o o t @ d a t a n o d e 1 : ~ #c h o w nRh a d o o p : h a d o o p/ h d f s

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

11/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 2 r o o t @ d a t a n o d e 2 : ~ #m k d i rp/ h d f s / d a t a r o o t @ d a t a n o d e 2 : ~ #c h o w nRh a d o o p : h a d o o p/ h d f s r o o t @ g l o b a l _ z o n e : ~ #z l o g i nd a t a n o d e 3 r o o t @ d a t a n o d e 3 : ~ #m k d i rp/ h d f s / d a t a r o o t @ d a t a n o d e 3 : ~ #c h o w nRh a d o o p : h a d o o p/ h d f s Exercise10:StarttheHadoopCluster Table3describesthestartupscripts. Table3.StartupScripts FileName Description StartstheHDFSdaemons,theNameNode,andtheDataNodes.Usethisbefore s t a r t d f s . s h s t a r t m a p r e d . s h . s t o p d f s . s h StopstheHadoopDFSdaemons. s t a r t StartstheHadoopMapReducedaemons,theJobTracker,andtheTaskTrackers. m a p r e d . s h s t o p StopstheHadoopMapReducedaemons. m a p r e d . s h Fromthen a m e n o d e zone,starttheHadoopDFSdaemons,theNameNode,andtheDataNodesusingthefollowingcommands: r o o t @ g l o b a l _ z o n e : ~ #z l o g i nn a m e n o d e r o o t @ n a m e n o d e : ~ #s u-h a d o o p h a d o o p @ n a m e n o d e : $s t a r t d f s . s h s t a r t i n gn a m e n o d e ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p n a m e n o d e n a m e n o d e . o u t d a t a n o d e 2 :s t a r t i n gd a t a n o d e ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p d a t a n o d e d a t a n o d e 2 . o u t d a t a n o d e 1 :s t a r t i n gd a t a n o d e ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p d a t a n o d e d a t a n o d e 1 . o u t d a t a n o d e 3 :s t a r t i n gd a t a n o d e ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p d a t a n o d e d a t a n o d e 3 . o u t s e c n a m e n o d e :s t a r t i n gs e c o n d a r y n a m e n o d e ,l o g g i n gt o / v a r / l o g / h a d o o p / h a d o o p h a d o o p s e c o n d a r y n a m e n o d e s e c n a m e n o d e . o u t StarttheHadoopMap/Reducedaemons,theJobTracker,andtheTaskTrackersusingthefollowingcommand: h a d o o p @ n a m e n o d e : $s t a r t m a p r e d . s h s t a r t i n gj o b t r a c k e r ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p j o b t r a c k e r n a m e n o d e . o u t d a t a n o d e 1 :s t a r t i n gt a s k t r a c k e r ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p t a s k t r a c k e r d a t a n o d e 1 . o u t d a t a n o d e 3 :s t a r t i n gt a s k t r a c k e r ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p t a s k t r a c k e r d a t a n o d e 3 . o u t d a t a n o d e 2 :s t a r t i n gt a s k t r a c k e r ,l o g g i n gt o/ v a r / l o g / h a d o o p / h a d o o p h a d o o p t a s k t r a c k e r d a t a n o d e 2 . o u t Toviewacomprehensivestatusreport,executethefollowingcommandtochecktheclusterstatus.Thecommandwilloutputbasicstatisticsabout theclusterhealth,suchasNameNodedetails,thestatusofeachDataNode,anddiskcapacityamounts. h a d o o p @ n a m e n o d e : $h a d o o pd f s a d m i nr e p o r t C o n f i g u r e dC a p a c i t y :1 7 1 4 5 5 2 6 9 8 8 8( 1 5 9 . 6 8G B ) P r e s e n tC a p a c i t y :1 6 9 7 1 1 0 5 3 3 5 7( 1 5 8 . 0 6G B ) D F SR e m a i n i n g :1 6 9 7 1 1 0 2 8 7 3 6( 1 5 8 . 0 6G B ) D F SU s e d :2 4 6 2 1( 2 4 . 0 4K B ) D F SU s e d % :0 % U n d e rr e p l i c a t e db l o c k s :0 B l o c k sw i t hc o r r u p tr e p l i c a s :0 M i s s i n gb l o c k s :0 D a t a n o d e sa v a i l a b l e :3( 3t o t a l ,0d e a d ) . . . YoushouldseethatthreeDataNodesareavailable. Note:YoucanfindthesameinformationontheNameNodewebstatuspage(showninFigure8)ath t t p : / / < N a m e N o d eI P a d d r e s s > : 5 0 0 7 0 / d f s h e a l t h . j s p .ThenamenodeIPaddressis192.168.1.1.

Figure8 Exercise11:RunaMapReduceJob

ConceptBreak:MapReduce
MapReduceisaframeworkforprocessingparallelizableproblemsacrosshugedatasetsusingaclusterofcomputers. TheessentialideaofMapReduceisusingtwofunctionstograbdatafromasource:usingtheM a p ( ) functionandthenprocessingthedataacross aclusterofcomputersusingtheR e d u c e ( ) function.Specifically,M a p ( ) willapplyafunctiontoallthemembersofadatasetandpostaresultset, whichR e d u c e ( ) willthencollateandresolve. M a p ( ) andR e d u c e ( ) canberuninparallelandacrossmultiplesystems. FormoreinformationaboutMapReduce,seehttp://en.wikipedia.org/wiki/MapReduce. WewillusetheWordCountexample,whichreadstextfilesandcountshowoftenwordsoccur.Theinputandoutputconsistoftextfiles,eachlineof

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

12/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


whichcontainsawordandthenumberoftimesthewordoccurred,separatedbyatab.FormoreinformationaboutWordCount,see http://wiki.apache.org/hadoop/WordCount. Createtheinputdatadirectorywewillputtheinputfilesthere. h a d o o p @ n a m e n o d e : $h a d o o pf sm k d i r/ i n p u t d a t a Verifythedirectorycreation: h a d o o p @ n a m e n o d e : $h a d o o pd f sl s/ F o u n d1i t e m s d r w x r x r x -h a d o o ps u p e r g r o u p 02 0 1 3 1 0 1 32 3 : 4 5/ i n p u t d a t a Copythep g 2 0 4 1 7 . t x t fileyoudownloadedearliertoHDFSusingthefollowingcommand: Note:OracleOpenWorldattendeescanfindthep g 2 0 4 1 7 . t x t fileinthe/ u s r / l o c a l / h a d o o p h o l / D o c directory. h a d o o p @ n a m e n o d e : $h a d o o pd f sc o p y F r o m L o c a l/ u s r / l o c a l / h a d o o p h o l / D o c / p g 2 0 4 1 7 . t x t/ i n p u t d a t a VerifythatthefileislocatedonHDFS: h a d o o p @ n a m e n o d e : $h a d o o pd f sl s/ i n p u t d a t a F o u n d1i t e m s r w r r - 3h a d o o ps u p e r g r o u p 6 7 4 5 7 02 0 1 3 1 0 1 31 0 : 2 0/ i n p u t d a t a / p g 2 0 4 1 7 . t x t CreatetheoutputdirectorytheMapReducejobwillputitsoutputsinthisdirectory: h a d o o p @ n a m e n o d e : $h a d o o pf sm k d i r/ o u t p u t d a t a StarttheMapReducejobusingthefollowingcommand: h a d o o p @ n a m e n o d e : $h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a m p l e s 1 . 2 . 1 . j a r w o r d c o u n t/ i n p u t d a t a / p g 2 0 4 1 7 . t x t/ o u t p u t d a t a / o u t p u t 1 1 3 / 1 0 / 1 31 0 : 2 3 : 0 8I N F Oi n p u t . F i l e I n p u t F o r m a t :T o t a li n p u tp a t h st op r o c e s s:1 1 3 / 1 0 / 1 31 0 : 2 3 : 0 8W A R Nu t i l . N a t i v e C o d e L o a d e r :U n a b l et ol o a dn a t i v e h a d o o pl i b r a r y f o ry o u rp l a t f o r m . . .u s i n gb u i l t i n j a v ac l a s s e sw h e r ea p p l i c a b l e 1 3 / 1 0 / 1 31 0 : 2 3 : 0 8W A R Ns n a p p y . L o a d S n a p p y :S n a p p yn a t i v el i b r a r yn o tl o a d e d 1 3 / 1 0 / 1 31 0 : 2 3 : 0 9I N F Om a p r e d . J o b C l i e n t :R u n n i n gj o b :j o b _ 2 0 1 3 1 0 1 3 0 9 1 8 _ 0 0 1 0 1 3 / 1 0 / 1 31 0 : 2 3 : 1 0I N F Om a p r e d . J o b C l i e n t : m a p0 %r e d u c e0 % 1 3 / 1 0 / 1 31 0 : 2 3 : 1 9I N F Om a p r e d . J o b C l i e n t : m a p1 0 0 %r e d u c e0 % 1 3 / 1 0 / 1 31 0 : 2 3 : 2 9I N F Om a p r e d . J o b C l i e n t : m a p1 0 0 %r e d u c e3 3 % 1 3 / 1 0 / 1 31 0 : 2 3 : 3 1I N F Om a p r e d . J o b C l i e n t : m a p1 0 0 %r e d u c e1 0 0 % 1 3 / 1 0 / 1 31 0 : 2 3 : 3 4I N F Om a p r e d . J o b C l i e n t :J o bc o m p l e t e :j o b _ 2 0 1 3 1 0 1 3 0 9 1 8 _ 0 0 1 0 1 3 / 1 0 / 1 31 0 : 2 3 : 3 4I N F Om a p r e d . J o b C l i e n t :C o u n t e r s :2 6 Theprogramtakesabout60secondstoexecuteonthecluster. Allofthefilesintheinputdirectory(i n p u t d a t a inthecommandlineshownabove)arereadandthecountsforthewordsintheinputarewritten totheoutputdirectory(calledo u t p u t d a t a / o u t p u t 1 ). Verifytheoutputdata: h a d o o p @ n a m e n o d e : $h a d o o pd f sl s/ o u t p u t d a t a / o u t p u t 1 F o u n d3i t e m s r w r r - 3h a d o o ps u p e r g r o u p 02 0 1 3 1 0 1 31 0 : 3 0/ o u t p u t d a t a / o u t p u t 1 / _ S U C C E S S d r w x r x r x -h a d o o ps u p e r g r o u p 02 0 1 3 1 0 1 31 0 : 3 0/ o u t p u t d a t a / o u t p u t 1 / _ l o g s r w r r - 3h a d o o ps u p e r g r o u p 1 9 6 1 9 22 0 1 3 1 0 1 31 0 : 3 0/ o u t p u t d a t a / o u t p u t 1 / p a r t r 0 0 0 0 0 Exercise12:UseZFSEncryption

ConceptBreak:ZFSEncryption
OracleSolaris11addstransparentdataencryptionfunctionalitytoZFS.Alldataandfilesystemmetadata(suchasownership,accesscontrollists, quotainformation,andsoon)isencryptedwhenstoredpersistentlyintheZFSpool. AZFSpoolcansupportamixofencryptedandunencryptedZFSdatasets(filesystemsandZVOLs).Dataencryptioniscompletelytransparentto applicationsandotherOracleSolarisfileservices,suchasNFSorCIFS.SinceencryptionisafirstclassfeatureofZFS,weareabletosupport compression,encryption,anddeduplicationtogether.Encryptionkeymanagementforencrypteddatasetscanbedelegatedtousers,Oracle SolarisZones,orboth.OracleSolariswithZFSencryptionprovidesaveryflexiblesystemforsecuringdataatrest,anditdoesn'trequireany applicationchangesorqualification. FormoreinformationaboutZFSencryption,see"HowtoManageZFSDataEncryption." Theoutputdatacancontainsensitiveinformation,souseZFSencryptiontoprotecttheoutputdata. CreatetheencryptedZFSdataset: Note:Youneedtoprovidethepassphraseitmustbeatleasteightcharacters. r o o t @ n a m e n o d e : ~ #z f sc r e a t eoe n c r y p t i o n = o nr p o o l / e x p o r t / o u t p u t E n t e rp a s s p h r a s ef o r' r p o o l / e x p o r t / o u t p u t ' : E n t e ra g a i n : VerifythattheZFSdatasetisencrypted: r o o t @ n a m e n o d e : ~ #z f sg e ta l lr p o o l / e x p o r t / o u t p u t|g r e pe n c r y r p o o l / e x p o r t / o u t p u t e n c r y p t i o n o n l o c a l Changetheownership: r o o t @ n a m e n o d e : ~ #c h o w nh a d o o p : h a d o o p/ e x p o r t / o u t p u t CopytheoutputfilefromHDFSintoZFS: r o o t @ n a m e n o d e : ~ #s u-h a d o o p O r a c l eC o r p o r a t i o n S u n O S5 . 1 1

1 1 . 1

S e p t e m b e r2 0 1 2

h a d o o p @ n a m e n o d e : $h a d o o pd f sg e t m e r g e/ o u t p u t d a t a / o u t p u t 1/ e x p o r t / o u t p u t Analyzetheoutputtextfile.Eachlinecontainsawordandthenumberoftimesthewordoccurred,separatedbyatab. h a d o o p @ n a m e n o d e : $h e a d/ e x p o r t / o u t p u t / o u t p u t 1 " A 2 " A l p h a 1 " A l p h a , " 1 " A n 2 " A n d 1 " B O I L I N G " 2 " B a t e s i a n " 1 " B e t a 2 ProtecttheoutputtextfilebyunmountingtheZFSdataset,andthenunloadthewrappingkeyforanencrypteddatasetusingthefollowing command: r o o t @ n a m e n o d e : ~ #z f sk e yur p o o l / e x p o r t / o u t p u t

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

13/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


Ifthecommandissuccessful,thedatasetisnotaccessibleanditisunmounted. IfyouwanttomountthisZFSfilesystem,youneedtoprovidethepassphrase: r o o t @ n a m e n o d e : ~ #z f sm o u n tr p o o l / e x p o r t / o u t p u t E n t e rp a s s p h r a s ef o r' r p o o l / e x p o r t / o u t p u t ' : Byusingapassphrase,youensurethatonlythosewhoknowthepassphrasecanobservetheoutputfile. Exercise13:UseOracleSolarisDTraceforPerformanceMonitoring

ConceptBreak:OracleSolarisDTrace
OracleSolarisDTraceisacomprehensive,advancedtracingtoolfortroubleshootingsystematicproblemsinrealtime.Administrators,integrators, anddeveloperscanuseDTracetodynamicallyandsafelyobserveliveproductionsystems,includingbothapplicationsandtheoperatingsystem itself,forperformanceissues. DTraceallowsyoutoexploreasystemtounderstandhowitworks,trackdownproblemsacrossmanylayersofsoftware,andlocatethecauseof anyaberrantbehavior.Whetherit'satahighlevelglobaloverview,suchmemoryconsumptionorCPUtime,oratamuchfinergrainedlevel,such aswhatspecificfunctioncallsarebeingmade,DTracecanprovideoperationalinsightsthathavebeenmissinginthedatacenterbyenablingyou todothefollowing: Insert80,000+probepointsacrossallfacetsoftheoperatingsystem. Instrumentuserandsystemlevelsoftware. Useapowerfulandeasytousescriptinglanguageandcommandlineinterfaces. FormoreinformationaboutDTrace,seehttp://www.oracle.com/technetwork/serverstorage/solaris11/technologies/dtrace1930301.html. Openanotherterminalwindowandlogininton a m e n o d e asuserh a d o o p . RunthefollowingMapReducejob: h a d o o p @ n a m e n o d e : $h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a m p l e s 1 . 2 . 1 . j a r w o r d c o u n t/ i n p u t d a t a / p g 2 0 4 1 7 . t x t/ o u t p u t d a t a / o u t p u t 2 WhentheHadoopjobisrun,determinewhatprocessesareexecutedontheNameNode. Intheterminalwindow,runthefollowingDTracecommand: r o o t @ g l o b a l z o n e : ~ #d t r a c en' p r o c : : : e x e c s u c c e s s / s t r s t r ( z o n e n a m e , " n a m e n o d e " ) > 0 /{t r a c e ( c u r p s i n f o > p r _ p s a r g s ) ;} ' d t r a c e :d e s c r i p t i o n' p r o c : : : e x e c s u c c e s s 'm a t c h e d1p r o b e C P U I D 04 4 7 3 04 4 7 3 04 4 7 3 04 4 7 3 04 4 7 3 14 4 7 3 14 4 7 3 14 4 7 3 14 4 7 3 14 4 7 3 14 4 7 3 14 4 7 3 04 4 7 3 04 4 7 3 ^ C F U N C T I O N : N A M E e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s / u s r / b i n / e n vb a s h/ u s r / l o c a l / h a d o o p / b i n / h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a b a s h/ u s r / l o c a l / h a d o o p / b i n / h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a m p l e s 1 . 1 . 2 . j d i r n a m e/ u s r / l o c a l / h a d o o p 1 . 1 . 2 / l i b e x e c / d i r n a m e/ u s r / l o c a l / h a d o o p 1 . 1 . 2 / l i b e x e c / s e des // _ / g d i r n a m e/ u s r / l o c a l / h a d o o p / b i n / h a d o o p d i r n a m e-/ u s r / l o c a l / h a d o o p / b i n / . . / l i b e x e c / h a d o o p c o n f i g . s h b a s e n a m e-/ u s r / l o c a l / h a d o o p / b i n / . . / l i b e x e c / h a d o o p c o n f i g . s h b a s e n a m e/ u s r / l o c a l / h a d o o p 1 . 1 . 2 / l i b e x e c / u n a m e / u s r / j a v a / b i n / j a v aX m x 3 2 mo r g . a p a c h e . h a d o o p . u t i l . P l a t f o r m N a m e / u s r / j a v a / b i n / j a v aX m x 3 2 mo r g . a p a c h e . h a d o o p . u t i l . P l a t f o r m N a m e / u s r / j a v a / b i n / j a v aD p r o c _ j a rX m x 1 0 0 0 mD h a d o o p . l o g . d i r = / v a r / l o g / h a d o o pD h a d o / u s r / j a v a / b i n / j a v aD p r o c _ j a rX m x 1 0 0 0 mD h a d o o p . l o g . d i r = / v a r / l o g / h a d o o pD h a d o

Note:PressCtrlcinordertoseetheDTraceoutput. WhentheHadoopjobisrun,determinewhatfilesarewrittentotheNameNode. Note:IftheMapReducejobisfinished,youcanrunanotherjobwithadifferentoutputdirectory(forexample,/ o u t p u t d a t a / o u t p u t 3 ). Forexample: h a d o o p @ n a m e n o d e : $h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a m p l e s 1 . 2 . 1 . j a r w o r d c o u n t/ i n p u t d a t a / p g 2 0 4 1 7 . t x t/ o u t p u t d a t a / o u t p u t 3 r o o t @ g l o b a l z o n e : ~ #d t r a c en' s y s c a l l : : w r i t e : e n t r y / s t r s t r ( z o n e n a m e , " n a m e n o d e " ) > 0 /{ @ w r i t e [ f d s [ a r g 0 ] . f i _ p a t h n a m e ] = c o u n t ( ) ; } ' d t r a c e :d e s c r i p t i o n' s y s c a l l : : w r i t e : e n t r y 'm a t c h e d1p r o b e ^ C / z o n e s / n a m e n o d e / r o o t / t m p / h a d o o p h a d o o p / m a p r e d / l o c a l / j o b T r a c k e r / . j o b _ 2 0 1 3 0 7 1 8 1 4 5 7 _ 0 0 0 7 . x m l . c r c 1 / z o n e s / n a m e n o d e / r o o t / v a r / l o g / h a d o o p / h i s t o r y / . j o b _ 2 0 1 3 0 7 1 8 1 4 5 7 _ 0 0 0 7 _ c o n f . x m l . c r c 1 / z o n e s / n a m e n o d e / r o o t / d e v / p t s / 3 5 / z o n e s / n a m e n o d e / r o o t / v a r / l o g / h a d o o p / j o b _ 2 0 1 3 0 7 1 8 1 4 5 7 _ 0 0 0 7 _ c o n f . x m l 6 / z o n e s / n a m e n o d e / r o o t / t m p / h a d o o p h a d o o p / m a p r e d / l o c a l / j o b T r a c k e r / j o b _ 2 0 1 3 0 7 1 8 1 4 5 7 _ 0 0 0 7 . x m l 8 / z o n e s / n a m e n o d e / r o o t / v a r / l o g / h a d o o p / h i s t o r y / j o b _ 2 0 1 3 0 7 1 8 1 4 5 7 _ 0 0 0 7 _ c o n f . x m l 1 1 / z o n e s / n a m e n o d e / r o o t / v a r / l o g / h a d o o p / h a d o o p j o b t r a c k e r n a m e n o d e . l o g 1 3 / z o n e s / n a m e n o d e / r o o t / h d f s / n a m e / c u r r e n t / e d i t s . n e w 2 5 / z o n e s / n a m e n o d e / r o o t / v a r / l o g / h a d o o p / h a d o o p n a m e n o d e n a m e n o d e . l o g 4 5 / z o n e s / n a m e n o d e / r o o t / d e v / p o l l 2 0 7 < u n k n o w n > 3 1 3 1 6 5 5 Note:PressCtrlcinordertoseetheDTraceoutput. WhentheHadoopjobisrun,determinewhatprocessesareexecutedontheDataNode: r o o t @ g l o b a l z o n e : ~ #d t r a c en' p r o c : : : e x e c s u c c e s s / s t r s t r ( z o n e n a m e , " d a t a n o d e 1 " ) > 0 /{t r a c e ( c u r p s i n f o > p r _ p s a r g s ) ;} ' d t r a c e :d e s c r i p t i o n' p r o c : : : e x e c s u c c e s s 'm a t c h e d1p r o b e C P U I D 08 8 3 3 08 8 3 3 08 8 3 3 18 8 3 3 28 8 3 3 28 8 3 3 28 8 3 3 38 8 3 3 38 8 3 3 38 8 3 3 38 8 3 3 38 8 3 3 38 8 3 3 F U N C T I O N : N A M E e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s e x e c _ c o m m o n : e x e c s u c c e s s d i r n a m e/ u s r / l o c a l / h a d o o p / b i n / h a d o o p d i r n a m e/ u s r / l o c a l / h a d o o p / l i b e x e c / s e des // _ / g d i r n a m e-/ u s r / l o c a l / h a d o o p / b i n / . . / l i b e x e c / h a d o o p c o n f i g . s h b a s e n a m e/ u s r / l o c a l / h a d o o p / l i b e x e c / / u s r / j a v a / b i n / j a v aX m x 3 2 mo r g . a p a c h e . h a d o o p . u t i l . P l a t f o r m N a m e / u s r / j a v a / b i n / j a v aX m x 3 2 mo r g . a p a c h e . h a d o o p . u t i l . P l a t f o r m N a m e / u s r / b i n / e n vb a s h/ u s r / l o c a l / h a d o o p / b i n / h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a b a s h/ u s r / l o c a l / h a d o o p / b i n / h a d o o pj a r/ u s r / l o c a l / h a d o o p / h a d o o p e x a m p l e s 1 . 0 . 4 . j b a s e n a m e-/ u s r / l o c a l / h a d o o p / b i n / . . / l i b e x e c / h a d o o p c o n f i g . s h d i r n a m e/ u s r / l o c a l / h a d o o p / l i b e x e c / u n a m e / u s r / j a v a / b i n / j a v aD p r o c _ j a rX m x 1 0 0 0 mD h a d o o p . l o g . d i r = / v a r / l o g / h a d o o pD h a d o

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

14/15

2/21/2014

How to Set Up a Hadoop Cluster Using Oracle Solaris


/ u s r / j a v a / b i n / j a v aD p r o c _ j a rX m x 1 0 0 0 mD h a d o o p . l o g . d i r = / v a r / l o g / h a d o o pD h a d o ^ C WhentheHadoopjobisrun,determinewhatfilesarewrittenontheDataNode: (Therewere222linesofoutput,whichwerereducedforreadability.) r o o t @ g l o b a l z o n e : ~ #d t r a c en' s y s c a l l : : w r i t e : e n t r y / s t r s t r ( z o n e n a m e , " d a t a n o d e 1 " ) > 0 /{ @ w r i t e [ f d s [ a r g 0 ] . f i _ p a t h n a m e ] = c o u n t ( ) ; } ' d t r a c e :d e s c r i p t i o n' s y s c a l l : : w r i t e : e n t r y 'm a t c h e d1p r o b e ^ C / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 5 4 0 4 9 4 6 1 6 1 7 8 1 2 3 9 2 0 3 1 / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 5 4 0 4 9 4 6 1 6 1 7 8 1 2 3 9 2 0 3 _ 1 1 0 3 . m e t a / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 6 1 3 6 0 3 5 6 9 6 0 5 7 4 5 9 5 3 6 1 / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 6 1 3 6 0 3 5 6 9 6 0 5 7 4 5 9 5 3 6 _ 1 1 0 2 . m e t a / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 8 4 2 0 9 6 6 4 3 3 0 4 1 0 6 4 0 6 6 1 / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 8 4 2 0 9 6 6 4 3 3 0 4 1 0 6 4 0 6 6 _ 1 1 0 5 . m e t a / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 1 7 9 2 9 2 5 2 3 3 4 2 0 1 8 7 4 8 1 1 / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 1 7 9 2 9 2 5 2 3 3 4 2 0 1 8 7 4 8 1 _ 1 1 0 1 . m e t a / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 4 1 0 8 4 3 5 2 5 0 6 8 8 9 5 3 0 6 4 1 / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 4 1 0 8 4 3 5 2 5 0 6 8 8 9 5 3 0 6 4 _ 1 1 0 6 . m e t a / z o n e s / d a t a n o d e 1 / r o o t / h d f s / d a t a / b l o c k s B e i n g W r i t t e n / b l k _ 8 5 0 3 7 3 2 3 4 8 7 0 5 8 4 7 9 6 4 DeterminethetotalamountofHDFSdatawrittenfortheDataNodes: 38 8 3 3 e x e c _ c o m m o n : e x e c s u c c e s s

1 1 1 1 1

r o o t @ g l o b a l z o n e : ~ #d t r a c en' s y s c a l l : : w r i t e : e n t r y/ ( s t r s t r ( z o n e n a m e , " d a t a n o d e 1 " ) ! = 0| |s t r s t r ( z o n e n a m e , " d a t a n o d e 2 " ) ! = 0| | s t r s t r ( z o n e n a m e , " d a t a n o d e 3 " ) ! = 0)& &s t r s t r ( f d s [ a r g 0 ] . f i _ p a t h n a m e , " h d f s " ) ! = 0 & &s t r s t r ( f d s [ a r g 0 ] . f i _ p a t h n a m e , " b l o c k s B e i n g W r i t t e n " ) > 0 / {@ w r i t e [ f d s [ a r g 0 ] . f i _ p a t h n a m e ] = s u m ( a r g 2 ) ;} ' ^ C Summary Inthislab,welearnedhowtosetupaHadoopclusterusingOracleSolaris11technologiessuchasOracleSolarisZones,ZFS,andnetwork virtualizationandDTrace. SeeAlso HadoopandHDFS Hadoopframework "HowtoControlYourApplication'sNetworkBandwidth" "HowtoGetStartedCreatingOracleSolarisZonesinOracleSolaris11" "HowtoSetUpaHadoopClusterUsingOracleSolarisZones" "HowtoBuildNativeHadoopLibrariesforOracleSolaris11" MapReduce WordCount "HowtoManageZFSDataEncryption" DTrace AbouttheAuthor OrgadKimchiisaprincipalsoftwareengineerontheISVEngineeringteamatOracle(formerlySunMicrosystems).For6yearshehasspecialized invirtualization,bigdata,andcloudcomputingtechnologies. Revision1.0,10/21/2013 Followus: Blog|Facebook|Twitter|YouTube

Emailthispage

PrinterView

ORACLECLOUD LearnAboutOracleCloud GetaFreeTrial LearnAboutPaaS LearnAboutSaaS LearnAboutIaaS

JAVA LearnAboutJava DownloadJavafor Consumers DownloadJavafor Developers JavaResourcesfor Developers JavaCloudService JavaMagazine

CUSTOMERSANDEVENTS ExploreandReadCustomer Stories AllOracleEvents OracleOpenWorld JavaOne

COMMUNITIES Blogs DiscussionForums Wikis OracleACEs UserGroups SocialMediaChannels

SERVICESANDSTORE LogIntoMyOracleSupport TrainingandCertification BecomeaPartner FindaPartnerSolution PurchasefromtheOracle Store CONTACTANDCHAT Phone:+1.800.633.0738 GlobalContacts OracleSupport PartnerSupport

Subscribe Careers ContactUs SiteMaps LegalNotices TermsofUse Privacy CookiePreferences OracleMobile

http://www.oracle.com/technetwork/systems/hands-on-labs/hol-setup-hadoop-solaris-2041770.html

15/15

Das könnte Ihnen auch gefallen