Mapreduce读取hbase汇总到RDBMS
前言 Hbase对Mapreduce API进行了扩展,方便Mapreduce任务读写HTable数据。 HBase作为源的MapReduce读取示例 package hbase;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import jav
前言
Hbase对Mapreduce API进行了扩展,方便Mapreduce任务读写HTable数据。
HBase作为源的MapReduce读取示例
<code>package hbase; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.hbase.mapreduce.TableMapper; import org.apache.hadoop.hbase.mapreduce.TableReducer; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat; public class ExampleHbaseToMysqlMapreduce { public static void main(String[] args) throws Exception { //hbase配置 Configuration config = HBaseConfiguration.create(); String tableName = "flws"; Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes("5768014")); scan.setStopRow(Bytes.toBytes("5768888")); scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("AH")); scan.setCaching(500); scan.setCacheBlocks(false); //JOB定义 Job job = new Job(config, "ExampleHbaseMapreduce"); job.setJarByClass(ExampleHbaseToMysqlMapreduce.class); //设置map读取hbase方法 TableMapReduceUtil.initTableMapperJob(tableName, scan, MyMapper.class, Text.class,Text.class, job); //reduce设置 job.setReducerClass(MyReducer.class); job.setOutputFormatClass(NullOutputFormat.class); job.setNumReduceTasks(5); boolean b = job.waitForCompletion(true); if (!b) { throw new Exception("error with job!"); } } public static class MyMapper extends TableMapper<text text> { public void map(ImmutableBytesWritable row, Result value, Context context) throws IOException, InterruptedException { context.write( new Text(row.get()), new Text(value.getValue(Bytes.toBytes("cf"), Bytes.toBytes("AH")))); } } public static class MyReducer extends TableReducer<text text immutablebyteswritable> { private Connection conn = null; @Override protected void cleanup(Context context) throws IOException, InterruptedException { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } @Override protected void setup(Context context) throws IOException, InterruptedException { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://172.16.35.242/judgment?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull"; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(url, "root", "root"); } catch (SQLException e) { e.printStackTrace(); } super.setup(context); } public void reduce(Text key, Iterable<text> values, Context context) throws IOException, InterruptedException { StringBuffer sb = new StringBuffer(); for (Text text : values) { sb.append(text.toString()); } try { Statement st = conn.createStatement(); st.executeUpdate("insert into test_mapreduce (id,ah) values (" + Integer.valueOf(key.toString()) + ",'" + sb.toString() + "')"); } catch (SQLException e) { e.printStackTrace(); } } } } </text></text></text></code>
原文地址:Mapreduce读取hbase汇总到RDBMS, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Cara menggunakan panda untuk membaca fail txt dengan betul memerlukan contoh kod khusus Pandas ialah perpustakaan analisis data Python yang digunakan secara meluas. Ia boleh digunakan untuk memproses pelbagai jenis data, termasuk fail CSV, fail Excel, pangkalan data SQL, dll. Pada masa yang sama, ia juga boleh digunakan untuk membaca fail teks, seperti fail txt. Walau bagaimanapun, apabila membaca fail txt, kadangkala kami menghadapi beberapa masalah, seperti masalah pengekodan, masalah pembatas, dsb. Artikel ini akan memperkenalkan cara membaca txt dengan betul menggunakan panda

Petua praktikal untuk membaca fail txt menggunakan panda, contoh kod khusus diperlukan Dalam analisis data dan pemprosesan data, fail txt ialah format data biasa. Menggunakan panda untuk membaca fail txt membolehkan pemprosesan data yang cepat dan mudah. Artikel ini akan memperkenalkan beberapa teknik praktikal untuk membantu anda menggunakan panda dengan lebih baik untuk membaca fail txt, bersama-sama dengan contoh kod tertentu. Baca fail txt dengan pembatas Apabila menggunakan panda untuk membaca fail txt dengan pembatas, anda boleh menggunakan read_c

Kaedah praktikal membaca data halaman web dalam Pandas memerlukan contoh kod khusus Semasa analisis dan pemprosesan data, kita selalunya perlu mendapatkan data daripada halaman web. Sebagai alat pemprosesan data yang berkuasa, Pandas menyediakan kaedah yang mudah untuk membaca dan memproses data halaman web. Artikel ini akan memperkenalkan beberapa kaedah praktikal yang biasa digunakan untuk membaca data halaman web dalam Panda dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan fungsi read_html() fungsi read_html() Pandas boleh membaca terus dari halaman web.

Contoh penggunaan OpenCSV untuk membaca dan menulis fail CSV dalam Java CSV (Comma-SeparatedValues) merujuk kepada nilai yang dipisahkan koma dan merupakan format storan data biasa. Di Java, OpenCSV ialah perpustakaan alat yang biasa digunakan untuk membaca dan menulis fail CSV. Artikel ini akan memperkenalkan cara menggunakan OpenCSV untuk melaksanakan contoh membaca dan menulis fail CSV. Memperkenalkan perpustakaan OpenCSV Pertama, anda perlu memperkenalkan perpustakaan OpenCSV kepada

Cara membaca fail Excel dengan PHP dan Soalan Lazim Excel ialah format fail hamparan yang sangat biasa, dan banyak perniagaan dan data disimpan dalam fail Excel. Semasa proses pembangunan, jika anda perlu mengimport data dalam fail Excel ke dalam sistem, anda perlu menggunakan PHP untuk membaca fail Excel. Artikel ini akan memperkenalkan cara membaca fail Excel dengan PHP dan menjawab soalan biasa. 1. Cara membaca fail Excel dengan PHP 1. Gunakan perpustakaan kelas PHPExcel PHPExcel ialah P

Permulaan Pantas: Kaedah Pandas membaca fail JSON, contoh kod khusus diperlukan Pengenalan: Dalam bidang analisis data dan sains data, Pandas ialah salah satu perpustakaan Python yang penting. Ia menyediakan fungsi yang kaya dan struktur data yang fleksibel, serta boleh memproses dan menganalisis pelbagai data dengan mudah. Dalam aplikasi praktikal, kita sering menghadapi situasi di mana kita perlu membaca fail JSON. Artikel ini akan memperkenalkan cara menggunakan Panda untuk membaca fail JSON dan melampirkan contoh kod tertentu. 1. Pemasangan Panda

Bagaimana untuk membaca fail binari di Golang? Fail binari ialah fail yang disimpan dalam bentuk binari yang mengandungi data yang boleh dikenali dan diproses oleh komputer. Di Golang, kita boleh menggunakan beberapa kaedah untuk membaca fail binari dan menghuraikannya ke dalam format data yang kita inginkan. Berikut akan memperkenalkan cara membaca fail binari di Golang dan memberikan contoh kod tertentu. Pertama, kita perlu membuka fail binari menggunakan fungsi Buka dari pakej os, yang akan mengembalikan objek fail. Kemudian kita boleh buat

Bermula dengan pemprosesan fail PHP: Panduan langkah demi langkah untuk membaca dan menulis Dalam pembangunan web, pemprosesan fail adalah tugas biasa, sama ada membaca fail yang dimuat naik oleh pengguna atau menulis hasilnya ke fail untuk kegunaan seterusnya Pemprosesan Dokumen PHP adalah sangat penting. Artikel ini akan menyediakan panduan ringkas untuk memperkenalkan langkah asas membaca dan menulis fail dalam PHP, dan melampirkan contoh kod untuk rujukan. Membaca fail dalam PHP, anda boleh menggunakan fungsi fopen() untuk membuka fail dan mengembalikan sumber fail (file
