hive连接心得
- 1、hive-site.xml解读
hive的远程模式,mysql连接配置。
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value><!--mysql的user--> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mypassword</value><!--mysql的password--> <description>password to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value><!--jdbc驱动--> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.25.66:3306/hive?characterEncoding=UTF-8&createDatabaseIfNotExist=true&useSSL=false</value> <description> JDBC connect string for a JDBC metastore. To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. </description>
</property>
- 2、core-site.xml解读
<property> <!--表示任意节点使用hadoop集群用户root都能访问hdfs--> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>
这里的adoop.proxyuser.root.hosts和hadoop.proxyuser.root.group代表hive当前可访问的超级user。
注意点:修改完hadoop的core-site.xml配置文件后 必须重启hadoop;
若是关闭hadoop出现This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh,这代表hadoop无法关闭。
可以手动jps查看进程,然后通过:kill -9 进程id 手动杀死所有进程。
然后通过start-all.sh重启hadoop。
- 3、beeline连接hive
beeline的path:$HIVE_HOME/bin/beeline
beeline -u jdbc:hive2://localhost:10000/default -n root -p 这里的root就是adoop.proxyuser.root.hosts和hadoop.proxyuser.root.group里的root
注意:在这不部分直接执行beeline命令可能会提示拒绝连接,
- 需要查看10000端口号是否开发:sudo netstat -anp|grep 10000
- 若不存,则需要执行以下两条命令
1 2 | hive --service metastore & hive --service hiveserver2 & |
3. 最终结果:
如上图所示;代表hive连接成功。
- 4、springboot连接hive测试
测试code如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class APP {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main( String[] args )
{
try {
Class.forName(driverName);
Connection con = null;
con = DriverManager.getConnection("jdbc:hive2://myhost:10000/hive0331", "root", "");
Statement stmt = con.createStatement();
ResultSet res = null;
String sql = "select * from users";
System.out.println("Running: " + sql);
res = stmt.executeQuery(sql);
System.out.println("ok");
while (res.next()) {
System.out.println(res.getString(1) + "\t" + res.getString(2) + "\t" + res.getString(3) );
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("error");
}
}
}
可以参考:Apache Hive :https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-UsingJDBC
脚踏实地,注重基础。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)