Linux下Hadoop的分布式配置和使用_第1頁
Linux下Hadoop的分布式配置和使用_第2頁
Linux下Hadoop的分布式配置和使用_第3頁
Linux下Hadoop的分布式配置和使用_第4頁
Linux下Hadoop的分布式配置和使用_第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1 2 Hadoop配置建議所有配置文件中使用主機名進(jìn)行配置,并且機器上應(yīng)在防0集群網(wǎng)絡(luò)環(huán)境介紹所有節(jié)點上均創(chuàng)建了一個hadoop用戶,用戶主目錄是/home/hadoop。將所有節(jié)點的名字和IP地址寫入其中,寫入如下內(nèi)容,注意注釋掉3下:namenode收到加密數(shù)之后再用私鑰進(jìn)行解密,并將解密數(shù)回傳給datanode,上生成密碼對,所有節(jié)點上執(zhí)行以下命令:Generatingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/home/hadoop/.ssh/id_rsa):默認(rèn)路徑Enterpassphrase(emptyfornopassphrase):回車,空密碼Entersamepassphraseagain:Youridentificationhasbeensavedin/home/hadoop/.ssh/id_rsa.Yourpublickeyhasbeensavedin/home/hadoop/.ssh/id_rsa.pub.cpid_rsa.pubauthorized_keysnamenode的公鑰使用SSH協(xié)議將namenode的公鑰信息authorized_key復(fù)s制到所有DataNod.ssh目錄下。4cpid_rsa.pubdatanode01.id_rsa.pubcpid_rsa.pubdatanoden.id_rsa.pubesapubauthorizedkeysnamenodecatdatanode01.id_rsa.pub>>authorized_keys...catdatanode0n.id_rsa.pub>>authorized_keys53.1安裝JDK1.6裝包jdk-6u13-linux-i586.bin,復(fù)制到目錄/usr/program下,在命令行進(jìn)入該目Chown-Rnutch:nutch/usr/program#setjavaenvironmentexportJAVA_HOME=/usr/program/jdk1.6.0_13/exportJRE_HOME=/usr/program/jdk1.6.0_13/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH配置完畢,在命令行中使用命令”java-version”可以判斷是否成功。在amenodeetcprofile執(zhí)行命令:scp/etc/profileroot@datanodeip:/etc/profile6hexportJAVA_HOME=/usr/program/jdk1.6.0_13/<<?xmlversion="1.0"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><!--Putsite-specificpropertyoverridesinthisfile.--><configuration><!—core-site.xml--><property><name></name><value>hdfs://gc03vm12:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/hadooptmp</value>ion</property><!—hdfs-site.xml--><property><name>.dir</name><value>/usr/local/hadoop/hdfs/name</value></property><property><name>dfs.data.dir</name><value>/usr/local/hadoop/hdfs/data</value><description>datanode上數(shù)據(jù)塊的物理存儲位置</description>7</</property><property><name>dfs.replication</name><value>2</value></property><!—mapred-site.xml--><property><name>mapred.job.tracker</name><value>gc03vm12:9001</value>njobtrackerURIdescription</property><property><name>mapred.local.dir</name><value>/usr/local/hadoop/mapred/local</value></property><property><name>mapred.system.dir</name><value>/tmp/hadoop/mapred/system</value></property></configuration>8bin/hadoopnamenode–formatetasktracker2。##jps8383JobTracker8733Jps8312SecondaryNameNode8174NameNode##jps7636DataNode7962Jps7749TaskTrackerbin/hadoopdfsadmin–reportConfiguredConfiguredCapacity:16030539776(14.93GB)PresentCapacity:7813902336(7.28GB)DFSRemaining:7748620288(7.22GB)DFSUsed:65282048(62.26MB)DFSUsed%:0.84%Datanodesavailable:2(2total,0dead)Name:42:500109Name:Name:44:50010DecommissionStatus:NormalConfiguredCapacity:8015269888(7.46GB)DFSUsed:32641024(31.13MB)NonDFSUsed:3851784192(3.59GB)DFSRemaining:4130844672(3.85GB)DFSUsed%:0.41%DFSRemaining%:51.54%Lastcontact:ThuMay1306:17:59CST2010DecommissionStatus:NormalConfiguredCapacity:8015269888(7.46GB)DFSUsed:32641024(31.13MB)NonDFSUsed:4364853248(4.07GB)DFSRemaining:3617775616(3.37GB)DFSUsed%:0.41%DFSRemaining%:45.14%Lastcontact:ThuMay1306:17:57CST20109.L.L域-嶺濕置(2)集群之外的機器請保證和Hadoop集群是網(wǎng)絡(luò)連通的,并且安裝了Hadoop解(壓安裝包即可)并在conf/hadoop-site.xl做了相關(guān)配置,至少配置如下:<<configuration><!—core-site.xml--><property><name></name><value>hdfs://gc04vm12:9000</value><description></description></property><!—<!—mapred-site.xml--><property><name>mapred.job.tracker</name><value>gc03vm12:9001</value>njobtrackerURIdescription</property></configuration>[root@gc03vm12nutch-1.0]#bin/hadoopdfs-ls/Found3itemsdrwxr-xr-x-hadoopsupergroup02010-05-2100:42/tmpdrwxr-xr-x-hadoopsupergroup02010-05-2100:53/userdrwxr-xr-x-hadoopsupergroup02010-05-2100:55/usrsls:Cannotaccess.:Nosuchfileordirectory.注意:這里的當(dāng)前用戶主目錄是客戶機中當(dāng)前登錄用戶的主目錄,即HDFS注意:若此處沒有指定組,則默認(rèn)將root用戶分配到supergroup組,bin/hadoopdfs-chown-Rroot/user/root[root@gc03vm12nutch-1.0]#bin/hadoopdfs–copyFromLocal/local/xDFSHadoop-site.xml文件中的dfs.replication參數(shù)指定了數(shù)據(jù)塊的副本數(shù)LinuxLinuxmrdrwx-wx-wx-nutchsupergroup/tmp/hadoop/mapred/system(即此)hdfs://namenode:端口/xxxx/xxxxIhdfs://gc04vm12:9000/tmp/hadoop/mapred/system(2)集群之外的機器請保證和Hadoop集群是網(wǎng)絡(luò)連通的,并且安裝了Hadoop解(壓安裝包即可)并在conf/hadoop-site.xl做了相關(guān)配置,至少配置如下:<<configuration><!—core-site.xml--><property><name></name><value>hdfs://gc04vm12:9000</value><description></description></property><!—mapred-site.xml--><property><name>mapred.job.tracker</name><value>gc03vm12:9001</value>njobtrackerURIdescription</property></configuration>命令執(zhí)行完畢,在頁面http://namenodeip:50030/中能夠看到作業(yè)執(zhí)行情程序?qū)⒔y(tǒng)計mytest目錄下的所有文本文件中詞語的數(shù)量,并將結(jié)果輸出到這里介紹一個向HDFS中寫入數(shù)據(jù)的例子(注意不是MR程序)來說明編寫Hadoop應(yīng)用程序并放到集群上運行的步驟。(1)客戶端編寫應(yīng)用程序并編譯運行,進(jìn)行測試。編寫程序一般需要引入hadoop相關(guān)jar包或者直接使用hadoop整個程序包,Operatorjarbin/hadoopfs–copyFromLocallocaldst這里使用的命令是:bin/hadoopjar~/jarseclipse/dfsOperator.jarDFSOperatorp<<configuration><!—core-site.xml--><property><name></name><value>hdfs://gc04vm12:9000</value><description></description></</property><!—mapred-site.xml--><property><name>mapred.job.tracker</name><value>gc03vm12:9001</value>njobtrackerURIdescription</property></configuration>p<?xmlversion="1.0"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><!--Putsite-specificpropertyoverridesinthisfile.--><configuration><!—core-site.xml--><property><name></name><value>hdfs://localhost:9000</value></property><!—hdfs-site.xml--><property><name>dfs.replication</name><value>1</value></property><!—mapred-site.xml--><<property><name>mapred.job.tracker</name><value>localhost:9001</value>njobtrackerURIdescription</property></configuration>eNamedefaultWyjobVERYHIGHpublicclassDFSOperator{publicstaticvoidmain(Stringargs[]){Configurationconf=newConfiguration();//itwillreadconf/*.xml,suchasf//Pathf=newPath("hdfs:///javawrhdfsfile");//hdfsrootdirectory,itmustbethreeorone"/"http://Pathf=newPath("hdfs:/javawrhdfsfile");//absolutepath,f.isAbsolute()isleilefsgcvmjavawrhdfsfileii}out.close();System.out.println("writefinished,itproducedafile:"+f.toString());//System.out.println("readthefile:"+f.toString());FSDataInputStreamin=fs.open(f);IOUtils.copyBytes(in,System.out,4096,false);System.out.println("readfinished!");IOUtils.closeStream(out);}catch(IOExceptione){e.printStackTrace();}}}附錄資料:不需要的可以自行刪除DB2安裝配置學(xué)習(xí)筆記1、安裝前準(zhǔn)備工作將下載的安裝文件上傳到待安裝的LINUX機器,解壓縮到某個目錄,產(chǎn)生了一個名為Server的子目錄,進(jìn)入子目錄,可以看到有多個可執(zhí)行的腳本,其中db2prereqcheck一個db2目錄,保存了需要安裝的二進(jìn)制文件。執(zhí)行db2prereqcheck,如果沒有返回任何結(jié)果,表明系統(tǒng)符合DB2安裝的先決條件,可以進(jìn)入下一步安裝。如果返回信息,請按信息提示修改配置,然后再次運行,直到?jīng)]有錯誤提示。[[root@redflag11012601app]#llv*gz-rw-r--r--1rootroot81057639205-0319:44v9.7_linuxx64_server.tar.gz[[root@redflag11012601app]#tarxzfv9.7_linuxx64_server.tar.gz[[root@redflag11012601app]#cdserver[[root@redflag11012601server]#ll總計64drwxr-xr-x6binbin40962009-11-16db2-r-xr-xr-x1binbin53402009-11-16db2ckupgrade-r-xr-xr-x1binbin52932009-11-16db2_deinstall-r-xr-xr-x1binbin51632009-11-16db2_install-r-xr-xr-x1binbin51272009-11-16db2ls-r-xr-xr-x1binbin51452009-11-16db2prereqcheck-r-xr-xr-x1binbin51452009-11-16db2setupdrwxr-xr-x15binbin40962009-11-16doc-r-xr-xr-x1binbin51812009-11-16installFixPack[[root@redflag11012601server]#./db2prereqcheckDB據(jù)庫軟件以操作系統(tǒng)root用戶執(zhí)行db2_install,根據(jù)提示操作,設(shè)定安裝目錄和要安裝的版本ESE由于操作系統(tǒng)默認(rèn)語言為簡體中文,安裝界面也是中文提示的,而且,必須輸入中文"是"才能更改安裝目錄。和大多數(shù)unix下的軟件一樣,軟件安裝只是整個安裝過程很小的一步,要使軟件能正常工作,大量的配置和管理任務(wù)還在后頭。[[root@redflag11012601server]#./db2_install用于安裝產(chǎn)品的缺省目錄-/opt/ibm/db2/V9.7***********************************************************要選擇另一個目錄用于安裝嗎?[是/否Y要選擇另一個目錄用于安裝嗎?[是/否]要選擇另一個目錄用于安裝嗎?[是/否]是輸入安裝目錄的完整路徑名/user1/ibm/db2/V9.7指定下列其中一個關(guān)鍵字以安裝DB2產(chǎn)品。ESE--企業(yè)版CONSVWSE--工作組版EXP--易捷版PE--個人版CLIENT按“幫助”以重新顯示產(chǎn)品名稱。***********************************************************正在初始化DB2安裝。任務(wù)#1啟動描述:正在檢查許可協(xié)議的接受情況估計時間1秒任務(wù)#1結(jié)束任務(wù)#47啟動描述:正在注冊DB2更新服務(wù)估計時間30秒任務(wù)#47結(jié)束任務(wù)#48啟動描述:正在更新全局概要文件注冊表估計時間3秒任務(wù)#48結(jié)束有關(guān)更多信息,請參閱"/tmp/db2_install.log.27290"上的DB2安裝日志。本安裝因為是評估版無須這一步。用戶可以在90天內(nèi)完全測試全部功能。對于購買了se4、創(chuàng)建DB2運行所需要的用戶組和用戶DB2沒有獨立的用戶管理系統(tǒng),必須借用OS用戶來提供安全性認(rèn)證,所以這里需要創(chuàng)建LINUX用戶和組。一共創(chuàng)建了3個組,每個組一個用戶。其作用和含義分別是:biadm其中管理實例的用戶db2inst1是最常用的,我們?yōu)樗O(shè)置口令db2,以便下面步驟的正常操作。創(chuàng)建完成后,執(zhí)行如下命令查看/etc/group和/etc/passwd,檢查用戶組和用戶[[root@redflag11012602server]#groupadd-g901db2grp[[root@redflag11012602server]#groupadd-g902db2fgrp[[root@redflag11012602server]#groupadd-g903db2agrp[root@redflag11012602server]#useradd-gdb2grp-u801-d/home/db2inst1-m-s/bin/shdb2inst1[root@redflag11012602server]#useradd-gdb2fgrp-u802-d/home/db2fenc-m-s/bin/shdb2fenc[root@redflag11012602server]#useradd-gdb2agrp-u803-d/home/db2das-m-s/bin/shdb2das[[root@redflag11012602server]#passwddb2inst1Changingpasswordforuserdb2inst1.NewUNIXpassword:BADPASSWORD:itisWAYtooshortRetypenewUNIXpassword:passwd:allauthenticationtokensupdatedsuccessfully.[[root@redflag11012602server]#more/etc/group|grepdb2db2grp:x:901:db2fgrp:x:902:db2agrp:x:903:[[root@redflag11012602server]#more/etc/passwd|grepdb2db2inst1:x:801:901::/home/db2inst1:/bin/shdb2fenc:x:802:902::/home/db2fenc:/bin/shdb2das:x:803:903::/home/db2das:/bin/sh、創(chuàng)建實例dascrt創(chuàng)建的是DB2adminstrationserver,每臺服務(wù)器只有一個這種server,為進(jìn)行DB2管理(比如運行控制中心)所必須,同時指定其管理用戶是db2das;db2icrt創(chuàng)建的是實例,其名字一般和管理用戶名一樣,這里均為db2inst1;創(chuàng)建成功以后,系統(tǒng)在db2das和db2inst1相應(yīng)的home目錄下產(chǎn)生了一個子目錄。dbDBINSTANCE路徑,庫的路徑等,必須執(zhí)行它,才能進(jìn)行各種操作,或者將.~/sqllib/db2profile一行加入/home/db2inst1/.profile文件(因為創(chuàng)建dbinstshellbinshshell用不同的profile文件,比如bash則采用.bash_profile),這樣當(dāng)切換到db2inst1用戶時就會自動執(zhí)行這個腳本。db2das用戶的設(shè)置腳本文件位于/home/db2das/das/dasprofile,同樣需要執(zhí)行這個腳本,才能執(zhí)行db2admin等命令。用db2ilist命令可以查出當(dāng)前已創(chuàng)建的實例名。[[root@redflag11012602server]#cd/user1/ibm/db2/V9.7/instance[[root@redflag11012602instance]#./dascrt-udb2dasSQL4406WTheDB2AdministrationServerwasstartedsuccessfully.DBI1070IProgramdascrtcompletedsuccessfully.[[root@redflag11012602instance]#./db2icrt-udb2inst1db2inst1DBI1070IProgramdb2icrtcompletedsuccessfully.--sh-3.2$db2ilistdb2inst1root用戶也可以執(zhí)行db2adminstart命令。如果首次執(zhí)行,則會提示如下橫線以下信[[root@redflag11012601das]#su-db2das-sh-3.2$.das/dasprofile-sh-3.2$db2adminstartSQL4406WTheDB2AdministrationServerwasstartedsuccessfully.[[root@redflag11012602instance]#su-db2inst1-sh-3.2$lsDesktopsqllib-sh-3.2$.sqllib/db2profile-sh-3.2$db2start05/05/201120:13:0800SQL1063NDB2STARTprocessingwassuccessful.SQL1063NDB2STARTprocessingwassuccessful.[[root@redflag11012601bin]#./db2adminstartSQL4409WTheDB2AdministrationServerisalreadyactive.7、創(chuàng)建和訪問數(shù)據(jù)庫首先要啟動數(shù)據(jù)庫實例,切換到db2inst1用戶,執(zhí)行db2start命令啟動數(shù)據(jù)庫實例。若需要,首先用db2stop命令停止實例,如果db2stop命令不能成功執(zhí)行,可運行下面的命令來關(guān)閉數(shù)據(jù)庫實例。首先在db2inst1用戶下強制關(guān)閉實例上的所有應(yīng)用程序。$$db2forceapplicationsallp啟動數(shù)據(jù)庫實例后用db2createdatabase命令創(chuàng)建數(shù)據(jù)庫,可以設(shè)定字符集、頁大小數(shù)據(jù)庫創(chuàng)建成功后,可以用db2connectto命令連接數(shù)據(jù)庫。然后就可以進(jìn)行創(chuàng)建表、如果要盡快測試db2數(shù)據(jù)庫的功能,也可以用命令創(chuàng)建db2自帶的sample數(shù)據(jù)庫。--sh-3.2$db2stop2011-05-0911:01:5600SQL1025NThedatabasemanagerwasnotstoppedbecausedatabasesarestillactive.SQL1025NThedatabasemanagerwasnotstoppedbecausedatabasesarestillactive.--sh-3.2$db2forceapplicationsallDB20000ITheFORCEAPPLICATIONcommandcompletedsuccessfully.DB21024IThiscommandisasynchronousandmaynotbeeffectiveimmediately.--sh-3.2$db2stop2011-05-0911:06:0300SQL1064NDB2STOPprocessingwassuccessful.SQL1064NDB2STOPprocessingwassuccessful.--sh-3.2$db2start05/08/201111:14:2400SQL1063NDB2STARTprocessingwassuccessful.SQLSQL1063NDB2STARTprocessingwassuccessful.-sh-3.2$db2"createdatabasetpchUSINGCODESETUTF-8TERRITORYCNpagesize32KDB20000ITheCREATEDATABASEcommandcompletedsuccessfully.--sh-3.2$db2connecttotpch;DatabaseConnectionInformationDatabaseserver=DB2/LINUXX86649.7.4SQLauthorizationID=DB2INST1Localdatabasealias=TPCHdbdb2=>select*fromdual;YX1record(s)selected.sh-3.2$cd/user1/ibm/db2/V9.7/bin--sh-3.2$./db2samplStartingtheDB2instance...Creatingdatabase"SAMPLE"...Connectingtodatabase"SAMPLE"...Creatingtablesanddatainschema"DB2INST1"...CreatingtableswithXMLcolumnsandXMLdatainschema"DB2INST1"...StoppingtheDB2instance...'db2sampl'processingcomplete.注意:如果創(chuàng)建數(shù)據(jù)庫時沒有指定創(chuàng)建位置,默認(rèn)創(chuàng)建在/home/db2inst1/實例名下,在此用Linux的ln-s命令將其他位置映射到此目錄下。更好的辦法是在一開始做好容量規(guī)劃,將數(shù)據(jù)庫創(chuàng)建目錄指定到大容量的目錄,具體命令行寫法參考文檔。軟連接的例子如下:[[db2inst1@aix:/home/db2inst1]#>cp-Rdb2inst1/arch/IBM/ts[[db2inst1@aix:/home/db2inst1]#>du-s/arch/IBM/ts/db2inst120111984/arch/IBM/ts/db2inst1[[db2inst1@aix:/home/db2inst1]#>mvdb2inst1db2inst1ori[[db2inst1@aix:/home/db2inst1]#>ls-ltotal8drwxrwxr-x3db2inst1db2iadm1256May1016:03db2inst1oridrwxrwsr-t23db2inst1db2iadm14096May1015:49sqllib[[db2inst1@aix:/home/db2inst1]#>ln-s/arch/IBM/ts/db2inst1db2inst1ootdbiautodbinstLINUX這一步是可選的。用戶應(yīng)該按自己的實際需要決定是否設(shè)置。選項-on表示自動啟動,-off表示不隨操作系統(tǒng)啟動自動啟動。[[root@redflag11012601das]#cd/user1/ibm/db2/V9.7/instance[root@redflag11012601instance]#./db2iauto-ondb2inst1DB2軟件在創(chuàng)建實例的過程中,自動在操作系統(tǒng)中增加了相關(guān)的服務(wù),并指定了相應(yīng)的P首先查看/etc/services中db2各個服務(wù)的端口號,這里DB2_db2inst1默認(rèn)端口就是60000。修改DB2的服務(wù)端口為上述默認(rèn)端口號。db2updatedbmcfgusingSVCENAME命令提示,需要重新啟動實例,再用clpplus命令驗證網(wǎng)絡(luò)設(shè)置成功--sh-3.2$db2setDB2COMM=TCPIP--sh-3.2$db2setDB2_COMPATIBILITY_VECTOR=ORADB2_EXTENDED_OPTIMIZATION=onDBLIKEVARCHAR=y,yDB2_HASH_JOIN=YDB2MEMMAXFREE=8000000DB2MEMDISCLAIM=YDB2_MMAP_WRITE=NODB2_MMAP_READ=NODB2_RR_TO_RS=ONDB2COMM=TCPIP--sh-3.2$db2getdbmcfg|grepSVCENAMETCP/IPServicename(SVCENAME)=SSLservicename(SSL_SVCENAME)=--sh-3.2$tail/etc/servicescom-bardac-dw48556/udp#com-bardac-dwiqobject48619/tcp#iqobjectiqobject48619/udp#iqobject##Localservicescsync2005/tcp#CyrusIMAPReplicationDaemoncsync2005/udp#CyrusIMAPReplicationDaemonDB2_db2inst160000/tcpDB2_db2inst1_160001/tcpDB2_db2inst1_260002/tcpDB2_db2inst1_END60003/tcp--sh-3.2$db2updatedbmcfgusingSVCENAME60000DB20000ITheUPDATEDATABASEMANAGERCONFIGURATIONcommandcompletedsuccessfully.SQL1362WOneormoreoftheparameterssubmittedforimmediatemodificationwerenotchangeddynamically.ClientchangeswillnotbeeffectiveuntilthenexttimetheapplicationisstartedortheTERMINATEcommandhasbeenissued.ServerchangeswillnotbeeffectiveuntilthenextDB2STARTcommand.--sh-3.2$db2stopforce2011-05-0819:36:0000SQL1064NDB2STOPprocessingwassuccessful.SQL1064NDB2STOPprocessingwassuccessful.--sh-3.2$db2start05/08/201119:36:0600SQL1063NDB2STARTprocessingwassuccessful.SQL1063NDB2STARTprocessingwassuccessful.--sh-3.2$clpplusdb2inst1/db2@localhost/sample數(shù)據(jù)庫連接信息主機名=localhost數(shù)據(jù)庫服務(wù)器=DB2/LINUXX8664SQL09071SQL授權(quán)標(biāo)識=db2inst1本地數(shù)據(jù)庫別名=SAMPLE端口=60000CLPPlus:版本1.1Copyright??2009,IBMCORPORATION.Allrightsreserved.SQL>root用戶利用vi文本編輯器在/etc/services中按如下格式添加一行,保存修改。然后再執(zhí)行上述步驟,同時db2updatedbmcfgusingSVCENAME命令后面要用自定義的服務(wù)名。tpch50000/tcp#DB2連接服務(wù)端口--sh-3.2$db2updatedbmcfgusingSVCENAMEtpch--sh-3.2$clpplusdb2inst1/db2@localhost:50000/tpchamperformedanoperationwhichrequiresit.DB250006E:命令行處理器擴展器(CLPPlus)未能啟動。--sh-3.2$clpplus-nwdb2inst1/db2@localhost:50000/tpchCLPPlus:版本1.4Copyright??2009,2011,IBMCORPORATION.Allrightsreserved.主機名=localhost數(shù)據(jù)庫服務(wù)器=DB2/LINUXX8664SQL09074SQL授權(quán)標(biāo)識=db2inst1本地數(shù)據(jù)庫別名=TPCH端口=50000SQL>settimionSQL>selectsysdatefromdual;12011-05-0815:32:36SQL>w如果不加這個參數(shù),則無法在文字終端中使用。注意:對于需要網(wǎng)絡(luò)訪問,包括jdbc方式訪問數(shù)據(jù)庫,這一步必不可少。否則,雖然usjdbc1、幾個概念在前面安裝配置過程中,我們已經(jīng)接觸到一些DB2數(shù)據(jù)庫的概念,其中有些概念與其它數(shù)據(jù)庫有所區(qū)別。下面著重解釋一下系統(tǒng)、數(shù)據(jù)庫軟件、實例和數(shù)據(jù)庫的關(guān)系。(1)數(shù)據(jù)庫軟件可以在單臺機器上安裝多個DB2產(chǎn)品。每個DB2副本可以處于相同代碼級別,也可DB2產(chǎn)品的root用戶安裝可安裝到您選擇的安裝路徑中。缺省安裝路徑,對于Linux比如/opt/ibm/db2/V9.7_1。僅在使用“DB2安裝”向?qū)О惭bDB2副本時,缺省路徑的序號才會自動遞增。無論使用哪種安裝方法,都不能將另一個完整產(chǎn)品安裝在另一個DB2副本所在的路徑中(例如,/opt/ibm/db2/V9.7),也不支持安裝到現(xiàn)有DB2副本的子目錄中。可使用db2ls命令可幫助您跟蹤已安裝的DB2產(chǎn)品及其安裝路徑。運行db2ls命令以找到安裝在系統(tǒng)上的DB2產(chǎn)品。(2)實例實例是邏輯數(shù)據(jù)庫管理器環(huán)境,您可以在此環(huán)境中對數(shù)據(jù)庫進(jìn)行編目和設(shè)置配置參數(shù)。的影響。如果一個實例失敗,那么只影響一個實例。其他實例可繼續(xù)正常運行。在Linux操作系統(tǒng)上以非root用戶身份安裝時,在安裝DB2產(chǎn)品期間將創(chuàng)建單個實例。不能創(chuàng)建其他實例。?每個實例都需要額外的系統(tǒng)資源(虛擬內(nèi)存和磁盤空間)。?由于要管理其他的實例,因此增加了管理工作量。數(shù)據(jù)庫管理器配置文件系統(tǒng)數(shù)據(jù)庫目錄節(jié)點目錄節(jié)點配置文件(db2nodes.cfg)包含調(diào)試信息的其他文件可以在同一DB2副本或不同DB2副本中同時運行多個實例。要使用同一DB2副本發(fā)出命令之前,將DB2INSTANCE環(huán)境變量設(shè)置為該實例的名稱。要阻止實例訪問另一實例的數(shù)據(jù)庫,可在與實例同名的目錄下為實例創(chuàng)建數(shù)據(jù)庫文件。有關(guān)更多信息,請參閱dftdbpath數(shù)據(jù)庫管理器配置參數(shù)。要在具有多個DB2副本的系統(tǒng)中使用實例,要使用選擇的特定DB2副本的正確環(huán)境數(shù)據(jù)庫DB2數(shù)據(jù)庫是關(guān)系數(shù)據(jù)庫。數(shù)據(jù)庫將所有數(shù)據(jù)存儲在彼此相關(guān)的表中。在這些表之間建立關(guān)系,以便可以共享數(shù)據(jù)并使重復(fù)項最少。關(guān)系數(shù)據(jù)庫是被視為一組表并按照關(guān)系數(shù)據(jù)模型操作的數(shù)據(jù)庫。它包含一組用來存儲、管理和訪問數(shù)據(jù)的對象。這種對象示例包括表、視圖、索引、函數(shù)、觸發(fā)器和程序包。對象可以由系統(tǒng)(系統(tǒng)定義的對象)或用戶(用戶定義的對象)定義。分布式關(guān)系數(shù)據(jù)庫包含一組表和其他對象,它們分布在不同但內(nèi)部相連的計算機系統(tǒng)互間的通信和合作方式允許給定數(shù)據(jù)庫管理器在另一個計算機系統(tǒng)上執(zhí)行SQL語句。分區(qū)關(guān)系數(shù)據(jù)庫是在多個數(shù)據(jù)庫分區(qū)中管理其數(shù)據(jù)的關(guān)系數(shù)據(jù)庫。這種將數(shù)據(jù)分布在多式對大多數(shù)SQL語句來說是透明的。但是,某些數(shù)據(jù)定義語言(DDL)聯(lián)合數(shù)據(jù)庫是其數(shù)據(jù)存儲在多個數(shù)據(jù)源(例如,不同的關(guān)系數(shù)據(jù)庫)中的關(guān)系數(shù)據(jù)庫。這些數(shù)據(jù)看起來就像都位于單個大型數(shù)據(jù)庫中一樣,并且可以通過傳統(tǒng)SQL查詢來訪問。對數(shù)據(jù)所作的更改可以顯式定向至適當(dāng)?shù)臄?shù)據(jù)源。從上邊的描述可知,一個系統(tǒng)可以包括多個DB2副本,每個副本可以包括多個實例,同數(shù)據(jù)庫。分布式和聯(lián)合數(shù)據(jù)庫則是跨數(shù)據(jù)庫訪問的。在我們的主測試環(huán)境中,目前只有一個DB2數(shù)據(jù)庫軟件,創(chuàng)建了一個實例,實例中創(chuàng)(4)用戶和模式(Schema)模式(schema)是用于在數(shù)據(jù)庫中創(chuàng)建的數(shù)據(jù)庫對象的一個高級限定符。它是數(shù)據(jù)庫對象,例如表、視圖、索引或觸發(fā)器的一個集合。它提供了數(shù)據(jù)庫對象的一個邏輯分類。模式是用來組織數(shù)據(jù)庫中對象的一種方式,可以把它理解為目錄。所有同一個目錄下的那么此目錄下的所有對象可以不帶模式名訪問。CREATESCHEMA語句來創(chuàng)建模式。有關(guān)模式的信息保存在連接的數(shù)據(jù)庫的系統(tǒng)目錄表中。要創(chuàng)建模式,并且要使另一個用戶成為該模式的所有者(可選),您需要DBADM權(quán)限。即使您不具有DBADM權(quán)限,也仍可以使用您自己的授權(quán)標(biāo)識來創(chuàng)建模式。作為CREATESCHEMA語句的一部分創(chuàng)建的任何對象的定義者是模式所有者。此所有者可以授予和撤銷其他用戶的模式特權(quán)。2、功能與操作CREATECREATESCHEMA[AUTHORIZATION]其中是模式的名稱。此名稱在目錄中已記錄的模式內(nèi)必須唯一,并且不能以SYS開頭。如果指定了可選AUTHORIZATION子句,那么將成為模式所有者。如果未指定此子句,那么發(fā)出此命令的授權(quán)標(biāo)識將成為模式所有者。在刪除模式之前,必須刪除該模式中的所有對象或?qū)⑺鼈円浦亮硪粋€模式。DROPDROPSCHEMARESTRICT在以下示例中,刪除了模式“joeschma”:DROPDROPSCHEMAjoeschmaRESTRICT注意:模式默認(rèn)和同名的用戶相關(guān)聯(lián),比如創(chuàng)建了tpch模式,用tpch用戶連接,則自動將當(dāng)前模式設(shè)定為tpch,并自動有權(quán)在當(dāng)前模式下創(chuàng)建對象,但如果用不是模式所有者的h有模式下表權(quán)限有所不同。以下是一個簡單的例子。--sh-3.2$su-tpch[[tpch@redflag11012601~]$db2connecttosampleDatabaseConnectionInformationDatabaseserver=DB2/LINUXX86649.7.1SQLauthorizationID=TPCHLocaldatabasealias=SAMPLE--有創(chuàng)建表的權(quán)限[[tpch@redflag11012601~]$db2"createtabletest1(avarchar(10))"DB20000ITheSQLcommandcompletedsuccessfully.[[tpch@redflag11012601~]$db2"insertintotest1values('abc')"DB20000ITheSQLcommandcompletedsuccessfully.[tpch@redflag11012601~]$db2"commit"DB20000ITheSQLcommandcompletedsuccessfully.[tpch@redflag11012601~]$db2-t(c)CopyrightIBMCorporation1993,2007CommandLineProcessorforDB2Client9.7.1--不指定模式dbdb2=>select*fromtest1;Abc1record(s)selected.--指定模式dbdb2=>select*fromtpch.test1;Abc1record(s)selected.dbdb2=>selectcount(*)fromtpch.nation;SQL0551N"TPCH"doesnothavetherequiredauthorizationorprivilegetoperformoperation"SELECT"onobject"TPCH.NATION".SQLSTATE=42501dbdb2=>connecttosampleuserdb2inst1usingdb2;DatabaseConnectionInformationDatabaseserver=DB2/LINUXX86649.7.1SQLauthorizationID=DB2INST1Localdatabasealias=SAMPLEdbdb2=>grantallontpch.nationtotpch;DB20000ITheSQLcommandcompletedsuccessfully.dbdb2=>connecttosampleusertpchusingtpch;dbdb2=>selectcount(*)fromtpch.nation;11record(s)selected.dbdb2=>connecttosampleuserdb2inst1usingdb2;dbdb2=>createtabletpch.test2(avarchar(10));DB20000ITheSQLcommandcompletedsuccessfully.dbdb2=>insertintotpch.test2values('cde');DB20000ITheSQLcommandcompletedsuccessfully.dbdb2=>commit;DB20000ITheSQLcommandcompletedsuccessfully.dbdb2=>connecttosampleusertpchusingtpch;dbdb2=>selectcount(*)fromtpch.test2;SQL0551N"TPCH"doesnothavetherequiredauthorizationorprivilegetoperformoperation"SELECT"onobject"TPCH.TEST2".SQLSTATE=42501dbdb2=>connecttosampleuserdb2inst1usingdb2;dbdb2=>grantdbadmondatabasetotpch;DB20000ITheSQLcommandcompletedsuccessfully.dbdb2=>connecttosampleusertpchusingtpch;dbdb2=>selectcount(*)fromtpch.test2;111record(s)selected.(2)對實例和數(shù)據(jù)庫的操作開始連接實例之前,必須存在多個實例。來與實例連接,輸入:db2attachto例如,要連接至節(jié)點目錄中先前編目的稱為testdb2的實例:db2attachtotestdb2例如,在對testdb2實例執(zhí)行維護(hù)活動后,要使用命令行從實例拆離,輸入:db2detach對于數(shù)據(jù)庫的操作,除了前面提到過的createdatabase和connectto,還有dropCLP通過前面的描述,大家對于它已經(jīng)很熟悉了。它包括單行命令方式和交互方式。在2種方式之間可以共享當(dāng)前狀態(tài),比如db2connect連接了數(shù)據(jù)庫,那么db2進(jìn)入交互方式后不用再次connect,同樣在交互方式下設(shè)置了setschema當(dāng)前模式,那么退出交互以后仍然利用db2工具除了能夠執(zhí)行SQL語句,還可以完成數(shù)據(jù)庫管理參數(shù)和數(shù)據(jù)庫參數(shù)的動態(tài)配置,前者是實例級,后者是數(shù)據(jù)庫級的。方法是:db2updatedbmcfgusing參數(shù)名參數(shù)值和db2updatedbcfgusing參數(shù)名參數(shù)值比如可以設(shè)置分區(qū)內(nèi)并行和增加日志文件的大小。--設(shè)置啟用分區(qū)內(nèi)并行功能shsh-3.2$db2UPDATEDBMCFGUSINGINTRA_PARALLELYESDB20000ITheUPDATEDATABASEMANAGERCONFIGURATIONcommandcompletedsuccessfully.-sh-3.2$db2UPDATEDBMCFGUSINGMAX_QUERYDEGREE32DB20000ITheUPDATEDATABASEMANAGERCONFIGURATIONcommandcompletesuccessfully.--sh-3.2$db2getdbmcfg|grepPARALLELEnableintra-partitionparallelism(INTRA_PARALLEL)=YES--sh-3.2$db2getdbmcfg|grepDEGREEMaximumquerydegreeofparallelism(MAX_QUERYDEGREE)=32--sh-3.2$db2getdbcfg|grepDEGREEDegreeofparallelism(DFT_DEGREE)=1--sh-3.2$db2updatedbcfgusingDFT_DEGREE4DB20000ITheUPDATEDATABASECONFIGURATIONcommandcompletedsuccessfully.--設(shè)置日志文件大小--sh-3.2$db2updatedbcfgusingLOGFILSIZ2000DB20000ITheUPDATEDATABASECONFIGURATIONcommandcompletedsuccessfully.SQL1363WOneormoreoftheparameterssubmittedforimmediatemodificationwerenotchangeddynamically.Fortheseconfigurationparameters,allapplicationsmustdisconnectfromthisdatabasebeforethechangesbecomeeffective.--sh-3.2$db2getdbcfg|grepLOGFILSIZLogfilesize(4KB)(LOGFILSIZ)=2000atch這個是db2提供的專門用于基準(zhǔn)測試的工具,基準(zhǔn)測試是從各種不同方面(例如數(shù)據(jù)庫響應(yīng)時間、cpu和內(nèi)存使用情況)對應(yīng)用程序進(jìn)行評測的一個過程?;鶞?zhǔn)測試基于一個可重db2batch以一組SQL和/或XQuery語句作為輸入,動態(tài)地準(zhǔn)備語句和描述語句,依從準(zhǔn)備到查詢完成中各個階段所花費的具體時間,CPU時間,以及返回的記錄關(guān)于內(nèi)存使用情況(例如緩沖池)的數(shù)據(jù)庫管理器快照和緩存信息。dbdb2batch命令格式dbdb2batch-d-a/-i-f-r對于執(zhí)行db2batch時一些詳細(xì)的設(shè)置可以通過-o參數(shù)指定,也可以在SQL文件中指定,譬如可以在1.sql文件中使用下面的配置參數(shù):--#SETROWS_FETCH-1ROWS_OUT5PERF_DETAIL1DELIMITER@TIMESTAMPselect*fromemployeewhereempno='000340'@--#COMMENTQuery2--#BGBLK[重復(fù)次數(shù)](定義查詢塊的開始)select*fromemployeewhereempno='000350'@--#EOBLK(定義查詢塊的結(jié)束)其中ROWS_FETCH和ROWS_OUT定義了從查詢的結(jié)果集中讀取記錄數(shù)和打印到輸TER查詢間的間隔符。如果用--#BGBLK和--#EOBLK定義執(zhí)行塊,那么最后的總結(jié)報告用塊為dbdb2batch-dsample-icomplete-f1.sql-r1.out這個功能對于基準(zhǔn)測試很有用,可以得出多次執(zhí)行的平均值,消除一部分偶然性的影響。datedbdate行前后的這個工具將指定語句的執(zhí)行計劃輸出到終端屏幕或一個文件。下面舉例說明db2expln[db2inst1@aix:/home/db2inst1]#>db2expln-dtpch-q"selectcount(*)cntfromtpch.partwherep_size=30"-g-tIBMDB2UniversalDatabaseSQLandXQUERYExplainTool********************DYNAMIC***************************************====================STATEMENT==========================================IsolationLevel=CursorStabilityBlocking=BlockUnambiguousCursorsQueryOptimizationClass=5PartitionParallel=No--分區(qū)間并行未開啟Intra-PartitionParallel=No--分區(qū)內(nèi)并行未開啟SQLPath="SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","DB2INST1"Statement:selectcount(*)cntfromtpch.partwherep_size=30SectionCodePage=1208EstimatedCost=11047.642578--估計的成本EstimatedCardinality=1.000000--估計的基數(shù)AccessTableName=TPCH.PARTID=4,9Columns0InsertedRows|AvoidLockingCommittedData|CurrentlyCommittedforCursorStability|MayparticipateinScanSharingstructures|Scanmaystartanywhereandwrap,forcompletion|Fastscan,forpurposesofscansharingmanagement|ScancanbethrottledinscansharingmanagementefetchEligiblewNextKeyShareSargablePredicate(s)||#Predicates=1||PredicateAggregation|||ColumnFunction(s)AggregationCompletionColumnFunction(s)ReturnDatatoApplication|#Columns=1EndofsectionOptimizerPlan:Operatorst1RN(1)|1GRPBY|.7TBSCAN|2.00041e+06TPCH這是為了熟悉Oracle的用戶向db2遷移而設(shè)計的功能,號稱可以做到百分之幾十的代碼不需要修改就能在db2中運行原來的Oracle應(yīng)用,但實際效果還是要親自使用才知道。設(shè)置步驟首先要用db2set命令在注冊變量中設(shè)定兼容模式,然后重新啟動實例,再發(fā)出createt--sh-3.2$db2setdb2_compatibility_vector=ora--sh-3.2$db2stopforce2011-05-0616:23:5100SQL1064NDB2STOPprocessingwassuccessful.SQL1064NDB2STOPprocessingwassuccessful.--sh-3.2$db2start05/06/201116:24:1300SQL1063NDB2STARTprocessingwassuccessful.SQL1063NDB2STARTprocessingwassuccessful.--sh-3.2$db2"createdatabaseoraclepagesize32K"SQL1047NTheapplicationisalreadyconnectedtoanotherdatabase.--sh-3.2$db2terminateDB20000ITheTERMINATEcommandcompletedsuccessfully.--sh-3.2$db2"createdatabaseoraclepagesize32K"SQL0204N"SYSTEM_1392_CN"isanundefinedname.SQLSTATE=42704-sh-3.2$db2"withtas(select1afromdualunionallselect0fromdual)selectcast(sys_connect_by_path(a,'/')asvarchar(30))fromtconnectbypriora=a-1"1/0/0/1/13record(s)selected.--sh-3.2$db2"selectlevellfromdualconnectbylevel<=3"LSQL20451NCycledetectedinahierarchicalquery.SQLSTATE=560CO--sh-3.2$db2"selectrownumlfromdualconnectbyrownum<=3"SQL0120NInvaliduseofanaggregatefunctionorOLAPfunction.LSTATE--創(chuàng)建數(shù)據(jù)庫后設(shè)置兼容模式[[db2inst1@aix:/home/db2inst1]#>db2setdb2_compatibility_vector=ora[[db2inst1@aix:/home/db2inst1]#>db2setDB2_COMPATIBILITY_VECTOR=ORADB2COMM=TCPIPSQL1025NThedatabasemanagerwasnotstoppedbecausedatabasesarestillactive.[[db2inst1@aix:/home/db2inst1]#>db2stopforce05/10/201116:00:4900SQL1064NDB2STOPprocessingwassuccessful.SQL1064NDB2STOPprocessingwassuccessful.[[db2inst1@aix:/home/db2inst1]#>db2start05/10/201116:00:5800SQL1063NDB2STARTprocessingwassuccessful.SQL1063NDB2STARTprocessingwassuccessful.[[db2inst1@aix:/home/db2inst1]#>clpplus-nwdb2inst1/db2@localhost:60000/tcphCLPPlus:Version1.4Copyright(c)2009,2011,IBMCORPORATION.Allrightsreserved.SQL>settimion--sysdate函數(shù)可以使用SQL>selectsysdatefromdual;12011-05-1016:01:27Elapsedtime:59millisecond(s)--dict表不存在SQL>descdictDB250211E:Thedatabaseobjectnamed'DICT'wasnotfoundinthedatabase.SQL>exit--刪除數(shù)據(jù)庫并重建[[db2inst1@aix:/home/db2inst1]#>db2dropdatabasetcphDB20000ITheDROPDATABASEcommandcompletedsuccessfully.[[db2inst1@aix:/home/db2inst1]#>db2terminateDB20000ITheTERMINATEcommandcompletedsuccessfully.[db2inst1@aix:/home/db2inst1]#>db2"createdatabasetpchusingCODESETUTF-8TERRiTORYCNpagesize32K"DB20000ITheCREATEDATABASEcommandc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論