Mysql中数据:
mysql> select * from lxw_tbls; +---------------------+----------------+ | TBL_NAME | TBL_TYPE | +---------------------+----------------+ | lxw_test_table | EXTERNAL_TABLE | | lxw_t | MANAGED_TABLE | | lxw_t1 | MANAGED_TABLE | | tt | MANAGED_TABLE | | tab_partition | MANAGED_TABLE | | lxw_hbase_table_1 | MANAGED_TABLE | | lxw_hbase_user_info | MANAGED_TABLE | | t | EXTERNAL_TABLE | | lxw_jobid | MANAGED_TABLE | +---------------------+----------------+ 9 rows in set (0.01 sec) mysql> select * from lxw_tbls where TBL_NAME like 'lxw%' order by TBL_NAME; +---------------------+----------------+ | TBL_NAME | TBL_TYPE | +---------------------+----------------+ | lxw_hbase_table_1 | MANAGED_TABLE | | lxw_hbase_user_info | MANAGED_TABLE | | lxw_jobid | MANAGED_TABLE | | lxw_t | MANAGED_TABLE | | lxw_t1 | MANAGED_TABLE | | lxw_test_table | EXTERNAL_TABLE | +---------------------+----------------+ 6 rows in set (0.00 sec)
MapReduce程序代码,ConnMysql.java:
package com.lxw.study; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.net.URI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Iterator; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.filecache.DistributedCache; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Writable; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.db.DBConfiguration; import org.apache.hadoop.mapreduce.lib.db.DBInputFormat; import org.apache.hadoop.mapreduce.lib.db.DBWritable; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class ConnMysql { private static Configuration conf = new Configuration(); static { conf.addResource(new Path("F:/lxw-hadoop/hdfs-site.xml")); conf.addResource(new Path("F:/lxw-hadoop/mapred-site.xml")); conf.addResource(new Path("F:/lxw-hadoop/core-site.xml")); conf.set("mapred.job.tracker", "10.133.103.21:50021"); } public static class TblsRecord implements Writable, DBWritable { String tbl_name; String tbl_type; public TblsRecord() { } @Override public void write(PreparedStatement statement) throws SQLException { // TODO Auto-generated method stub statement.setString(1, this.tbl_name); statement.setString(2, this.tbl_type); } @Override public void readFields(ResultSet resultSet) throws SQLException { // TODO Auto-generated method stub this.tbl_name = resultSet.getString(1); this.tbl_type = resultSet.getString(2); } @Override public void write(DataOutput out) throws IOException { // TODO Auto-generated method stub Text.writeString(out, this.tbl_name); Text.writeString(out, this.tbl_type); } @Override public void readFields(DataInput in) throws IOException { // TODO Auto-generated method stub this.tbl_name = Text.readString(in); this.tbl_type = Text.readString(in); } public String toString() { return new String(this.tbl_name + " " + this.tbl_type); } } public static class ConnMysqlMapper extends Mapper<LongWritable,TblsRecord,Text,Text> { public void map(LongWritable key,TblsRecord values,Context context) throws IOException,InterruptedException { context.write(new Text(values.tbl_name), new Text(values.tbl_type)); } } public static class ConnMysqlReducer extends Reducer<Text,Text,Text,Text> { public void reduce(Text key,Iterable<Text> values,Context context) throws IOException,InterruptedException { for(Iterator<Text> itr = values.iterator();itr.hasNext();) { context.write(key, itr.next()); } } } public static void main(String[] args) throws Exception { Path output = new Path("/user/lxw/output/"); FileSystem fs = FileSystem.get(URI.create(output.toString()), conf); if (fs.exists(output)) { fs.delete(output); } //mysql的jdbc驱动 DistributedCache.addFileToClassPath(new Path( "hdfs://hd022-test.nh.sdo.com/user/liuxiaowen/mysql-connector-java-5.1.13-bin.jar"), conf); DBConfiguration.configureDB(conf, "com.mysql.jdbc.Driver", "jdbc:mysql://10.133.103.22:3306/hive", "hive", "hive"); Job job = new Job(conf,"test mysql connection"); job.setJarByClass(ConnMysql.class); job.setMapperClass(ConnMysqlMapper.class); job.setReducerClass(ConnMysqlReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.setInputFormatClass(DBInputFormat.class); FileOutputFormat.setOutputPath(job, output); //列名 String[] fields = { "TBL_NAME", "TBL_TYPE" }; //六个参数分别为: //1.Job;2.Class<? extends DBWritable> //3.表名;4.where条件 //5.order by语句;6.列名 DBInputFormat.setInput(job, TblsRecord.class, "lxw_tbls", "TBL_NAME like 'lxw%'", "TBL_NAME", fields); System.exit(job.waitForCompletion(true) ? 0 : 1); } }
运行结果:
[lxw@hd025-test ~]$ hadoop fs -cat /user/lxw/output/part-r-00000 lxw_hbase_table_1 MANAGED_TABLE lxw_hbase_user_info MANAGED_TABLE lxw_jobid MANAGED_TABLE lxw_t MANAGED_TABLE lxw_t1 MANAGED_TABLE lxw_test_table EXTERNAL_TABLE
相关推荐
1. **连接MySQL**:使用Java或Python等编程语言,通过JDBC或其他库连接到MySQL数据库,获取表信息。 2. **解析表结构**:查询MySQL的元数据信息,如字段名、字段类型、字段长度、是否为主键等。 3. **映射数据类型...
MapReduce是一种分布式计算模型,由Google开发,广泛应用于大数据处理。在MapReduce中,计数器(Counter)是一个非常重要的工具,它允许开发者在MapReduce作业执行过程中收集和跟踪各种统计信息,帮助理解和优化程序...
使用MySQL驱动,Hive可以连接到MySQL服务器来获取和存储元数据。这提供了更强大的元数据管理功能,比如高可用性、数据备份和恢复,同时也便于多用户环境下的权限管理和访问控制。在Hive 3.1.2中,正确配置MySQL驱动...
资源中的“mysql2hbase.jar”很可能就是一个使用Java编写的工具,它可能包含了连接MySQL和HBase的代码,实现了从MySQL到HBase的数据迁移过程。这个jar包可以直接在Linux环境中运行,这意味着它可能封装了所有必要的...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Hive则是大数据处理领域的重要工具,主要用于结构化数据的查询、分析和管理。这两个技术在后端开发和大数据处理中扮演着至关重要的角色。下面,我们将深入探讨...
在大数据领域,Hive和MySQL是两种非常重要的数据存储和管理工具。Hive作为一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供SQL(HQL)查询功能,适合处理大规模的数据集。而MySQL则是一种关系型...
2. **依赖安装**:安装必要的库和依赖,比如libmysqlclient-dev,以便于编译和连接MySQL。 3. **MySQL安装**:下载并安装MySQL服务器,包括设置root用户的密码、配置文件等。 4. **初始化数据库**:创建必要的...
总的来说,MySQL提供了可靠的数据库服务,大数据技术解决了海量数据的处理问题,而Python则作为连接这两者的强大工具,实现了数据的获取、处理和分析。这三者之间的紧密协作,极大地推动了现代信息技术的发展。
它提供了丰富的类库和API,支持多线程、网络通信和数据库连接,使得数据的获取、处理和存储变得更加便捷。 二、数据采集 1. 网络爬虫:Java可以构建高效的数据爬取模块,通过HTTP/HTTPS协议抓取网页信息,如Jsoup库...
1. **JDBC检查**:在开始导入前,Sqoop通过JDBC连接数据库,获取表结构和列信息,如数据类型,将其映射为Java类型。 2. **代码生成器**: Sqoop根据表信息生成Java类,用于存储从数据库抽取的记录。 3. **...
2. Sqoop会读取HDFS中的数据,创建对应的SQL语句,并通过MapReduce作业执行,将数据写入MySQL。 ### 四、创建job 创建Sqoop作业是为了持久化导入或导出的配置,这样可以在将来重复使用而无需每次都手动输入参数。...
4. **数据可视化**:利用数据可视化工具,例如Tableau,连接MySQL数据库,创建图表展示用户行为模式。 #### 五、总结 本文介绍了基于Spark的大数据分析平台的设计与实现过程。通过使用Scala编程语言、Spark SQL以及...
因此,Kettle需要这个驱动来连接到存储Hive元数据的MySQL数据库,以便获取表定义和其他相关信息。 5. **lib文件夹**: 压缩包中的"lib"文件夹通常包含所有这些必要的JAR包。在Kettle中,这些JAR包需要被添加到...
在数据接入阶段,DGC 提供了丰富的数据源支持,包括但不限于 Hadoop 分布式文件系统(HDFS)、华为云MRS(MapReduce Service)的Hive、数据仓库服务(DWS)以及关系型数据库如MySQL等。这使得企业能够便捷地将来自...
配置Hive连接到MySQL的Metastore服务,以便Hive可以查询和管理在MySQL中的元数据。 6. **Hive SQL与数据处理**: - SQL语法:学习HQL(Hive Query Language),它是类似SQL的语言,用于查询HDFS上的数据。 - 分区...
该系统基于Hadoop Mapreduce,使用swing编写前端,Hadoop集群作为后台,MySQL作为数据库,通过网页爬虫技术从天气网(www.tianqi.com)获取天气数据信息,并进行分析和存储,然后将文本描述的天气信息量化成天气等级...
描述中提到“可以直接运行,海量数据读取、匹配和查询”,这可能指的是一个已经封装好的解决方案或工具,它能够快速处理数据读取、匹配和查询任务,无需用户进行繁琐的底层实现。完成资源的有效控制意味着系统具有...
这可能涉及到数据库连接、数据融合或者数据匹配算法,以解决不同数据源之间的不一致性问题。 5. 数据存储:数据处理过程中,需要合适的存储解决方案来管理大量数据。常见的数据存储技术有关系型数据库(如MySQL)、...
Sqoop的工作原理是利用MapReduce的并行计算能力,通过JDBC连接器与各种RDBMS进行交互,确保数据迁移的效率和容错性。 #### Sqoop导入原理 在导入数据时,Sqoop首先通过JDBC检查目标数据库表,获取列信息和SQL数据...