- 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
- 若不存,则需要执行以下两条命令
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。