• 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
     
  • 相关阅读:
    页面状态加载.... JS
    创建windows服务&监控SQL数据运行状态(原)
    为图片添加锚点
    当jquery遇上了json 哇哈哈
    关于SVN源代码管理
    最新最全的ASP.NET学习资源大全
    .NET开发人员必知的八个网站
    关于回车执行(回车触发事件)
    DIV+CSS布局
    优化Linux下的内核TCP参数来提高服务器负载能力
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/14293058.html
Copyright © 2020-2023  润新知