zz hadoop常见问题
http://www.hadoopor.com/thread-71-1-1.html
Hadoop技术论坛
注册登录
论坛
导航
RSS
Hadoop技术论坛»Hadoop综合»Hadoop使用常见问题以及解决方法
123下一页
返回列表发帖
版主
Rank:7Rank:7Rank:7
十级勋章
1#跳转到»倒序看帖
打印
字体大小:tT
摩西莫西发表于2009-11-2010:23|只看该作者
Hadoop使用常见问题以及解决方法
Hadoop,问题,解决
1:ShuffleError:ExceededMAX_FAILED_UNIQUE_FETCHES;bailing-out
Answer:
程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit-a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改办法:
修改2个文件。
/etc/security/limits.conf
vi/etc/security/limits.conf
加上:
*softnofile102400
*hardnofile409600
$cd/etc/pam.d/
$sudovilogin
添加sessionrequired/lib/security/pam_limits.so
针对第一个问题我纠正下答案:
这是reduce预处理阶段shuffle时获取已完成的map的输出失败次数超过上限造成的,上限默认为5。引起此问题的方式可能会有很多种,比如网络连接不正常,连接超时,带宽较差以及端口阻塞等。。。通常框架内网络情况较好是不会出现此错误的。
2:Toomanyfetch-failures
Answer:
出现这个问题主要是结点间的连通不够全面。
1)检查、/etc/hosts
要求本机ip对应服务器名
要求要包含所有的服务器ip+服务器名
2)检查.ssh/authorized_keys
要求包含所有服务器(包括其自身)的publickey
3:处理速度特别的慢出现map很快但是reduce很慢而且反复出现reduce=0%
Answer:
结合第二点,然后
修改conf/hadoop-env.sh中的exportHADOOP_HEAPSIZE=4000
4:能够启动datanode,但无法访问,也无法结束的错误
在重新格式化一个新的分布式文件时,需要将你NameNode上所配置的dfs.name.dir这一namenode用来存放NameNode持久存储名字空间及事务日志的本地文件系统路径删除,同时将各DataNode上的dfs.data.dir的路径DataNode存放块数据的本地文件系统路径的目录也删除。如本此配置就是在NameNode上删除/home/hadoop/NameData,在DataNode上删除/home/hadoop/DataNode1和/home/hadoop/DataNode2。这是因为Hadoop在格式化一个新的分布式文件系统时,每个存储的名字空间都对应了建立时间的那个版本(可以查看/home/hadoop/NameData/current目录下的VERSION文件,上面记录了版本信息),在重新格式化新的分布式系统文件时,最好先删除NameData目录。必须删除各DataNode的dfs.data.dir。这样才可以使namedode和datanode记录的信息版本对应。
注意:删除是个很危险的动作,不能确认的情况下不能删除!!做好删除的文件等通通备份!!
5:java.io.IOException:Couldnotobtainblock:blk_194219614024901469_1100file=/user/hive/warehouse/src_20090724_log/src_20090724_log
出现这种情况大多是结点断了,没有连接上。
6:java.lang.OutOfMemoryError:Javaheapspace
出现这种异常,明显是jvm内存不够得原因,要修改所有的datanode的jvm内存大小。
Java-Xms1024m-Xmx4096m
一般jvm的最大内存使用应该为总内存大小的一半,我们使用的8G内存,所以设置为4096m,这一值可能依旧不是最优的值。
收藏分享
分享到:QQ空间QQ空间腾讯微博腾讯微博腾讯朋友腾讯朋友
超级版主
Rank:8Rank:8
2#
eyjian发表于2009-11-2010:49|只看该作者
顶,这样的贴子非常好,要置顶。附件是由Hadoop技术交流群中若冰的同学提供的相关资料:
Hadoop添加节点的方法
自己实际添加节点过程:
1.先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝;
2.将新的datanode的host加到集群namenode及其他datanode中去;
3.将新的datanode的ip加到master的conf/slaves中;
4.重启cluster,在cluster中看到新的datanode节点;
5.运行bin/start-balancer.sh,这个会很耗时间
备注:
1.如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mr的工作效率;
2.也可调用bin/start-balancer.sh命令执行,也可加参数-threshold5
threshold是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长。
3.balancer也可以在有mrjob的cluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mrjob时,可以提高该设置加快负载均衡时间。
其他备注:
1.必须确保slave的firewall已关闭;
2.确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中
mapper及reducer个数
url地址:http://wiki.apache.org/hadoop/HowManyMapsAndReduces
HowManyMapsAndReduces
Partitioningyourjobintomapsandreduces
PickingtheappropriatesizeforthetasksforyourjobcanradicallychangetheperformanceofHadoop.Increasingthenumberoftasksincreasestheframeworkoverhead,butincreasesloadbalancingandlowersthecostoffailures.Atoneextremeisthe1map/1reducecasewherenothingisdistributed.Theotherextremeistohave1,000,000maps/1,000,000reduceswheretheframeworkrunsoutofresourcesfortheoverhead.
NumberofMaps
ThenumberofmapsisusuallydrivenbythenumberofDFSblocksintheinputfiles.AlthoughthatcausespeopletoadjusttheirDFSblocksizetoadjustthenumberofmaps.Therightlevelofparallelismformapsseemstobearound10-100maps/node,althoughwehavetakenitupto300orsoforverycpu-lightmaptasks.Tasksetuptakesawhile,soitisbestifthemapstakeatleastaminutetoexecute.
Actuallycontrollingthenumberofmapsissubtle.Themapred.map.tasksparameterisjustahinttotheInputFormatforthenumberofmaps.ThedefaultInputFormatbehavioristosplitthetotalnumberofbytesintotherightnumberoffragments.However,inthedefaultcasetheDFSblocksizeoftheinputfilesistreatedasanupperboundforinputsplits.Alowerboundonthesplitsizecanbesetviamapred.min.split.size.Thus,ifyouexpect10TBofinputdataandhave128MBDFSblocks,you'llendupwith82kmaps,unlessyourmapred.map.tasksisevenlarger.Ultimatelythe[WWW]InputFormatdeterminesthenumberofmaps.
ThenumberofmaptaskscanalsobeincreasedmanuallyusingtheJobConf'sconf.setNumMapTasks(intnum).Thiscanbeusedtoincreasethenumberofmaptasks,butwillnotsetthenumberbelowthatwhichHadoopdeterminesviasplittingtheinputdata.
NumberofReduces
Therightnumberofreducesseemstobe0.95or1.75*(nodes*mapred.tasktracker.tasks.maximum).At0.95allofthereducescanlaunchimmediatelyandstarttransferingmapoutputsasthemapsfinish.At1.75thefasternodeswillfinishtheirfirstroundofreducesandlaunchasecondroundofreducesdoingamuchbetterjobofloadbalancing.
Currentlythenumberofreducesislimitedtoroughly1000bythebuffersizefortheoutputfiles(io.buffer.size*2*numReduces<<heapSize).Thiswillbefixedatsomepoint,butuntilitisitprovidesaprettyfirmupperbound.
Thenumberofreducesalsocontrolsthenumberofoutputfilesintheoutputdirectory,butusuallythatisnotimportantbecausethenextmap/reducestepwillsplitthemintoevensmallersplitsforthemaps.
Thenumberofreducetaskscanalsobeincreasedinthesamewayasthemaptasks,viaJobConf'sconf.setNumReduceTasks(intnum).
自己的理解:
mapper个数的设置:跟inputfile有关系,也跟filesplits有关系,filesplits的上线为dfs.block.size,下线可以通过mapred.min.split.size设置,最后还是由InputFormat决定。
较好的建议:
Therightnumberofreducesseemstobe0.95or1.75multipliedby(<no.ofnodes>*mapred.tasktracker.reduce.tasks.maximum).increasingthenumberofreducesincreasestheframeworkoverhead,butincreasesloadbalancingandlowersthecostoffailures.
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>2</value>
<description>Themaximumnumberofreducetasksthatwillberun
simultaneouslybyatasktracker.
</description>
</property>
单个node新加硬盘
1.修改需要新加硬盘的node的dfs.data.dir,用逗号分隔新、旧文件目录
2.重启dfs
同步hadoop代码
hadoop-env.sh
#host:pathwherehadoopcodeshouldbersync'dfrom.Unsetbydefault.
#exportHADOOP_MASTER=master:/home/$USER/src/hadoop
用命令合并HDFS小文件
hadoopfs-getmerge<src><dest>
重启reducejob方法
IntroducedrecoveryofjobswhenJobTrackerrestarts.Thisfacilityisoffbydefault.
Introducedconfigparameters"mapred.jobtracker.restart.recover","mapred.jobtracker.job.history.block.size",and"mapred.jobtracker.job.history.buffer.size".
还未验证过。
IO写操作出现问题
0-1246359584298,infoPort=50075,ipcPort=50020):Gotexceptionwhileservingblk_-5911099437886836280_1292to/172.16.100.165:
java.net.SocketTimeoutException:480000millistimeoutwhilewaitingforchanneltobereadyforwrite.ch:java.nio.channels.SocketChannel[connectedlocal=/
172.16.100.165:50010remote=/172.16.100.165:50930]
atorg.apache.hadoop.net.SocketIOWithTimeout.waitForIO(SocketIOWithTimeout.java:185)
atorg.apache.hadoop.net.SocketOutputStream.waitForWritable(SocketOutputStream.java:159)
atorg.apache.hadoop.net.SocketOutputStream.transferToFully(SocketOutputStream.java:198)
atorg.apache.hadoop.hdfs.server.datanode.BlockSender.sendChunks(BlockSender.java:293)
atorg.apache.hadoop.hdfs.server.datanode.BlockSender.sendBlock(BlockSender.java:387)
atorg.apache.hadoop.hdfs.server.datanode.DataXceiver.readBlock(DataXceiver.java:179)
atorg.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:94)
atjava.lang.Thread.run(Thread.java:619)
Itseemstherearemanyreasonsthatitcantimeout,theexamplegivenin
HADOOP-3831isaslowreadingclient.
解决办法:在hadoop-site.xml中设置dfs.datanode.socket.write.timeout=0试试;
MyunderstandingisthatthisissueshouldbefixedinHadoop0.19.1sothat
weshouldleavethestandardtimeout.Howeveruntilthenthiscanhelp
resolveissuesliketheoneyou'reseeing.
HDFS退服节点的方法
目前版本的dfsadmin的帮助信息是没写清楚的,已经file了一个bug了,正确的方法如下:
1.将dfs.hosts置为当前的slaves,文件名用完整路径,注意,列表中的节点主机名要用大名,即uname-n可以得到的那个。
2.将slaves中要被退服的节点的全名列表放在另一个文件里,如slaves.ex,使用dfs.host.exclude参数指向这个文件的完整路径
3.运行命令bin/hadoopdfsadmin-refreshNodes
4.web界面或bin/hadoopdfsadmin-report可以看到退服节点的状态是Decomissioninprogress,直到需要复制的数据复制完成为止
5.完成之后,从slaves里(指dfs.hosts指向的文件)去掉已经退服的节点
附带说一下-refreshNodes命令的另外三种用途:
2.添加允许的节点到列表中(添加主机名到dfs.hosts里来)
3.直接去掉节点,不做数据副本备份(在dfs.hosts里去掉主机名)
4.退服的逆操作——停止exclude里面和dfs.hosts里面都有的,正在进行decomission的节点的退服,也就是把Decomissioninprogress的节点重新变为Normal(在web界面叫inservice)
Hadoop添加节点的方法
自己实际添加节点过程:
1.先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝;
2.将新的datanode的host加到集群namenode及其他datanode中去;
3.将新的datanode的ip加到master的conf/slaves中;
4.重启cluster,在cluster中看到新的datanode节点;
5.运行bin/start-balancer.sh,这个会很耗时间
备注:
1.如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mr的工作效率;
2.也可调用bin/start-balancer.sh命令执行,也可加参数-threshold5
threshold是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长。
3.balancer也可以在有mrjob的cluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mrjob时,可以提高该设置加快负载均衡时间。
其他备注:
1.必须确保slave的firewall已关闭;
2.确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中
hadoop学习借鉴
1.解决hadoopOutOfMemoryError问题:
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx800M-server</value>
</property>
WiththerightJVMsizeinyourhadoop-site.xml,youwillhavetocopythis
toallmaprednodesandrestartthecluster.
或者:hadoopjarjarfile[mainclass]-Dmapred.child.java.opts=-Xmx800M
2.Hadoopjava.io.IOException:Jobfailed!atorg.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232)whileindexing.
wheniusenutch1.0,getthiserror:
Hadoopjava.io.IOException:Jobfailed!atorg.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232)whileindexing.
这个也很好解决:
可以删除conf/log4j.properties,然后可以看到详细的错误报告
我这儿出现的是outofmemory
解决办法是在给运行主类org.apache.nutch.crawl.Crawl加上参数:-Xms64m-Xmx512m
你的或许不是这个问题,但是能看到详细的错误报告问题就好解决了
distributecache使用
类似一个全局变量,但是由于这个变量较大,所以不能设置在config文件中,转而使用distributecache
具体使用方法:(详见《thedefinitiveguide》,P240)
1.在命令行调用时:调用-files,引入需要查询的文件(可以是localfile,HDFSfile(使用hdfs://xxx?)),或者-archives(JAR,ZIP,tar等)
%hadoopjarjob.jarMaxTemperatureByStationNameUsingDistributedCacheFile\
-filesinput/ncdc/metadata/stations-fixed-width.txtinput/ncdc/alloutput
2.程序中调用:
publicvoidconfigure(JobConfconf){
metadata=newNcdcStationMetadata();
try{
metadata.initialize(newFile("stations-fixed-width.txt"));
}catch(IOExceptione){
thrownewRuntimeException(e);
}
}
另外一种间接的使用方法:在hadoop-0.19.0中好像没有
调用addCacheFile()或者addCacheArchive()添加文件,
使用getLocalCacheFiles()或getLocalCacheArchives()获得文件
hadoop的job显示web
Thereareweb-basedinterfacestoboththeJobTracker(MapReducemaster)andNameNode(HDFSmaster)whichdisplaystatuspagesaboutthestateoftheentiresystem.Bydefault,thesearelocatedat[WWW]http://job.tracker.addr:50030/and[WWW]http://name.node.addr:50070/.
hadoop监控
OnlyXP(52388483)131702
用nagios作告警,ganglia作监控图表即可
statusof255error
错误类型:
java.io.IOException:Taskprocessexitwithnonzerostatusof255.
atorg.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:424)
错误原因:
Setmapred.jobtracker.retirejob.intervalandmapred.userlog.retain.hourstohighervalue.Bydefault,theirvaluesare24hours.Thesemightbethereasonforfailure,thoughI'mnotsure
splitsize
FileInputFormatinputsplits:(详见《thedefinitiveguide》P190)
mapred.min.split.size:default=1,thesmallestvalidesizeinbytesforafilesplit.
mapred.max.split.size:default=Long.MAX_VALUE,thelargestvalidsize.
dfs.block.size:default=64M,系统中设置为128M。
如果设置minimumsplitsize>blocksize,会增加块的数量。(猜想从其他节点拿去数据的时候,会合并block,导致block数量增多)
如果设置maximumsplitsize<blocksize,会进一步拆分block。
splitsize=max(minimumSize,min(maximumSize,blockSize));
其中minimumSize<blockSize<maximumSize.
sortbyvalue
hadoop不提供直接的sortbyvalue方法,因为这样会降低mapreduce性能。
但可以用组合的办法来实现,具体实现方法见《thedefinitiveguide》,P250
基本思想:
1.组合key/value作为新的key;
2.重载partitioner,根据oldkey来分割;
conf.setPartitionerClass(FirstPartitioner.class);
3.自定义keyComparator:先根据oldkey排序,再根据oldvalue排序;
conf.setOutputKeyComparatorClass(KeyComparator.class);
4.重载GroupComparator,也根据oldkey来组合;conf.setOutputValueGroupingComparator(GroupComparator.class);
smallinputfiles的处理
对于一系列的smallfiles作为inputfile,会降低hadoop效率。
有3种方法可以将smallfile合并处理:
1.将一系列的smallfiles合并成一个sequneceFile,加快mapreduce速度。
详见WholeFileInputFormat及SmallFilesToSequenceFileConverter,《thedefinitiveguide》,P194
2.使用CombineFileInputFormat集成FileinputFormat,但是未实现过;
3.使用hadooparchives(类似打包),减少小文件在namenode中的metadata内存消耗。(这个方法不一定可行,所以不建议使用)
方法:
将/my/files目录及其子目录归档成files.har,然后放在/my目录下
bin/hadooparchive-archiveNamefiles.har/my/files/my
查看filesinthearchive:
bin/hadoopfs-lsrhar://my/files.har
skipbadrecords
JobConfconf=newJobConf(ProductMR.class);
conf.setJobName("ProductMR");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(Product.class);
conf.setMapperClass(Map.class);
conf.setReducerClass(Reduce.class);
conf.setMapOutputCompressorClass(DefaultCodec.class);
conf.setInputFormat(SequenceFileInputFormat.class);
conf.setOutputFormat(SequenceFileOutputFormat.class);
Stringobjpath="abc1";
SequenceFileInputFormat.addInputPath(conf,newPath(objpath));
SkipBadRecords.setMapperMaxSkipRecords(conf,Long.MAX_VALUE);
SkipBadRecords.setAttemptsToStartSkipping(conf,0);
SkipBadRecords.setSkipOutputPath(conf,newPath("data/product/skip/"));
Stringoutput="abc";
SequenceFileOutputFormat.setOutputPath(conf,newPath(output));
JobClient.runJob(conf);
Forskippingfailedtaskstry:mapred.max.map.failures.percent
restart单个datanode
如果一个datanode出现问题,解决之后需要重新加入cluster而不重启cluster,方法如下:
bin/hadoop-daemon.shstartdatanode
bin/hadoop-daemon.shstartjobtracker
reduceexceed100%
"ReduceTaskProgressshows>100%whenthetotalsizeofmapoutputs(fora
singlereducer)ishigh"
造成原因:
在reduce的merge过程中,checkprogress有误差,导致status>100%,在统计过程中就会出现以下错误:java.lang.ArrayIndexOutOfBoundsException:3
atorg.apache.hadoop.mapred.StatusHttpServer$TaskGraphServlet.getReduceAvarageProgresses(StatusHttpServer.java:228)
atorg.apache.hadoop.mapred.StatusHttpServer$TaskGraphServlet.doGet(StatusHttpServer.java:159)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:689)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)
atorg.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
atorg.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:475)
atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
atorg.mortbay.http.HttpContext.handle(HttpContext.java:1565)
atorg.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
atorg.mortbay.http.HttpContext.handle(HttpContext.java:1517)
atorg.mortbay.http.HttpServer.service(HttpServer.java:954)
jira地址:https://issues.apache.org/jira/browse/HADOOP-5210
counters
3中counters:
1.built-incounters:Mapinputbytes,Mapoutputrecords...
2.enumcounters
调用方式:
enumTemperature{
MISSING,
MALFORMED
}
reporter.incrCounter(Temperature.MISSING,1)
结果显示:
09/04/2006:33:36INFOmapred.JobClient:AirTemperatureRecor
09/04/2006:33:36INFOmapred.JobClient:Malformed=3
09/04/2006:33:36INFOmapred.JobClient:Missing=66136856
3.dynamiccountes:
调用方式:
reporter.incrCounter("TemperatureQuality",parser.getQuality(),1);
结果显示:
09/04/2006:33:36INFOmapred.JobClient:TemperatureQuality
09/04/2006:33:36INFOmapred.JobClient:2=1246032
09/04/2006:33:36INFOmapred.JobClient:1=973422173
09/04/2006:33:36INFOmapred.JobClient:0=1
附件:您需要登录才可以下载或查看附件。没有帐号?注册
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
3#
摩西莫西发表于2009-11-2316:34|只看该作者
7:Namenodeinsafemode
解决方法
bin/hadoopdfsadmin-safemodeleave
8:java.net.NoRouteToHostException:Noroutetohost
j解决方法:
sudo/etc/init.d/iptablesstop
9:更改namenode后,在hive中运行select依旧指向之前的namenode地址
这是因为:Whenyoucreateatable,hiveactuallystoresthelocationofthetable(e.g.
hdfs://ip:port/user/root/...)intheSDSandDBStablesinthemetastore.SowhenIbringupanewclusterthemasterhasanewIP,buthive'smetastoreisstillpointingtothelocationswithintheold
cluster.IcouldmodifythemetastoretoupdatewiththenewIPeverytimeIbringupacluster.ButtheeasierandsimplersolutionwastojustuseanelasticIPforthemaster
所以要将metastore中的之前出现的namenode地址全部更换为现有的namenode地址
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
4#
摩西莫西发表于2009-11-2316:50|只看该作者
欢迎大家把遇到的问题整理下跟贴:lol
TOP
新手上路
Rank:1
5#
stone54321277发表于2009-11-2519:05|只看该作者
回复1#摩西莫西
非常棒阿,解决了困扰我好久的问题!
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
6#
摩西莫西发表于2009-11-2519:25|只看该作者
回复5#stone54321277
平常遇到的问题也贴出来啊,呵呵,多交流,多学习啊:lol
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
7#
摩西莫西发表于2009-11-2519:35|只看该作者
本帖最后由摩西莫西于2009-11-2519:37编辑
10:YourDataNodeisstartedandyoucancreatedirectorieswithbin/hadoopdfs-mkdir,butyougetanerrormessagewhenyoutrytoputfilesintotheHDFS(e.g.,whenyourunacommandlikebin/hadoopdfs-put).
解决方法:
GototheHDFSinfowebpage(openyourwebbrowserandgotohttp://namenode:dfs_info_portwherenamenodeisthehostnameofyourNameNodeanddfs_info_portistheportyouchosedfs.info.port;iffollowedtheQuickStartonyourpersonalcomputerthenthisURLwillbehttp://localhost:50070).OnceatthatpageclickonthenumberwhereittellsyouhowmanyDataNodesyouhavetolookatalistoftheDataNodesinyourcluster.
Ifitsaysyouhaveused100%ofyourspace,thenyouneedtofreeuproomonlocaldisk(s)oftheDataNode(s).
IfyouareonWindowsthenthisnumberwillnotbeaccurate(thereissomekindofbugeitherinCygwin'sdf.exeorinWindows).Justfreeupsomemorespaceandyoushouldbeokay.OnoneWindowsmachinewetriedthediskhad1GBfreebutHadoopreportedthatitwas100%full.Thenwefreedupanother1GBandthenitsaidthatthediskwas99.15%fullandstartedwritingdataintotheHDFSagain.WeencounteredthisbugonWindowsXPSP2.
11:YourDataNodeswon'tstart,andyouseesomethinglikethisinlogs/*datanode*:
IncompatiblenamespaceIDsin/tmp/hadoop-ross/dfs/data
原因:
YourHadoopnamespaceIDbecamecorrupted.UnfortunatelytheeasiestthingtodoreformattheHDFS.
解决方法:
Youneedtodosomethinglikethis:
bin/stop-all.sh
rm-Rf/tmp/hadoop-your-username/*
bin/hadoopnamenode-format
12:YoucanrunHadoopjobswritteninJava(likethegrepexample),butyourHadoopStreamingjobs(suchasthePythonexamplethatfetcheswebpagetitles)won'twork.
原因:
Youmighthavegivenonlyarelativepathtothemapperandreducerprograms.Thetutorialoriginallyjustspecifiedrelativepaths,butabsolutepathsarerequiredifyouarerunninginarealcluster.
解决方法:
Useabsolutepathslikethisfromthetutorial:
bin/hadoopjarcontrib/hadoop-0.15.2-streaming.jar\
-mapper$HOME/proj/hadoop/multifetch.py\
-reducer$HOME/proj/hadoop/reducer.py\
-inputurls/*\
-outputtitles
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
8#
摩西莫西发表于2009-11-2520:06|只看该作者
13:2009-01-0810:02:40,709ERRORmetadata.Hive(Hive.java:getPartitions(499))-javax.jdo.JDODataStoreException:Requiredtablemissing:""PARTITIONS""inCatalog""Schema"".JPOXrequiresthistabletoperformitspersistenceoperations.EitheryourMetaDataisincorrect,oryouneedtoenable"org.jpox.autoCreateTables"
原因:就是因为在hive-default.xml里把org.jpox.fixedDatastore设置成true了
TOP
新手上路
Rank:1
9#
ambious发表于2009-11-3015:10|只看该作者
过来学习了,看到这么多高手要更加努力学习了
TOP
超级版主
Rank:8Rank:8
10#
eyjian发表于2009-11-3015:22|只看该作者
回复9#ambious
这个贴意义非常大,等多了,再整理成PDF共享。
TOP
新手上路
Rank:1
11#
ch190957446发表于2009-11-3016:30|只看该作者
start-dfs.sh启动报localhost:Exceptioninthread"main"java.lang.NullPointerException
localhost:atorg.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:130)
怎么回事,在等..................
TOP
新手上路
Rank:1
12#
ch190957446发表于2009-11-3016:32|只看该作者
startingnamenode,loggingto/home/hadoop/HadoopInstall/hadoop/bin/../logs/hadoop-hadoop-namenode-hadoop.out
localhost:startingdatanode,loggingto/home/hadoop/HadoopInstall/hadoop/bin/../logs/hadoop-hadoop-datanode-hadoop.out
localhost:startingsecondarynamenode,loggingto/home/hadoop/HadoopInstall/hadoop/bin/../logs/hadoop-hadoop-secondarynamenode-hadoop.out
localhost:Exceptioninthread"main"java.lang.NullPointerException
localhost:atorg.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:130)
localhost:atorg.apache.hadoop.dfs.NameNode.getAddress(NameNode.java:116)
localhost:atorg.apache.hadoop.dfs.NameNode.getAddress(NameNode.java:120)
localhost:atorg.apache.hadoop.dfs.SecondaryNameNode.initialize(SecondaryNameNode.java:124)
localhost:atorg.apache.hadoop.dfs.SecondaryNameNode.<init>(SecondaryNameNode.java:108)
localhost:atorg.apache.hadoop.dfs.SecondaryNameNode.main(SecondaryNameNode.java:460)
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
13#
摩西莫西发表于2009-11-3021:34|只看该作者
14:09/08/3118:25:45INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.io.IOException:BadconnectackwithfirstBadLink192.168.1.11:50010
>09/08/3118:25:45INFOhdfs.DFSClient:Abandoningblockblk_-8575812198227241296_1001
>09/08/3118:25:51INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.io.IOException:
BadconnectackwithfirstBadLink192.168.1.16:50010
>09/08/3118:25:51INFOhdfs.DFSClient:Abandoningblockblk_-2932256218448902464_1001
>09/08/3118:25:57INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.io.IOException:
BadconnectackwithfirstBadLink192.168.1.11:50010
>09/08/3118:25:57INFOhdfs.DFSClient:Abandoningblockblk_-1014449966480421244_1001
>09/08/3118:26:03INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.io.IOException:
BadconnectackwithfirstBadLink192.168.1.16:50010
>09/08/3118:26:03INFOhdfs.DFSClient:Abandoningblockblk_7193173823538206978_1001
>09/08/3118:26:09WARNhdfs.DFSClient:DataStreamerException:java.io.IOException:Unable
tocreatenewblock.
>atorg.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2731)
>atorg.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2000(DFSClient.java:1996)
>atorg.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2182)
>
>09/08/3118:26:09WARNhdfs.DFSClient:ErrorRecoveryforblockblk_7193173823538206978_1001
baddatanode[2]nodes==null
>09/08/3118:26:09WARNhdfs.DFSClient:Couldnotgetblocklocations.Sourcefile"/user/umer/8GB_input"
-Aborting...
>put:BadconnectackwithfirstBadLink192.168.1.16:50010
解决方法:
Ihaveresolvedtheissue:
Whatidid:
1)'/etc/init.d/iptablesstop'-->stoppedfirewall
2)SELINUX=disabledin'/etc/selinux/config'file.-->disabledselinux
Iworkedformeafterthesetwochanges
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
14#
摩西莫西发表于2009-12-1709:02|只看该作者
15:把IP换成主机名,datanode挂不上
解决方法:
把temp文件删除,重启hadoop集群就行了
是因为多次部署,造成temp文件与namenode不一致的原因
(注:来源于群聊天记录感谢beyi童鞋)
摩西莫西
TOP
超级版主
Rank:8Rank:8
15#
eyjian发表于2009-12-1709:49|只看该作者
解决jline.ConsoleReader.readLine在Windows上不生效问题方法
在CliDriver.java的main()函数中,有一条语句reader.readLine,用来读取标准输入,但在Windows平台上该语句总是返回null,这个reader是一个实例jline.ConsoleReader实例,给WindowsEclipse调试带来不便。
我们可以通过使用java.util.Scanner.Scanner来替代它,将原来的
while((line=reader.readLine(curPrompt+">"))!=null)
复制代码
替换为:
Scannersc=newScanner(System.in);
while((line=sc.nextLine())!=null)
复制代码
重新编译发布,即可正常从标准输入读取输入的SQL语句了。
Windowseclispe调试hive报doesnothaveascheme错误可能原因
1、Hive配置文件中的“hive.metastore.local”配置项值为false,需要将它修改为true,因为是单机版
2、没有设置HIVE_HOME环境变量,或设置错误
3、“doesnothaveascheme”很可能是因为找不到“hive-default.xml”。使用Eclipse调试Hive时,遇到找不到hive-default.xml的解决方法:http://bbs.hadoopor.com/thread-292-1-1.html
TOP
超级版主
Rank:8Rank:8
十级勋章
16#
spork发表于2009-12-1710:08|只看该作者
1、中文问题
从url中解析出中文,但hadoop中打印出来仍是乱码?我们曾经以为hadoop是不支持中文的,后来经过查看源代码,发现hadoop仅仅是不支持以gbk格式输出中文而己。
这是TextOutputFormat.class中的代码,hadoop默认的输出都是继承自FileOutputFormat来的,FileOutputFormat的两个子类一个是基于二进制流的输出,一个就是基于文本的输出TextOutputFormat。
publicclassTextOutputFormat<K,V>extendsFileOutputFormat<K,V>{
protectedstaticclassLineRecordWriter<K,V>
implementsRecordWriter<K,V>{
privatestaticfinalStringutf8=“UTF-8″;//这里被写死成了utf-8
privatestaticfinalbyte[]newline;
static{
try{
newline=“\n”.getBytes(utf8);
}catch(UnsupportedEncodingExceptionuee){
thrownewIllegalArgumentException(”can’tfind”+utf8+”encoding”);
}
}
…
publicLineRecordWriter(DataOutputStreamout,StringkeyValueSeparator){
this.out=out;
try{
this.keyValueSeparator=keyValueSeparator.getBytes(utf8);
}catch(UnsupportedEncodingExceptionuee){
thrownewIllegalArgumentException(”can’tfind”+utf8+”encoding”);
}
}
…
privatevoidwriteObject(Objecto)throwsIOException{
if(oinstanceofText){
Textto=(Text)o;
out.write(to.getBytes(),0,to.getLength());//这里也需要修改
}else{
out.write(o.toString().getBytes(utf8));
}
}
…
}
可以看出hadoop默认的输出写死为utf-8,因此如果decode中文正确,那么将Linux客户端的character设为utf-8是可以看到中文的。因为hadoop用utf-8的格式输出了中文。
因为大多数数据库是用gbk来定义字段的,如果想让hadoop用gbk格式输出中文以兼容数据库怎么办?
我们可以定义一个新的类:
publicclassGbkOutputFormat<K,V>extendsFileOutputFormat<K,V>{
protectedstaticclassLineRecordWriter<K,V>
implementsRecordWriter<K,V>{
//写成gbk即可
privatestaticfinalStringgbk=“gbk”;
privatestaticfinalbyte[]newline;
static{
try{
newline=“\n”.getBytes(gbk);
}catch(UnsupportedEncodingExceptionuee){
thrownewIllegalArgumentException(”can’tfind”+gbk+”encoding”);
}
}
…
publicLineRecordWriter(DataOutputStreamout,StringkeyValueSeparator){
this.out=out;
try{
this.keyValueSeparator=keyValueSeparator.getBytes(gbk);
}catch(UnsupportedEncodingExceptionuee){
thrownewIllegalArgumentException(”can’tfind”+gbk+”encoding”);
}
}
…
privatevoidwriteObject(Objecto)throwsIOException{
if(oinstanceofText){
//Textto=(Text)o;
//out.write(to.getBytes(),0,to.getLength());
//}else{
out.write(o.toString().getBytes(gbk));
}
}
…
}
然后在mapreduce代码中加入conf1.setOutputFormat(GbkOutputFormat.class)
即可以gbk格式输出中文。
2、某次正常运行mapreduce实例时,抛出错误
java.io.IOException:Alldatanodesxxx.xxx.xxx.xxx:xxxarebad.Aborting…
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2158)
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
java.io.IOException:Couldnotgetblocklocations.Aborting…
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2143)
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)
atorg.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)
经查明,问题原因是linux机器打开了过多的文件导致。用命令ulimit-n可以发现linux默认的文件打开数目为1024,修改/ect/security/limit.conf,增加hadoopsoft65535
再重新运行程序(最好所有的datanode都修改),问题解决
3、运行一段时间后hadoop不能stop-all.sh的问题,显示报错
notasktrackertostop,nodatanodetostop
问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。
在配置文件中的exportHADOOP_PID_DIR可以解决这个问题
由淘宝数据平台团队台共享
Enjoy.Tech.Life
http://spork.cnblogs.com/
TOP
超级版主
Rank:8Rank:8
17#
eyjian发表于2010-1-1515:54|只看该作者
本帖最后由hadoopor于2010-1-1516:15编辑
问题:
IncompatiblenamespaceIDsin/usr/local/hadoop/dfs/data:namenodenamespaceID=405233244966;datanodenamespaceID=33333244
原因:
在每次执行hadoopnamenode-format时,都会为NameNode生成namespaceID,,但是在hadoop.tmp.dir目录下的DataNode还是保留上次的namespaceID,因为namespaceID的不一致,而导致DataNode无法启动,所以只要在每次执行hadoopnamenode-format之前,先删除hadoop.tmp.dir目录就可以启动成功。请注意是删除hadoop.tmp.dir对应的本地目录,而不是HDFS目录。
TOP
超级版主
Rank:8Rank:8
十级勋章
18#
alexanderdai发表于2010-2-914:24|只看该作者
针对第一个问题我纠正下答案:
这是reduce预处理阶段shuffle时获取已完成的map的输出失败次数超过上限造成的,上限默认为5。引起此问题的方式可能会有很多种,比如网络连接不正常,连接超时,带宽较差以及端口阻塞等。。。通常框架内网络情况较好是不会出现此错误的。
国宝
TOP
超级版主
Rank:8Rank:8
19#
eyjian发表于2010-2-922:01|只看该作者
Problem:Storagedirectorynotexist
2010-02-0921:37:49,890INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:STARTUP_MSG:
/************************************************************
STARTUP_MSG:StartingNameNode
STARTUP_MSG:host=yijian/192.168.0.13
STARTUP_MSG:args=[]
STARTUP_MSG:version=0.20.1
STARTUP_MSG:build=http://svn.apache.org/repos/asf/.../release-0.20.1-rc1-r810220;compiledby'oom'onTueSep120:55:56UTC2009
************************************************************/
2010-02-0921:37:52,093INFOorg.apache.hadoop.ipc.metrics.RpcMetrics:InitializingRPCMetricswithhostName=NameNode,port=8888
2010-02-0921:37:52,125INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:Namenodeupat:127.0.0.1/127.0.0.1:8888
2010-02-0921:37:52,140INFOorg.apache.hadoop.metrics.jvm.JvmMetrics:InitializingJVMMetricswithprocessName=NameNode,sessionId=null
2010-02-0921:37:52,156INFOorg.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics:InitializingNameNodeMetericsusingcontextobject:org.apache.hadoop.metrics.spi.NullContext
2010-02-0921:37:53,000INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:fsOwner=jian,None,root,Administrators,Users
2010-02-0921:37:53,000INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:supergroup=supergroup
2010-02-0921:37:53,000INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:isPermissionEnabled=true
2010-02-0921:37:53,031INFOorg.apache.hadoop.hdfs.server.namenode.metrics.FSNamesystemMetrics:InitializingFSNamesystemMetricsusingcontextobject:org.apache.hadoop.metrics.spi.NullContext
2010-02-0921:37:53,046INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:RegisteredFSNamesystemStatusMBean
2010-02-0921:37:53,203INFOorg.apache.hadoop.hdfs.server.common.Storage:StoragedirectoryD:\hadoop\run\dfs_name_dirdoesnotexist.
2010-02-0921:37:53,203ERRORorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:FSNamesysteminitializationfailed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:DirectoryD:\hadoop\run\dfs_name_dirisinaninconsistentstate:storagedirectorydoesnotexistorisnotaccessible.
atorg.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:290)
atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2010-02-0921:37:53,234INFOorg.apache.hadoop.ipc.Server:Stoppingserveron8888
2010-02-0921:37:53,234ERRORorg.apache.hadoop.hdfs.server.namenode.NameNode:org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:DirectoryD:\hadoop\run\dfs_name_dirisinaninconsistentstate:storagedirectorydoesnotexistorisnotaccessible.
atorg.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:290)
atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2010-02-0921:37:53,250INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG:ShuttingdownNameNodeatyijian/192.168.0.13
************************************************************/
solution:是因为存储目录D:\hadoop\run\dfs_name_dir不存在,所以只需要手动创建好这个目录即可。
Problem:NameNodeisnotformatted
2010-02-0921:52:49,343INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:STARTUP_MSG:
/************************************************************
STARTUP_MSG:StartingNameNode
STARTUP_MSG:host=yijian/192.168.0.13
STARTUP_MSG:args=[]
STARTUP_MSG:version=0.20.1
STARTUP_MSG:build=http://svn.apache.org/repos/asf/.../release-0.20.1-rc1-r810220;compiledby'oom'onTueSep120:55:56UTC2009
************************************************************/
2010-02-0921:52:49,531INFOorg.apache.hadoop.ipc.metrics.RpcMetrics:InitializingRPCMetricswithhostName=NameNode,port=8888
2010-02-0921:52:49,531INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:Namenodeupat:127.0.0.1/127.0.0.1:8888
2010-02-0921:52:49,546INFOorg.apache.hadoop.metrics.jvm.JvmMetrics:InitializingJVMMetricswithprocessName=NameNode,sessionId=null
2010-02-0921:52:49,546INFOorg.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics:InitializingNameNodeMetericsusingcontextobject:org.apache.hadoop.metrics.spi.NullContext
2010-02-0921:52:50,250INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:fsOwner=jian,None,root,Administrators,Users
2010-02-0921:52:50,250INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:supergroup=supergroup
2010-02-0921:52:50,250INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:isPermissionEnabled=true
2010-02-0921:52:50,265INFOorg.apache.hadoop.hdfs.server.namenode.metrics.FSNamesystemMetrics:InitializingFSNamesystemMetricsusingcontextobject:org.apache.hadoop.metrics.spi.NullContext
2010-02-0921:52:50,265INFOorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:RegisteredFSNamesystemStatusMBean
2010-02-0921:52:50,359ERRORorg.apache.hadoop.hdfs.server.namenode.FSNamesystem:FSNamesysteminitializationfailed.
java.io.IOException:NameNodeisnotformatted.
atorg.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:317)
atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2010-02-0921:52:50,359INFOorg.apache.hadoop.ipc.Server:Stoppingserveron8888
2010-02-0921:52:50,359ERRORorg.apache.hadoop.hdfs.server.namenode.NameNode:java.io.IOException:NameNodeisnotformatted.
atorg.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:317)
atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2010-02-0921:52:50,359INFOorg.apache.hadoop.hdfs.server.namenode.NameNode:SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG:ShuttingdownNameNodeatyijian/192.168.0.13
************************************************************/
solution:是因为HDFS还没有格式化,只需要运行hadoopnamenode-format一下,然后再启动即可
TOP
版主
Rank:7Rank:7Rank:7
十级勋章
20#
摩西莫西发表于2010-2-2509:27|只看该作者
bin/hadoopjps后报如下异常:
Exceptioninthread"main"java.lang.NullPointerException
atsun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms(LocalVmManager.java:127)
atsun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.activeVms(MonitoredHostProvider.java:133)
atsun.tools.jps.Jps.main(Jps.java:45)
原因为:
系统根目录/tmp文件夹被删除了。重新建立/tmp文件夹即可。
bin/hive
中出现unabletocreatelogdirectory/tmp/...也可能是这个原因
摩西莫西
TOP
123下一页
返回列表
Hadoop技术论坛(湘ICP备09027949号)|联系我们|Archiver|WAP|
GMT+8,2012-4-1221:27,Processedin0.057414second(s),10queries.
PoweredbyDiscuz!7.2
©2001-2010ComsenzInc.