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
- 若不存,则需要执行以下两条命令
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
标签:res,proxyuser,心得,hadoop,hive,sql,root,连接 来源: https://www.cnblogs.com/hcxss/p/14611504.html