赞
踩
目录
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操作系统或以上
主机有有效的网络连接
主机已完成网络属性配置
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))
1.导入必要的类库:
首先,我们需要导入
java.sql
和java.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
uservalues('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;
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
表中的name
、age
和sex
列的数据。
- Statement state = conn.createStatement();
- ResultSet resultSet = state.executeQuery("SELECT name, age, sex FROM `user`");
5.循环遍历结果集:
使用
while(resultSet.next())
循环遍历结果集。next
方法将光标移动到结果集的下一行,如果有更多的行可用,则返回true
,否则返回false
。
在循环内部,我们使用
resultSet.getString
和resultSet.getInt
等方法根据列名从结果集中获取相应的数据。在这个示例中,我们获取了name
、age
和sex
列的数据,并将它们分别存储在name
、age
和sex
变量中。
使用
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的理解,希望能帮助你到你。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。