`

mapreduce 操作hbase、mysql

阅读更多
public class MyAction {


	public static void main(String[] args) {
		UserGroupInformation ugi = UserGroupInformation.createRemoteUser("hadoop");
		ugi.doAs(new PrivilegedAction<Void>() {
			public Void run() {
				try{
					System.setProperty("path.separator", ":");
					
					Configuration conf = new Configuration();
					
					//可以设置用到的第三方jar
					conf.set("tmpjars", "/tmp/jars/mysql-connector-java-5.1.7-bin.jar");
					
					DBConfiguration.configureDB(conf, "com.mysql.jdbc.Driver", "jdbc:mysql://172.168.8.54:3306/test","hadoop", "hadoop");
					
					conf.set("mapred.job.tracker", "127.0.0.1:9001");
					conf.set("fs.default.name", "hdfs://127.0.0.1:9000");
					conf.set("hadoop.job.ugi", "hadoop");
					conf.set("hbase.zookeeper.quorum","127.0.0.1,127.0.0.1,127.0.0.1");
					conf.set("hbase.zookeeper.property.clientPort", "2181"); 
					
					Job job = new Job(conf);
					job.setJobName("MyAction");
					job.setJarByClass(MyAction.class);
										
					job.setOutputFormatClass(DBOutputFormat.class);
					
					Scan scan = new Scan();
					TableMapReduceUtil.initTableMapperJob("misdn_catetory13", scan, MyMapper.class,	MapOut.class, NullWritable.class, job);
					
					DBOutputFormat.setOutput(job, "misdn_catetory13", new String[]{"mid","mfamily","mcolumn","mvalue"});
					
					job.waitForCompletion(true);
				}catch(Exception e){
					e.printStackTrace();
				}
				return null;
			}});
	}

}


public class MyMapper extends TableMapper<MapOut,NullWritable> {

	@Override
	protected void map(ImmutableBytesWritable key, Result value,Context context)
			throws IOException, InterruptedException {
		
		String rkey=new String(key.get());
		
		List<KeyValue> list=value.list();
		
		for(KeyValue kv:list){
			MapOut mapOut=new MapOut();
			mapOut.setKey(rkey);
			mapOut.setFamily(new String(kv.getFamily()));
			mapOut.setColumn(new String(kv.getQualifier()));
			mapOut.setValue(new String(kv.getValue()));
			context.write(mapOut, NullWritable.get());
		}
	}

}


public class MapOut implements WritableComparable<MapOut>,DBWritable {
	
	private String key;
	
	private String family;
	
	private String column;
	
	private String value;

	public void readFields(DataInput in) throws IOException {
		key=in.readUTF();
		family=in.readUTF();
		column=in.readUTF();
		value=in.readUTF();
	}

	public void write(DataOutput out) throws IOException {
		out.writeUTF(key);
		out.writeUTF(family);
		out.writeUTF(column);
		out.writeUTF(value);
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}

	public String getFamily() {
		return family;
	}

	public void setFamily(String family) {
		this.family = family;
	}

	public String getColumn() {
		return column;
	}

	public void setColumn(String column) {
		this.column = column;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public int compareTo(MapOut o) {
		return this.key.compareTo(o.getKey());
	}

	public void readFields(ResultSet arg0) throws SQLException {
		// TODO Auto-generated method stub
		
	}

	public void write(PreparedStatement ps) throws SQLException {
		ps.setString(1, key);
		ps.setString(2, family);
		ps.setString(3, column);
		ps.setString(4, value);
	}

分享到:
评论

相关推荐

    MapReduce实例

    使用MapReduce读取hbase数据库中千万级别的数据,处理数据并统计,将统计后的结果存入mysql

    hadoop的mapreduce把oracle/mysq导入到hbase和hdfs中的程序

    利用hadoop的mapreduce把oracle/mysql中的数据导入到hbase和hdfs中的两个java程序

    毕设项目基于SSM框架实现的二手交易平台项目源码+项目说明.zip

    毕设项目基于SSM框架实现的二手交易平台项目源码+项目说明.zip 首先该项目主题是二手交易系统,在该程序中可以实现两种角色权限进行登录 用户权限登录:使用用户权限...大数据技术:flume、kafka、MapReduce、HBASE等

    nosql 入门教程

    11.2 MapReduce和HBase 192 11.3 MapReduce和Apache Mahout 196 11.4 小结 197 第12章 使用Hive分析大数据 199 12.1 Hive基础 199 12.2 回到电影评分 203 12.3 亲切的SQL 209 12.4 HiveQL连接 211 12.4.1 ...

    大数据技术开发环境搭建.docx

    安装MySQL 68 Hive安装 70 Redis安装和使用 74 MongoDB安装和使用 83 Neo4j安装和使用 96 安装Spark 103 使用 Spark Shell 编写代码 104 Scala独立应用编程 106 Java独立应用编程 109 使用Eclipse编写Spark...

    读写数据库数据的mr程序

    以落地方式从mysql数据库读取数据到HBASE中的mapreduce程序

    Practical Hadoop Ecosystem(Apress,2016)

    This book is a practical guide on using the Apache Hadoop projects including ...How to transfer data from MySQL database to Hive, HDFS and HBase with Sqoop How create a Hive table over Apache Solr

    hadoop笔记

    hbase : mysql 是基于 linux/windows 的文件系统的数据库 ,而 hbase 就是基于 hdfs 文件系统的数据库 5. flume : 就是一个水泵 ,将水从一个源水坑 ,抽到另一个目的水坑中 ,当然 flume 抽的是 "数据" ,将数据从一个...

    大数据学习计划.pdf

    1、通过对 Linux 操作系统体系结构、 服务管理、包管理、NTP 协议时间 服务器、关系型数据库理论和 MySQL 数据库等相关知识的学习, 掌握⼤部分安装部署 Hadoop 集群操作系统层⾯的技能,为后续搭建 Hdoop 集群、对...

    Hadoop集群(1-11期)

    Hadoop集群·MapReduce初级案例(第9期) Hadoop集群·MySQL关系数据库(第10期) Hadoop集群·常用MySQL数据库命令(第10期副刊) Hadoop集群·HBase简介及安装(第11期) Hadoop集群·HBase之旅(第11期副刊)

    大数据应用测试经验总结.pdf

    数据采集:采集使⽤java和python程序从⽂件服务器下载⽂件,并把⽂件写⼊kafka、Hbase和Hive、Mysql中; 2. 计算引擎:使⽤Hive on Tez计算引擎实现ETL跑批任务;使⽤spark streaming实现实时计算;使⽤Phoenix做...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    技术点11 使用HBase 作为MapReduce 的数据接收器 2.4 本章小结 3 数据序列化――处理文本文件及其他格式的文件 3.1 了解MapReduce 中的输入和输出 3.1.1 数据输入 3.1.2 数据输出 3.2 处理常见的序列...

    Hadoop实战(第2版)

    2.2.3 从数据库中拉数据技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源2.3 将数据导出...

    大数据运维技术第9章 Sqoop组件安装配置.pptx

    当大数据存储和Hadoop生态系统的MapReduce,Hive,HBase等分析器出现时,他们需要一种工具来与关系数据库服务器进行交互,以导入和导出驻留在其中的大数据。Sqoop在Hadoop生态系统中占据一席之地,为关系数据库...

    基于hadoop实现的电影推荐网站+源代码+文档说明

    描述:使用hbase和mysql作为网站数据库,使用flume来监听项目输出的activity.out日志信息,不断地把增量数据自动上传到HDFS中,使用hive来创建外部表来把Flume传过来的数据进行入库,使用HQL语法来对所得数据进行...

    基于hadoop生态实现的的电影网站+源代码+文档说明

    使用协同过滤算法实现喜好推荐:用户在对某电影评分时在MYSQL的评分表中插入一条数据,以此来收集用户评分信息(MySQL),每过一段时间就对该时段内的评分数据进行协同过滤算法的MapReduce计算,计算结果是存储在...

    MapReduceSkeleton:Hadoop MapReduce 骨架

    MapReduceSkeleton介绍这是一个 MapReduce Skeleton 作业,支持 MariaDB/MySQL(和即将推出的 HBase)作为输入数据集和输出。 SQL配置在Main.java中,如果使用UPDATE方式,需要修改MysqlDBOutputFormat.java中的...

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    02-hive的元数据库mysql方式安装配置.avi 03-hive的使用.avi 04-hive的常用语法.avi 05-hql语法及自定义函数.avi 06-hbase表结构.avi 07-hbase集群架构及表存储机制.avi 08-hbase-shell.avi 09-hbase的java ...

    大数据之运维.pptx

    Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为...

    2017最新大数据架构师精英课程

    117_hbase大批量操作7 [! ^" m3 B$ C. {1 S$ h. X 118_hbase架构-表和区域切割( p4 _0 k) J9 A/ ~; [ F 119_hbase架构-区域的合并 120_hbase get-scan-范围指定 121_扫描缓存-超时-切片' O; n; m' P; a6 T/ H$ S! ^ ...

Global site tag (gtag.js) - Google Analytics