hadoop搭建與eclipse開發(fā)環(huán)境設(shè)置_第1頁
hadoop搭建與eclipse開發(fā)環(huán)境設(shè)置_第2頁
hadoop搭建與eclipse開發(fā)環(huán)境設(shè)置_第3頁
hadoop搭建與eclipse開發(fā)環(huán)境設(shè)置_第4頁
hadoop搭建與eclipse開發(fā)環(huán)境設(shè)置_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、hadoop 搭建與 eclipse 開發(fā)環(huán)境設(shè)置羅利輝1.前言1.1目標(biāo)目的很簡單,為進(jìn)行研究與學(xué)習(xí),部署一個 hadoop 運(yùn)行環(huán)境,并搭建一個 hadoop 開發(fā)與測試環(huán)境。具體目標(biāo)是:在 ubuntu 系統(tǒng)上部署 hadoop在 windows 上能夠使用 eclipse 連接 ubuntu 系統(tǒng)上部署的 hadoop 進(jìn)行開發(fā)與測試1.2軟硬件要求硬件要求:三臺普通 PG當(dāng)然使用虛擬機(jī)也可以, 本環(huán)境搭建也是VMWare6.5 虛擬機(jī)上進(jìn)行的。軟件要求:操作系統(tǒng):ubuntu11.04server。Hadoop 版本:hadoop-0.20.2Eclipse 版本:3.3.2Java

2、 版本:1.6.0_26(必須 1.6 以上)注意:Hadoop 版本和 Eclipse 版本請嚴(yán)格按照要求?,F(xiàn)在的 hadoop最新版本是 hadoop-0.20.203,我在 windows上使用 eclipse (包括 3.6版本和 3.3.2版本)連接 ubuntu 上的 hadoop-0.20.203 環(huán)境一直沒有成功。但是開發(fā)測試程序是沒有問題的,不過需要注意權(quán)限問題。如果要減少權(quán)限問題的發(fā)生,可以這樣做:ubuntu 上運(yùn)行 hadoop 的用戶與 windows上的用戶一樣。1.3環(huán)境拓?fù)鋱Dubuntu31ubuntul32ubu

3、ntu233主機(jī)名Hadoop 角色Hadoopjps 命令結(jié)果Hadoop 用戶Hadoop 安裝目錄ubuntuMasterslavesNameNodeDataNodeJobTrackerTaskTrackerSecondaryNameNode創(chuàng)建相同的用戶的組名:hadoop。安裝 hadoop-0.20.2 時使用 hadoop 用戶,并且 hadoop 的文件夾歸屬也是hadoop:hadoop/opt/hadoopUbuntu1slavesDataNodeTaskTrackerUbuntu2slavesDataNodeTaskTrackerWindows開發(fā)

4、測試環(huán)境女裝了 jdk 與 eclipse,本身不需要女裝 hadoop,但是需要 hadoop 安裝包卜面的 jar 包。注意:ubuntu 既是 NameNode 又是 DataNode,同時也是 JobTracke62. Ubuntu安裝安裝 ubuntu11.04server 系統(tǒng),具體略。我是先在虛擬機(jī)上安裝一個操作系統(tǒng),然后把 hadoop 也安裝配置好了,再克隆二份,然后把主機(jī)名與 IP 修改,再進(jìn)行主機(jī)之間的 SSH 配置。如果僅作為 hadoop 的運(yùn)行與開發(fā)環(huán)境, 不需要安裝太多的系統(tǒng)與網(wǎng)絡(luò)服務(wù), 或者在需要的時彳通過apt-getinstall 進(jìn)行安裝。不過 SSH 服

5、務(wù)是必須的。3. Hadoop安裝以下的 hadoop 安裝以主機(jī) ubuntu 下進(jìn)行安裝為例。3.1 下載安裝 jdk1.6安裝版本是:jdk-6u26-linux-i586.bin,我把它安裝拷貝到:/opt/jdk1.6.0_263.2 下載解壓 hadoop安裝包是:hadoop-0.20.2.tar.gz。$tar-zxvfhadoop-0.20.2.tar.gz$mvhadoop-0.20.2/opt/hadoop3.3 修改系統(tǒng)環(huán)境配置文件切換為根用戶。修改環(huán)境配置文件/etc/profile,加入:exportJAVA_HOME=/opt/jdk1.6.0_26exportJ

