文档章节

reduce输出结果到sqlserver数据库异常

小黑放大
 小黑放大
发布于 2015/01/28 17:29
字数 362
阅读 85
收藏 0

最近在做个hadoop统计的小项目,结果需要输出到sqlserver数据,其中遇到一些小问题

在map、reduce进行的比较顺利,因为数据比较规范,很快都搞定了

在运行时出现以下情况

遇到这种情况,第一时间想到是因为结点上驱动包的问题

对于缺少驱动的问题,有两种方案

1、在集群的每个结点${HADOOP_HOME}/lib下添加驱动包,并重启集群。这是最原始的方法,因为需要重启集群,不建议使用

2、先把驱动包上传到集群中

hadoop fs -put /lib/sqljdbc.jar

然后在新建Job之前添加到classpath环境中

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
//添加到classpath
DistributedCache.addFileToClassPath(new Path("/lib/sqljdbc.jar"), conf, fs);

//必须在新建JOB之前执行,这样才能在初始化 加载数据库驱动、以及连接数据库 传入到conf中供JOB使用
DBConfiguration.configureDB(conf, "com.microsoft.sqlserver.jdbc.SQLServerDriver", 
    "jdbc:sqlserver://192.168.240.1:1433;DatabaseName=dbname", "sa", "123456");
Job job = new Job(conf, "statistic");

job.setJarByClass(DbnameDownedStatistic.class);
job.setMapperClass(StatisticMap.class);
job.setReducerClass(StatisticReducer.class);

job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);

job.setOutputKeyClass(StatisticDBWritable.class);
job.setOutputValueClass(Text.class);
job.setNumReduceTasks(4);

job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(DBOutputFormat.class);

FileInputFormat.addInputPath(job, new Path("hdfs://node1:9000/user/hadoop/statictic/"));
String[] fileds = new String[] { "name","down", "count" };
DBOutputFormat.setOutput(job, "statistic", fileds);

System.exit(job.waitForCompletion(true) ? 0 : 1);


这里需要注意的是

DBConfiguration.configureDB();

这个方法必须在new Job()之前执行,这样conf才能加载到驱动包,才能保证其他结点也能加载到驱动包

© 著作权归作者所有

小黑放大
粉丝 5
博文 20
码字总数 13283
作品 0
武汉
程序员
私信 提问
加载中

评论(0)

Django连接SQL Server配置指引

Django连接SQL Server配置指引 1. 前言 Django只内置了几个 Database Backend(mysql、oracle、sqllite3(默认)、postgresql_psycopg2),所以原生并不支持Microsoft SQL Server。 好在有前...

osc_65e48kpp
2019/03/11
36
0
java连接sqlserver报错

使用Java进行项目开发,一般是使用MySQL数据库,由于项目需要本次换成了SQLServer数据库,在eclipse中进行连接测试时驱动类、URL地址、用户名和密码都正确,但是会抛出以下异常,无法正确连接...

osc_joe3czc9
2019/06/02
2
0
sql server 数据库异常 现象 ----2018/12/28

前天 第三方公司安装sqlserver数据库 把默认数据库 路径改了,造成默认数据库无法启动,阿里云服务器进行了回滚切片的操作。 昨天 同事把sqlserver数据库复制出来然后进行了 阿里云服务器 重...

osc_r6x89s0u
2018/12/28
1
0
【转载】 Sqlserver中查看自定义函数被哪些对象引用

Sqlserver数据库中支持自定义函数,包含表值函数和标量值函数,表值函数一般返回多个数据行即数据集,而标量值函数一般返回一个值,在数据库的存储过程中可调用自定义函数,也可在该自定义函...

osc_8ieji7o1
2019/03/09
1
0
SQLServer数据库同步准实时解决方案

下载网站:www.SyncNavigator.CN 客服QQ1793040 ---------------------------------------------------------- 关于HKROnline SyncNavigator 注册机价格的问题 HKROnline SyncNavigator 8.4.......

osc_y1pyjby5
2018/12/28
11
0

没有更多内容

加载失败,请刷新页面

加载更多

直接显示StackOverflow的答题日期, 增加评论区回复的时间显示 ,修改时间显示到小时分。

// ==UserScript==// @name 直接显示StackOverflow的答题日期, 增加评论区回复的时间显示 ,修改时间显示到小时分。// @namespace http://tampermonkey.net/// @version ...

FalconChen
今天
36
0
Shader笔记_005 纹理

纹理最初的目的就是使用一张图片来控制模型的外观,通过纹理映射技术 我们可以把一张图粘贴在物体表面,逐纹素的控制模型的颜色。 通常美术建模的时候也会在软件里利用纹理展开技术把纹理展开成...

STONE-CITY
今天
12
0
iOS MVVM 与RAC结合使用

MVVM配合 RAC 更能发挥的淋漓尽致。 我们把 MVVM 第一篇的例子 KVO 的事件 替换成 配合RAC 框架使用, OC的话直接导入 : pod 'ReactiveObjC' Swift 直接用 RXSwift就可以。 把 ViewModel里加...

T型人才追梦者
今天
22
1
OSChina 周一乱弹 —— 影响心情的三座大山

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《浮生(inst.)》- 忘乡 / 墨凡悦 手机党少年们想听歌,请使劲儿戳(这里) @凝小紫...

小小编辑
今天
55
0
Unity中头发渲染

头发与普通PBR 材质最大的区别是 头发是各项异性的高光, 参考实现主要为下面文章 http://web.engr.oregonstate.edu/~mjb/cs519/Projects/Papers/HairRendering.pdf 头发包含 2个高光,以及高...

liyong2
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部