基于Hadoop中Mysql的使用和IDEA远程访问

目录

前言

一、目的:

二、环境要求:

三、具体步骤:

一.Centos7上安装MySQL

四.通过jdbc连接mysql  插入和查询

一.通过idea远程插入mysql数据表:

让我们观看结果

二.!!!可能会出现的问题!!!

三.通过idea远程查询mysql数据表:

让我们观看结果

总结


前言

  Hadoop是一个分布式计算框架,它可以存储和处理大规模数据集。将MySQL与Hadoop集成,可以将MySQL作为数据源或数据存储,通过Hadoop的分布式计算能力对数据进行处理、分析和挖掘。

  通过Hadoop中的工具和技术,您可以将数据从MySQL导入到Hadoop集群中,以便进行更复杂的数据处理和分析。您还可以实现数据的双向同步,将Hadoop中的计算结果或其他数据写回MySQL数据库。


一、目的:

1.掌握MySQL在环境上的安装

2.完成Mysql安装使用和远程软件IDEA远程访问

二、环境要求:

操作系统:Linux

Hadoop版本:小编的是2.7.1版本的hadoop (附官方下载地址Apache Hadoop

JDK版本:1.8及以上

 虚拟机系统:CentOS 7操作系统或以上

主机有有效的网络连接

主机已完成网络属性配置

三、具体步骤:

一.Centos7上安装MySQL

1.安装mysql repo:

rpm -ivh http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

2.在线安装mysql:

yum install -y mysql-community-client mysql-community-devel mysql-community-server

3.启动MySQL的mysqld进程(该进程是MySQL的服务端进程):

systemctl start mysqld

4.查看MySQL服务端是否启动成功:

systemctl status mysqld

5. 查看MySQL的root帐号默认密码:

cat /var/log/mysqld.log | grep "password"

6.用mysql这个命令,连接MySQL服务端:

7. 创建bigdata数据库:

create database bigdata DEFAULT CHARACTER SET utf8

并创建一个user表

create table user(name varchar(32), age int, sex varchar(32))

 

四.通过jdbc连接mysql  插入和查询

一.通过idea远程插入mysql数据表:

1.导入必要的类库:

首先,我们需要导入java.sqljava.sql.Statement类库,以便在Java程序中使用JDBC相关的类和接口。

import java.sql.*;
import java.sql.Statement;

2.加载MySQL数据库的JDBC驱动程序:

使用Class.forName("com.mysql.cj.jdbc.Driver")加载MySQL数据库的JDBC驱动程序,确保驱动程序已经存在于项目的类路径中。

 Class.forName("com.mysql.cj.jdbc.Driver");

3.创建数据库连接:

使用DriverManager.getConnection方法创建一个数据库连接对象,传入连接字符串(jdbc:mysql://192.168.207.100:3306/hadoop?serverTimezone=UTC&useSSL=false)、用户名(root)和密码(Aa123-456)。这个连接字符串指定了数据库的地址、端口号、数据库名称和一些连接选项

        String url = "jdbc:mysql://192.168.207.100:3306/hadoop?serverTimezone=UTC&useSSL=false";
        Connection conn = DriverManager.getConnection(url,"root","Aa123-456");

4.创建Statement对象: 

在建立数据库连接后,我们创建一个Statement对象,该对象用于执行SQL语句。

Statement state = conn.createStatement();

5.编写SQL插入语句:

在这个示例中,我们假设有一个名为user的表,包含姓名、年龄和性别等字段。我们可以使用SQL插入语句来向表中插入数据。例如,insert into user values('goudan', 19, 'womam')

String sql = "insert  into `user` values('goudan',19,'womam')";

6.执行SQL插入语句:

使用Statement对象的execute方法执行SQL插入语句,将数据插入到MySQL数据库的user表中。 

state.execute(sql);

7.关闭数据库连接:

conn.close();
让我们观看结果

 二.可能会出现的问题!!!

 

 java.sql.SQLException: null, message from server: “Host ‘IPXXX‘ is not allowed to connect

原因是因为:在项目访问数据库时报的这个异常。这个异常是数据库只允许localhost或XXXX(虚拟机IP,因为你windos ip不一样)访问,不允许远程访问,出现这个错误的原因可能是数据库用户远程权限问题

 解决办法:修改用户访问权限即可。

 1.使用mysql 数据库

 2.进入查看

select user,host from user;

3.修改host

UPDATE mysql.user SET host = '%' WHERE user = 'root';

然后查询查看

select user,host from user;

 

 4.最后保存一下

FLUSH PRIVILEGES; 

三.通过idea远程查询mysql数据表:

1.导入必要的类库:

import java.sql.*;

2.加载MySQL数据库的JDBC驱动程序:

Class.forName("com.mysql.cj.jdbc.Driver");

3.创建数据库连接:

Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.207.100:3306/hadoop?serverTimezone=UTC&useSSL=false","root","Aa123-456");

 4.创建SQL查询语句: 

  使用executeQuery方法执行SQL查询语句SELECT name, age, sex FROM user` 这条查询语句检索了user表中的nameagesex列的数据。

 Statement state = conn.createStatement();
 ResultSet resultSet = state.executeQuery("SELECT name, age, sex FROM `user`");

5.循环遍历结果集:

使用while(resultSet.next())循环遍历结果集。next方法将光标移动到结果集的下一行,如果有更多的行可用,则返回true,否则返回false

在循环内部,我们使用resultSet.getStringresultSet.getInt等方法根据列名从结果集中获取相应的数据。在这个示例中,我们获取了nameagesex列的数据,并将它们分别存储在nameagesex变量中。

使用System.out.println语句将每一行的数据打印到控制台。在这个示例中,我们打印了每个人的姓名、年龄和性别。

        while (resultSet.next()){
            String name = resultSet.getString("name");
            int age = resultSet.getInt("age");
            String sex = resultSet.getString("sex");
            System.out.println("Name: " + name + ", Age: " + age + ", Sex: " + sex);
        }

 6.关闭resultset和conn数据库连接:

resultSet.close();
conn.close();
让我们观看结果


总结

以上就是我对于hadoop数据库mysql的理解,希望能帮助你到你。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值