6、RE_HOME=/opt/jdk1.6.0_26/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATHexportHADOOP_HOME=/opt/hadoopexportPATH=$HADOOP_HOME/bin:$PATH修改地址解析文件/etc/hosts,加入31ubuntu32ubuntul33ubuntu23.4 修改 hadoop 的配置文件切換為 ha

7、doop 用戶。修改 hadoop 目錄下的 conf/hadoop-env.sh 文件加入 java 的安裝根路徑:exportJAVA_HOME=/opt/jdk1.6.0_26把 hadoop 目錄下的 conf/core-site.xml 文件修改成如下:hadoop.tmp.dir/hadoopAhdfs:/ubuntu:9000Thenameofthedefaultfilesystem.AURIwhoseschemeandauthoritydeterminetheFileSystemim

8、plementation.Theurisschemedeterminestheconfigproperty(fs.SCHEME.impl)namingtheFileSystemimplementationclass.Theurisauthorityisusedtodeterminethehost,port,.dir/hadoop/nameDetermineswhereonthelocalfilesystemtheDFSnamenodeshouldstorethenametable.Ifthi

9、sisacomma-delimitedlistofdirectoriesthenthenametableisreplicatedinallofthedirectories,forredundancy.把 hadoop 目錄下的 conf/hdfs-site.xml 文件修改成如下:dfs.data.dir/hadoop/dataDetermineswhereonthelocalfilesystemanDFSdatanodeshouldstoreitsblocks.Ifthisisacomma-delimitedlistofdirectories,thendatawillbestoredinal

10、lnameddirectories,typicallyondifferentdevices.Directoriesthatdonotexistareignored.dfs.replication3Defaultblockreplication.Theactualnumberofreplicationscanbespecifiedwhenthefileiscreated.Thedefaultisusedifreplicationisnotspecifiedincreatetime./configuration把 hadoop 目錄下的 conf/mapred-site.xml 文件修改成如下:m

11、apred.job.trackerubuntu:9001ThehostandportthattheMapReducejobtrackerrunsat.Iflocal,thenjobsarerunin-processasasinglemapandreducetask.注意:別忘了 hadoop.tmp.dir,.dir,dfs.data.dir 參數(shù),hadoop 存放數(shù)據(jù)文件,名字空間等的目錄,格式化分布式文件系統(tǒng)時會格式化這個目錄。這里指向了/hadoop,所以也要創(chuàng)建這個目錄,并且用戶歸屬也是 hadoop:hadoop。把 hadoop 目錄下的 conf/masters

12、 文件修改成如下:ubuntu把 hadoop 目錄下的 conf/slaves 文件修改成如下:ubuntuubuntu1ubuntu23.5 分發(fā) hadoop 安裝文件我使用 VMWare 的克隆功能,將主機(jī) ubuntu 完全克隆兩份:ubuntu1 和 ubuntu2,并修改相應(yīng)的主機(jī)名和 IP 地址,這樣就可以簡單地保持 hadoop 環(huán)境基本配置相同。如果是安裝在實(shí)體物理機(jī)上,把在 ubuntu 安裝的 jdk,系統(tǒng)配置文件/etc/host,/etc/profile,hadoop 安裝目錄拷貝到 ubuntu1 和 ubuntu2 相應(yīng)的目錄。3.6 SSH 配置無密碼驗(yàn)證配置

