IDEA连接Hadoop
因为一些学习的需要,用到了idea连接hadoop,并对它进行一些相关的读写操作,总结一下大概的流程。
一、使hadoop集群可以被远程访问,配置一些文件,可以参考一些其它博主的教程,记住配置的URL或者IP地址以及远程访问用到的端口号。
二、在idea中建一个连接,测试一下是否可以连接hadoop
注意URL、密码、用户,URL写jdbc:hive2://IP:端口,ip可以写成自己配的映射
三、新建测试类
package com.hua;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class test {
@Test
public void select()
{
String url = "jdbc:hive2://node1:10000/default";
String username = "root";
String password = "hadoop";
// 建立数据库连接
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("连接成功!");
// 执行查询
Statement statement = connection.createStatement();
String sql = "SELECT * FROM me";
ResultSet resultSet = statement.executeQuery(sql);
// 处理查询结果
while (resultSet.next()) {
// 获取结果集中的数据
int empId = resultSet.getInt("id");
String empName = resultSet.getString("name");
// 输出结果
System.out.println("Employee ID: " + empId);
System.out.println("Employee Name: " + empName);
}
// 关闭连接
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void delete()
{
}
public void add()
{
}
public void update()
{
}
}
连接成功
四、对数据库的修改以及删除操作,不用用sql中的delete以及update,hadoop不允许,可以搜一搜insert overwrite尝试一下,下面有相关的实例,大家可以了解一下
- 更新操作:
假设有一个名为employees
的表,其中包含员工的信息(id、name、salary等)。要更新表中id为1的员工的薪水为5000,可以使用以下语句:
sql
INSERT OVERWRITE TABLE employees
SELECT
id,
name,
CASE
WHEN id = 1 THEN 5000
ELSE salary
END AS salary
FROM employees;
上述语句将从employees
表中选择所有字段,并使用CASE语句将id为1的员工的薪水更新为5000,其他员工的薪水保持不变。然后,将结果写回到原始表employees
,实现了更新操作。
- 删除操作:
假设有一个名为sales
的表,其中记录了销售数据。要删除表中所有销售额小于100的记录,可以使用以下语句:
INSERT OVERWRITE TABLE sales
SELECT *
FROM sales
WHERE amount >= 100;