zoukankan      html  css  js  c++  java
  • HADOOP基础学习四(用JAVA将HDFS中的数据插入到MYSQL中)

    一、从主节点中查看要插入的文件在HDFS上的元信息

    • 数据并没有存放在主节点中,主节点用于维护文件系统,存放元信息(文件的属性,路径,大小,在DN上的位置信息等)
      在这里插入图片描述

    二、在MYSQL中建好表用于插入数据

    在这里插入图片描述

    三、编写代码

    java中要有Hadoop和数据库的依赖包

    package hdfs;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataInputStream;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class HdfsMysql {
        public static void main(String[] args) throws URISyntaxException, IOException, ClassNotFoundException, SQLException {
            /**
             * 创建filesystem对象,连接hdfs
             */
            URI uri = new URI("hdfs://192.168.154.110:9000");
            Configuration conf = new Configuration();
            FileSystem fs = FileSystem.get(uri, conf);
            /**
             * 连接数据库
             */
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://master/dadada","root","123456");
            PreparedStatement ps = conn.prepareStatement("insert into score(id,sub_id,grade) values (?,?,?)");
    
            /**
             * 从hdfs中读取数据,切分数据,插入MySQL
             */
            FSDataInputStream in = fs.open(new Path("/data/test/score.txt"));
            BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
            String line=null;
            while ((line=br.readLine())!=null){
                String[] split = line.split(",");
                ps.setString(1,split[0]);
                ps.setString(2,split[1]);
                ps.setInt(3, Integer.parseInt(split[2]));
                ps.executeUpdate();
            }
            ps.close();
            in.close();
            br.close();
    
        }
    }

    四、结果显示

    在这里插入图片描述

    在这里插入图片描述

    转载于:https://www.freesion.com/article/88331378080/

    END
     
  • 相关阅读:
    [论文收集]Web service security (尤其是RBAC)相关的论文 [更新中]
    [文章摘录] The Case for Cloud Computing (ITPro, 2009)
    [文章摘录] 网络计算系统的分类研究 (计算机学报, 2008)
    文献综述的写法
    [转]VS2005常用快捷键大全
    什么是存储过程
    使用冒泡法对数组排序
    ASP.NET中使用Global.asax文件
    轻松掌握Ajax.net系列教程
    客户端回调实现gridView无刷新分页
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/14293058.html
Copyright © 2011-2022 走看看