13、切換到 Hadoop 用戶,在 Hadoop 家目錄下面創(chuàng)建.ssh 目錄:$cd$mkdir.ssh在 master 節(jié)點(diǎn)(即主機(jī) ubuntu)上生成密鑰對:$ssh-keygen 式 rsa然后一直按Enter鍵,按默認(rèn)的選項生成密鑰對保存在.ssh/id_rsa 文件中。然后執(zhí)行命令:$ssh/.ssh$cpid_rsa.pubauthorized_keys$scpauthorized_keysubuntu1:/home/hadoop/.ssh$scpauthorized_keysubuntu2:/home/hadoop/.ssh從 ubuntu 向 ubuntul 和 ubuntu2

14、 發(fā)起 SSH 連接,第一次登錄時需要輸入密碼,以后就不需要了。$sshubuntul$sshubuntu2我們只需要配置從 master 向 slaves 發(fā)起 SSH 連接不需要密碼就可以了,但這樣只能在 master(即在主機(jī) ubuntu)啟動或關(guān)閉 hadoop 服務(wù)。3.7 運(yùn)行 hadoop使用 Hadoop 用戶。首先說明,hadoop 命令和參數(shù)都是大小寫敏感的,該用大寫時用大寫,用小寫時用小寫,否則會執(zhí)行錯誤。格式化分布式文件系統(tǒng):$hadoopnamenode-format在 ubuntu 上啟動 hadoop 守護(hù)進(jìn)行:$start-all.sh停止 hadoop 守護(hù)

15、進(jìn)程是:$stop-all.sh在 ubuntu 上查看運(yùn)行的進(jìn)程:$jps2971SecondaryNameNode3043JobTracker2857DataNode4229Jps3154TaskTracker2737NameNode在 ubuntu1 上查看運(yùn)行的進(jìn)程:$jps1005DataNode2275Jps1090TaskTracker其它命令請參考相關(guān)資料。在 windows 上通過 WEB 查看 hadoop 相關(guān)信息。修改 C:WINDOWSsystem32driversetchosts 文件,加入主機(jī)名與 IP 對應(yīng)關(guān)系:ildTS:WgtrVJ收四回韓戶但工 flM岫咕

16、后,工停上川壬龍侑菱無 f.哈芒銀SSft-T開*苧可u匚IT1r.ubuntuHadoopMap/ReduceAdministrationSttteJNrriALIZlIMGStetted:Scsi.ji12224OST2011Vlcn:O2021911707Compiletl:Fn國 19 阮 D?,34UTC20i0t?dv5mldantifir;201107162731Clu&terSummary(HeapSize他4.88MB/S6&.69MB)Map零Reduce*TotalNod*MpTaskCapacityR0duc4Tas-kCAPMltyAVQITaskii

