2013-03-15

      查询某个产品的日志时,select语句的map reduce任务进度反复,记得好像是map从0变到50%,就不往下进行了,直到失败,没有明显可辨的错误信息出来,只是提示时间过长,超时失败。

      首先在网上查询,大多数是提示,修改mapred-site.xml文件,将mapred.task,timeout这个参数值调大,或者设置为0,将永远不提示超时,结果就是任务进度反复更长的时间之后,提示失败。尝试将所有日志文件合并成一个,发现map一直停留在0,根本不执行了。

       回归到问题本身,用了最简陋的办法,挨个排查日志文件,因为心里有两个方向:1 集群搭建的效率问题 2 日志文件有些异常的行。直觉更倾向于第2个问题。

       首先,然后开始10个一组删除文件,观察删除文件后任务能否正常执行,最后只剩10个文件的时候,删除靠前的5个,发现问题仍然存在,而删除另外5个,则能正常运行,说明了不是文件个数的问题,同时能正常运行的5个文件也比不能运行的那5个大一些,证明了不是文件大小的问题。最后将问题定位在某一个日志文件,然后将该文件10行一组删除内容,定位到某个数据行,最终发现是一行数据,无法被当时建表时定义的serde所处理。

     建表语句如下:

   create external table if not exists 表名 (字段) row format SERDE 'org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe'WITH SERDEPROPERTIES ('serialization.format'='org.apache.hadoop.hive.serde2.thrift.TCTLSeparatedProtocol','quote.delim'='("|\\[|\\])','field.delim'=' ') STORED AS TEXTFILE location '/×/×';

  处理不了的行没有具体记录,是其中一个字段中有一对(),导致现有的serde处理不了。

        后来决定使用很多资料里介绍的另外一个serde:RegexSerde。另外,在某一天某个网页中发现有hive开发相关的人员出来指明dynamicserde要被废弃了,号召大家使用regexserde。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
改正以下mysql语句:CREATE TABLE employees ( EmployeeID int NOT NULL AUTO_INCREMENT COMMENT '工号', Name varchar(20) NOT NULL COMMENT '姓名', sex char(2) DEFAULT NULL COMMENT '性别', BirthDate date DEFAULT NULL COMMENT '出生日期', Phone varchar(24) DEFAULT NULL COMMENT '电话', HireDate date DEFAULT NULL COMMENT '入职日期', Address varchar(15) DEFAULT NULL COMMENT '工作地点', Title varchar(30) DEFAULT NULL COMMENT '职位', ReportsTo int(11) DEFAULT NULL COMMENT '上级工号', PRIMARY KEY (EmployeeID), KEY FK_Employees_Employees (ReportsTo), KEY Name (Name), CONSTRAINT FK_Employees_Employees FOREIGN KEY (ReportsTo) REFERENCES employees (EmployeeID), CONSTRAINT employees_chk_1 CHECK (((sex = '男') or (sex = '女'))) ) ENGINE=InnoDB AUTO_INCREMENT=11; insert into employees(EmployeeID,Name,sex,BirthDate,Phone,HireDate,Address,Title,ReportsTo) values (1,'蔡小叶','女','1983-11-10','15651718131','2014-01-02','海南省三亚市','销售员',NULL), (2,'陈会玲','女','1983-12-24','15651792676','2011-09-10','河南省焦作市','总经理',NULL), (3,'陈荣','女','1984-03-14','18052098320','2014-09-26','江苏省南京市','销售员',NULL), (4,'江小利','女','1983-12-10','15651793136','2012-09-07','四川省蒲江市','销售员',NULL), (5,'吕倩','女','1980-10-28','15651036060','2014-08-27','浙江省宁波市','销售经理',NULL), (6,'于小飞','男','1984-02-19','15605167963','2013-12-16','湖北省宜昌市','销售员',NULL), (7,'袁卫华','男','1983-09-23','18761666129','2014-01-09','江苏省溧阳县','销售员',NULL), (8,'张家瑞','男','1983-05-26','18652204573','2012-09-05','四川省宜宾市','销售经理',NULL), (9,'张玉','男','1984-02-15','18914785173','2013-04-21','安徽省安庆市','销售员',NULL), (10,'赵恒','男','1983-03-10','18761662284','2012-10-30','深圳',NULL,NULL); 停止 复制
最新发布
06-12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值