Hadoop常見(jiàn)錯(cuò)誤和處理方式
常見(jiàn)問(wèn)題及處理
- mysql版本,必須是MYSQL5.1。
查詢辦法mysqladmin version
在建立hive數(shù)據(jù)庫(kù)的時(shí)候,最好是:create database hive;
oozie的數(shù)據(jù)庫(kù),同樣:create database oozie;
hadoop采集的字符集問(wèn)題。
修改/etc/sysconfig/i18n 更改字符集為en_US.UTF-8
重啟機(jī)器生效。
重啟機(jī)器的指令為:在root下敲入如下指令:sync;sync;init 6
修改mapreduce。
在gateway/性能下修改:MapReduce 子 Java 基礎(chǔ)選項(xiàng) 、Map 任務(wù) Java 選項(xiàng)庫(kù) 、Reduce 任務(wù) Java 選項(xiàng)庫(kù) 全部配置成 -Xmx4294967296
在TASKTRACKER/性能下修改:MapReduce 子 Java 基礎(chǔ)選項(xiàng) 、Map 任務(wù) Java 選項(xiàng)庫(kù) 、Reduce 任務(wù) Java 選項(xiàng)庫(kù) 全部配置成 -Xmx4294967296
必須關(guān)注各個(gè)任務(wù)的詳細(xì)情況
當(dāng)出現(xiàn)如下的錯(cuò)誤的時(shí)候,請(qǐng)及時(shí)的將下載的進(jìn)程數(shù)調(diào)小。
- vi /home/boco/oozie_wy/config/lte/mro/ftp/807101.xml 將max_thread由原來(lái)的6個(gè)調(diào)整為3個(gè),或者協(xié)調(diào)廠家加大FTP的最大線程數(shù)。
- stderr logs:
- org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:363)
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
- at org.apache.commons.net.ftp.FTP.connectAction(FTP.java:396)
- at org.apache.commons.net.ftp.FTPClient.connectAction(FTPClient.java:796)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:285)
- at com.boco.wangyou.utils.Ftp.connectServer(Ftp.java:550)
- at com.boco.wangyou.lte.mro.ftp.tools.FindFileThread.run(FindFileThread.java:67)
- 登錄ftp服務(wù)器【10.140.177.149】失敗,F(xiàn)TP服務(wù)器無(wú)法打開(kāi)!
- org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:363)
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
- at org.apache.commons.net.ftp.FTP.connectAction(FTP.java:396)
- at org.apache.commons.net.ftp.FTPClient.connectAction(FTPClient.java:796)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:285)
- at com.boco.wangyou.utils.Ftp.connectServer(Ftp.java:550)
- at com.boco.wangyou.lte.mro.ftp.tools.FindFileThread.run(FindFileThread.java:67)
- 登錄ftp服務(wù)器【10.140.177.149】失敗,F(xiàn)TP服務(wù)器無(wú)法打開(kāi)!
- org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:363)
- at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
- at org.apache.commons.net.ftp.FTP.connectAction(FTP.java:396)
- at org.apache.commons.net.ftp.FTPClient.connectAction(FTPClient.java:796)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)
- at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
- TASKTRACKER和HDFS組的問(wèn)題
發(fā)現(xiàn)部分地方在安裝的時(shí)候,將所有的機(jī)器分組的問(wèn)題。
如果分組,需要將每個(gè)組的參數(shù)都要修改。
目前發(fā)現(xiàn)很多的地方,TASKTRACKER和HDFS都分了組,但是只修改一組的參數(shù),造成系統(tǒng)大量出問(wèn)題。
java heap size以及tasktracker被拉黑名單的問(wèn)題。
- namenode和datanode的內(nèi)存配置問(wèn)題。
建議將使用的內(nèi)存修改為4G左右。
- 建議將HIVE2服務(wù)放到一個(gè)輔節(jié)點(diǎn)上。
hive2放到輔節(jié)點(diǎn)上,經(jīng)常出現(xiàn)add_partation掛起報(bào)錯(cuò)。
- 解決HIVE經(jīng)常掛死的問(wèn)題
修改zookeeper的最大客戶端連接數(shù),maxClientCnxns修改為3600或者修改成0不限制
自動(dòng)清空時(shí)間間隔,autopurge.purgeInterval 修改為1小時(shí)
- 廠家XML配置的問(wèn)題。
如果廠家是這樣的:/data/dataservice/mr/ltemro/huawei/20140815/01/362323/TD-LTE_MRO_HUAWEI_010133150144_362323_20140815011500.xml.gz
建議配置成這樣的:
路徑:/data/dataservice/mr/ltemro/huawei/$TIME$/$ENODEB$
時(shí)間格式:yymmdd/hh
- 在/home/boco/oozie_wy/config/lte/mro/ftp下禁止存放.bak文件
有一個(gè)省份的mapper數(shù)超多,導(dǎo)致解析很長(zhǎng)時(shí)間沒(méi)有完成。
進(jìn)一步發(fā)現(xiàn)FTP在合并文件的時(shí)候報(bào)錯(cuò),再進(jìn)一步發(fā)現(xiàn)同一個(gè)IP地址,同一個(gè)OMC啟動(dòng)了三個(gè)mapper進(jìn)程去下載數(shù)據(jù)導(dǎo)致文件合并失敗。
發(fā)現(xiàn)是修改了ftp.xml文件,沒(méi)有刪除原來(lái)的文件,而是以一個(gè)bak文件存放。
刪除這些bak文件,mapper數(shù)量正常。
原mapper數(shù)1731個(gè),刪除之后mapper數(shù)41個(gè),采集正常。
打開(kāi)50030看FTP的日志,存在如下的報(bào)錯(cuò):
- java.io.FileNotFoundException: File does not exist: /user/boco/cache/wy/ltemro/1411032293348/xml/155/2014-09-18_11/TD-LTE_MRO_ERICSSON_OMC1_303024_20140918111500.xml.zip
- at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:39)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsUpdateTimes(FSNamesystem.java:1341)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:1293)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1269)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1242)
- at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:392)
- at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:172)
- at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44938)
- at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
- at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002)
- at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1701)
- at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1697)
- at java.security.AccessController.doPrivileged(Native Method)
- 或者:
- org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException):
- Lease mismatch on /user/boco/cache/wy/ltemro/1411032293348/xml/155/2014-09-18_11/TD-LTE_MRO_ERICSSON_OMC1_3030_20140918.xml owned by DFSClient_NONMAPREDUCE_
- -1274827212_1 but is accessed by DFSClient_NONMAPREDUCE_-216613905_1
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:2459)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:2437)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFileInternal(FSNamesystem.java:2503)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFile(FSNamesystem.java:2480)
- at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.complete(NameNodeRpcServer.java:535)
- at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.complete(ClientNamenodeProtocolServerSideTranslatorPB.java:337)
- at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44958)
- at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
- at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002)
- REDIS故障
解析時(shí)候報(bào)錯(cuò),錯(cuò)誤如下:
- redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
- at redis.clients.util.Pool.getResource(Pool.java:22)
- at com.boco.wangyou.utils.JedisUtils.getJedis(JedisUtils.java:47)
- at com.boco.wangyou.utils.JedisUtils.getTableValues(JedisUtils.java:119)
- at com.boco.wangyou.lte.mro.tdl.tools.LteMroXMLParser.
此問(wèn)題一般是因?yàn)镽EDIS沒(méi)有啟動(dòng)導(dǎo)致。
- 克隆機(jī)器安裝的問(wèn)題
把一個(gè)節(jié)點(diǎn)的第二步都裝好了,把它克隆到其它主機(jī)上,再把克隆到的主機(jī)的IP
(注意在修改IP配置文件的時(shí)候,將HWaddr也改了,一般是這種格式:00:50:56:80:4E:D6,
否則在連接時(shí)會(huì)找不到硬盤)和主機(jī)名改下。
此種情況主要出現(xiàn)在使用vmvare vsphere克隆導(dǎo)致的。
注意:
克隆之后的機(jī)器要修改IP地址,主機(jī)名,MAC地址。
- redis掛死,導(dǎo)致無(wú)法采集
- #現(xiàn)象
redis.clients.jedis.exceptions.JedisDataException:
- MISCONF Redis is configured to save RDB snapshots,
- but is currently not able to persist on disk.
啟動(dòng)客戶端:
- /usr/local/redis/redis-cli
輸入:
- config set stop-writes-on-bgsave-error no
- 主節(jié)點(diǎn)7180無(wú)法訪問(wèn)
1)檢查主節(jié)點(diǎn)是不是日志空間滿了,如果滿了,需要?jiǎng)h除/var/log/hive下面日志
2)刪除瀏覽器的cookie訪問(wèn)記錄
hadoop相關(guān)服務(wù)啟動(dòng)命令:
- sudo service cloudera-scm-server stop
- sudo service cloudera-scm-server-db stop
- sudo service cloudera-scm-server start
- sudo service cloudera-scm-server-db start
- LTEMRO采集報(bào)錯(cuò)
主要是在這一步報(bào)錯(cuò):CREATE_EXTERNAL_TABLE_NODE
有效的采樣點(diǎn)數(shù)據(jù),是如下的八個(gè)字段必須有值:
- MR.LteScEarfcn 主小區(qū)頻點(diǎn)
- MR.LteScPci 主小區(qū)PCI
- MR.LteScRSRP 主小區(qū)的RSRP
- MR.LteScRSRQ 主小區(qū)RSRQ
- MR.LteNcEarfcn 鄰小區(qū)頻點(diǎn)
- MR.LteNcPci 鄰小區(qū)PCI
- MR.LteNcRSRP 鄰小區(qū)的RSRP
- MR.LteNcRSRQ 鄰小區(qū)RSRQ
只要有有效數(shù)據(jù),就不會(huì)報(bào)這個(gè)錯(cuò)。
- 查看日志
HIVE的日志主要是在:/var/log/hive/
oozie的日志主要在: /var/log/oozie/
HDFS的日志主要在: /var/log/hadoop-hdfs/
zookeeper的日志主要在:/var/log/zookeeper/
在出現(xiàn)問(wèn)題的時(shí)候,可以看看這些日志。
- zookeeper無(wú)法啟動(dòng)。
處理辦法:到master主機(jī)的/var/lib/zookeeper,刪除所有的文件,重啟zookeeper即可。
sudo mkdir version-2
sudo chown -R zookeeper:zookeeper version-2
- loudera-manager-installer.bin安裝報(bào)錯(cuò)。
報(bào)錯(cuò)如下:
- Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto,
- : refresh-packagekit, security, tmprepo, verify, versionlock
- Loading support for CentOS kernel ABI
- Loading mirror speeds from cached hostfile
- http://10.233.9.63/cdh4.3.0/cdh4.3/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403"
- Trying other mirror.
- Error: Cannot retrieve repository metadata (repomd.xml) for repository: cloudera-cdh4. Please verify its path and try again
處理辦法:
刪除集群中每一臺(tái)機(jī)器上原有的repo文件,rm -rf /etc/yum.repos.d/*
然后修改cloudera-chd4.repo、cloudera-impala.repo和 cloudera-manager.repo文件,將文件中的地址換成主節(jié)點(diǎn)的地址。
將cloudera-chd4.repo、cloudera-impala.repo和 cloudera-manager.repo文件上傳到集群中每一臺(tái)機(jī)器的/etc/yum.repos.d/目錄下。