17、NodeBlackRifedNodes0D0Q00.Q|SchedulingInformationSchedulingInformafiGinNAFilter(Jobkd,Priority.Uter.MmLFzimiy*wnilh才?小1Mlih*hvAmlh,tolvgflunvri#lrt1Anrii由葡IAITII片段PlraO7&$訪問:http:/ubuntu:50070 可以查看 NameNode 及整個分布式文件系統(tǒng)的狀態(tài)等:31ubuntu32ubuntu133ubuntu2訪問:http:/ubu

18、ntu:50030可以查看 JobTracker 的運(yùn)行狀態(tài):,啷。上朝電*S-希武沖工具v口iwju0凈口*4QUM-.3.8 運(yùn)行 WordCount 實(shí)例WordCount是hadoop自帶的實(shí)例, 統(tǒng)計一批文本文件中各單詞出現(xiàn)的資料, 輸出到指定的output目錄中,輸出目錄如果已經(jīng)存在會報錯。$cd/opt/hadoop$hadoopfs-mkdirinput$hadoopfs-copyFromLocal/opt/hadoop/*.txtinput/$hadoopjarhadoop-0.20.2-examples.jarwordcountinputoutput$hadoopfs-ca

19、toutput/*#4. Windows下eclipse開發(fā)環(huán)境配置4.1 系統(tǒng)環(huán)境配置在 windows 上通過 WEB 查看 hadoop 相關(guān)信息。修改 C:WINDOWSsystem32driversetchosts 文件,加入主機(jī)名與 IP 對應(yīng)關(guān)系:3132334.2 安裝開發(fā) hadoop 插件?各 hadoop 安裝包 hadoopcontribeclipse-pluginhadoop-0.20.2-eclipse-plugin.jar 拷貝至 Ueclipse 的插件目錄 plugins 下。需要注意的是

20、插件版本(及后面開發(fā)導(dǎo)入的所有 jar 包)與運(yùn)行的 hadoop 一致,否則可能會出現(xiàn)EOFException異常。重啟eclipse,打開windows-openperspective-other-map/reduce到map/reduce開發(fā)視圖。4.3 設(shè)置連接參數(shù)打開 windows-showview-other-map/reduceLocations后彈出的對話框(Generaltab)進(jìn)行參數(shù)的添加:參數(shù)說明如下:Locationname:任意map/reducemaster:與 mapred-site.xml 里面 mapred.job.tracker 設(shè)置致。DFSmaste

21、r:與 core-site.xml 里 設(shè)置一致。Username:服務(wù)器上運(yùn)行 hadoop 服務(wù)的用戶名。然后是打開Advancedparameters”設(shè)置面板,修改相應(yīng)參數(shù)。上面的參數(shù)填寫以后,也會反映到這里相應(yīng)的參數(shù):主要關(guān)注下面幾個參數(shù)::與 core-site.xml 里 設(shè)置一致。mapred.job.tracker:與 mapred-site.xml 里面 mapred.job.tracker 設(shè)置致。dfs.replication:與 hdfs-site.xml 里面的 dfs.r

22、eplication致。hadoop.tmp.dir:與 core-site.xml 里 hadoop.tmp.dir 設(shè)置致。hadoop.job.ugi:并不是設(shè)置用戶名與密碼。是用戶與組名,所以這里填寫 hadoop,hadoop。ubuntuubuntu1ubuntu2可以看視圖,在點(diǎn)擊大象說明:第一次設(shè)置的時候可能是沒有 hadoop.job.ugi 和 dfs.replication 參數(shù)的,不要緊,確認(rèn)保存。打開 ProjectExplorer 中 DFSLocations 目錄,應(yīng)該可以年看到文件系統(tǒng)中的結(jié)構(gòu)了。但是在/hadoop/mapred/system 下卻沒有查看權(quán)限

23、,如下圖:=iMSILJ修 UIlErrE-T而且刪除文件的時候也會報錯:這個原因是我使用地本用戶 Administrator(我是用管理員用戶登陸來地 windows 系統(tǒng)的)進(jìn)行遠(yuǎn)程 hadoop 系統(tǒng)操作,沒有權(quán)限。此時再打開Advancedparameters”設(shè)置面板,應(yīng)該可以看到 hadoop.job.ugi 了,這個參數(shù)默認(rèn)是本地操作系統(tǒng)的用戶名,如果不幸與遠(yuǎn)程 hadoop 用戶不一致,那就要改過來了,將 hadoop 加在第一個,并用逗號分隔。如:ohng】hado|&pJAdminislrat&r,Hone,保存配置后,重新啟動 eclipse。/hadoo

24、p/mapred/system 下就一目了然了,刪除文件也 OK。ProjsctErplorsiES二工JZl-DFSLocati-Iffhadooi) )&G)-Q?hadavp)Q&naprd(11=.L3systftUjobtracker.ino(.4.0b;r31s-&1西尸(1)白&uir)二l.卜且4匕(1jrwiiiramamiaimianrljiinput(4)iCKIIimaniBiMi4.4 運(yùn)行 hadoop 程序首先將 hadoop 安裝包下面的所有 jar 包都導(dǎo)到 eclipse 工程里。然后建立一個類:DFSOperator.jav

25、a,該類寫了四個基本方法:創(chuàng)建文件,刪除文件,把文件內(nèi)容讀為字符串,將字符串寫入文件。同時有個 main 函數(shù),可以修改測試:packagecom.kingdee.hadoop;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataOutputStream;importorg

26、.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;/*Theutilitiestooperatefileonhadoophdfs.*authorluolihui2011-07-18*/publicclassDFSOperatorprivatestaticfinalStringROOT_PATH=hdfs:/;privatestaticfinalintBUFFER_SIZE=4096;/*construct.*/publicDFSOperator()/*Createafileonhdfs.Therootpathis/.for

27、example:DFSOperator.createFile(/lory/test1.txt,true);parampaththefilenametoopenparamoverwriteifafilewiththisnamealreadyexists,theniftrue,thefilewillbereturntrueifdeleteissuccessfulelseIOException.throwsIOException/publicstaticbooleancreateFile(Stringpath,booleanoverwrite)throwsIOException/Stringuri=

28、hdfs:/00:9000”;/FileSystemfs1=FileSystem.get(URI.create(uri),conf);Configurationconf=newConfiguration();FileSystemfs=FileSystem.get(conf);Pathf=newPath(ROOT_PATH+path);fs.create(f,overwrite);fs.close();returntrue;/*Deleteafileonhdfs.Therootpathis/.forexample:DFSOperator.deleteFile(/user/h

29、adoop/output,true);parampaththepathtodeleteparamrecursiveifpathisadirectoryandsettotrue,thedirectoryisdeletedelsethrowsanexception.Incaseofafiletherecursivecanbesettoeithertrueorfalse.returntrueifdeleteissuccessfulelseIOException.throwsIOException*/publicstaticbooleandeleteFile(Stringpath,booleanrec

30、ursive)throwsIOException/Stringuri=hdfs:/00:9000”;/FileSystemfs1=FileSystem.get(URI.create(uri),conf);Configurationconf=newConfiguration();FileSystemfs=FileSystem.get(conf);Pathf=newPath(ROOT_PATH+path);fs.delete(f,recursive);fs.close();returntrue;/*Readafiletostringonhadoophdfs.Fromstrea

31、mtostring.forSystem.out.println(DFSOperator.readDFSFileToString(/user/hadoop/input/test3.txt);parampaththepathtoreadreturntrueifreadissuccessfulelseIOException.throwsIOException*/publicstaticStringreadDFSFileToString(Stringpath)throwsIOExceptionConfigurationconf=newConfiguration();FileSystemfs=FileS

32、ystem.get(conf);Pathf=newPath(ROOT_PATH+path);InputStreamin=null;Stringstr=null;StringBuildersb=newStringBuilder(BUFFER_SIZE);if(fs.exists(f)in=fs.open(f);BufferedReaderbf=newBufferedReader(newInputStreamReader(in);while(str=bf.readLine()!=null)sb.append(str);sb.append(n);in.close();bf.close();fs.cl

33、ose();returnsb.toString();elsereturnnull;/*Writestringtoahadoophdfsfile.forexample:DFSOperatorwriteStringToDFSFile(/lory/test1.txt,Youareabadman.nReally!n);parampaththefilewherethestringtowritein.paramstringthecontexttowriteinafile.returntrueifwriteissuccessfulelseIOException.throwsIOExceptionexampl

34、e:/publicstaticbooleanwriteStringToDFSFile(Stringpath,Stringstring)throwsIOExceptionConfigurationconf=newConfiguration();FileSystemfs=FileSystem.get(conf);FSDataOutputStreamos=null;Pathf=newPath(ROOT_PATH+path);os=fs.create(f,true);os.writeBytes(string);os.close();fs.close();returntrue;publicstaticv

35、oidmain(Stringargs)tryDFSOperator.createFile(/lory/test1.txt,true);DFSOperator.deleteFile(/dfs_operator.txt,true);DFSOperator.writeStringToDFSFile(/lory/test1.txt,Youareabadman.nReally?n);System.out.println(DFSOperator.readDFSFileToString(/lory/test1.txt);catch(IOExceptione)/TODOAuto-generatedcatchb

36、locke.printStackTrace();System.out.println(=end=);然后 RunAsRunonHadoopChooseanexitsingserverfromthelistbelowfinish.結(jié)果很簡單(那個警告不管):11/07/1618:44:32WARNconf.Configuration:DEPRECATED:hadoop-site.xmlfoundintheclasspath.Usageofhadoop-site.xmlisdeprecated.Insteadusecore-site.xml,mapred-site.xmlandhdfs-site.

37、xmltooverridepropertiesofcore-default.xml,mapred-default.xmlandhdfs-default.xmlrespectivelyYouareabadman.Really?=end=也可以運(yùn)行 hadoop 自帶的 WorkCount 程序,找到其源代碼導(dǎo)進(jìn)來,然后設(shè)置輸入輸出參數(shù),然后同樣“Runonhadoop”。具體步驟不再示范。每“Runonhadoop”都會在 workspace.metadata.pluginsorg.apache.hadoop.eclipse下生成臨時 jar包。不過第一次需要 Runonhadoop,以后只需要

38、點(diǎn)擊那運(yùn)行的綠色按鈕了。5.錯誤及處理5.1安全模式問題我在 eclipse 上刪除 DFS 上的文件夾時,出現(xiàn)下面錯誤:白DeletefileViiabLetodaLetwfileLdf5:ulmiktTi;3000/TJser/hdQop/ciuiputorg.apache,hadcap.ipc.RemoteExeeption:org.apacke.kadoop.ItJfs.erver.rvamenode.SafeMo4eEstcepion:Cannotdelete/user/liaiiaop/tnitput.ITameiwdeiinEqfemode.ITsekadoorpdfsajJmi

39、n-Safftode1ea.vftntoLltma.iemode.atorg.4pacKi.hitep.lidfs.ssrvr.電rt*d上.FElTiiheEystafu.dsleleln+ernilCjSNamesy5lemjawa:1T0D)org.hadcop.Jtdfs.server,nsmgnod電.購可麗電工了工土自斷.ele(jSNafiQEbstein.jav.15&0)?rg.arh猛deop,hdEs.serv口砌*nsdaF皿片Ikda4片1片t片Qkm空耳中日片-jan;517)itzunrtflfict.GenftTstfidM&tholAccfeS

40、EorT.invokeQJhlnkiwrLSource)得tsun.reflect.DeletirigfJ4thodAccssorlnpl.invokie(Dels?atingithdAccfiSscrImp1.jara;25)atjava.Isit5.Yaflict.Ms+hfti.iikvak&(Methai.javaiSQT)atorgapauhA,ha蠢噌,ipc,班匚32Xv=,Call(RIC.jav;503)Atorg.apache,hidsop.ipi.EervftrSHMtil&rll.runtSirver.jiva.295Jatorg.整ache,had。罐

41、,ipc.ServeriHaniler$l,run(Server,jitjiVA.eurity.A.sesCantralltv.AdFrivilfiCNitiM4tk&d)tj*Y4M.sicority,mth.Subjtct.4小( (Subjwut.ava:39G*targ.hidsoT,ip*.Servftr$HinAl&i,.runServi.jiV4.53)錯誤提示說得也比較明示,是 NameNode 在安全模式中,其解決方案也一并給出。類似的運(yùn)行 hadoop程序時,有時候會報以下錯誤:org.apache.hadoop.dfs.SafeModeException:

42、Cannotdelete/user/hadoop/input.Namenodeisinsafemode解除安全模式:bin/hadoopdfsadmin-safemodeleave用戶可以通過 dfsadmin-safemodevalue 來操作安全模式,參數(shù) value 的說明如下:enter-進(jìn)入安全模式leave-強(qiáng)制 NameNode 離開安全模式get-返回安全模式是否開啟的信息wait-等待,一直到安全模式結(jié)束。5.2開發(fā)時報錯Permissiondeniedorg.apache.hadoop.security.AccessControlExceptionorg.apache.hadoop.security.AccessControlExceptionuser=Administrator,access=WRITE,inode=test1.txt:hadoop:supergroup:rw-r-r-atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Method)atsun.reflect.NativeConst

溫馨提示

  • 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

提交評論