Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)


.环境搭建(Hadoop+Hive)

window7:  eclipse4.5.1

linux: hadoop-01    192.168.33.01

Hadoop-2.7.2+zookeeper-3.4.6完全分布式环境搭建(HDFSYARN HA) 

Hadoop2.7实战v1.0Hive-2.0.0+MySQL远程模式安装

Hadoop2.7实战v1.0Hive-2.0.0Hiveserver2服务和beeline远程调试 

 

hadoop-01  要有 Hdfs namenode(active),Yarn resourcemanager(active),Hive metastore hiveserver2进程.


.启动hive metastorehiveserver2服务命令

[[email protected] bin]# hive --service metastore &

[[email protected] bin]# hive --service hiveserver2 &


.搭建

1.下载解压hadoophive

hadoop-2.7.2.tar.gzwindow7D:\Hadoop\hadoop-2.7.2
apache-hive-2.0.0-bin.tar.gz window7D:\Hadooop\apache-hive-2.0.0-bin
 

2.启动eclipse,新建工程HiveCaseProject,导入需要的jar

 a.导入hivelib文件夹下所有的包

 b.导入hadoopD:\Hadoop\hadoop-2.7.2\share\hadoop\common\hadoop-common-2.7.2.jar

 Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)

3.新建hiveserver2Test.class文件

Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)

   

4.hiveserver2Test.class示例代码

点击(此处)折叠或打开

  1. package com.hadoop.hive;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7.  
  8. public class hiveserver2Test {
  9.        public boolean run() {
  10.               Connection con=null;
  11.               Statement stmt =null;
  12.               ResultSet rs=null;
  13.               String tableName="studentinfo";//表名
  14.              
  15.               try {
  16.                    String driver="org.apache.hive.jdbc.HiveDriver";//Hive的驱动字符串
  17.                    Class.forName(driver); //加载Hive驱动
  18.                       con = DriverManager.getConnection("jdbc:hive2://192.168.33.01:10000", "root", "");//获取hive2的jdbc连接,注意默认的数据库是default
  19.                       stmt = con.createStatement();
  20.                       rs=stmt.executeQuery("select * from "+tableName+" ");//查询所有,直接运行
  21.                            while(rs.next()){
  22.                            System.out.println("id:"+rs.getString(1)+" "+"name:"+rs.getString(2)+" "+"age:"+rs.getString(3)+" "+"tel:"+rs.getString(4)+" ");
  23.                            }
  24.                   
  25.                    System.out.println("查询成功!");
  26.                    stmt.close();
  27.                       con.close();
  28.                          
  29.                      return true;
  30.               } catch (Exception e) {
  31.                      e.printStackTrace();
  32.                      System.out.println("error");
  33.                      return false;
  34.              
  35.               }
  36.        }
  37.  
  38.        public static void main(String[] args) throws SQLException {
  39.               hiveserver2Test hiveJdbcClient = new hiveserver2Test();
  40.               hiveJdbcClient.run();
  41.        }
  42.  
  43. }

5.第一次调试--Error

Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)

错误1: StaticLoggerBinder.class冲突,移除log4j-slf4j-impl-2.4.1.jar即可

错误2: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

这句意思就是没有找到log4j2的配置文件

6.配置log4j2文件 

http://www.cnblogs.com/morvenhuang/p/3958086.html

a.由于hivelib目录有log4j2相关包,在第2.2步已经导入,无需再导入

Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)


b.创建resources文件夹,然后在resources文件夹下创建log4j2.xml文件

log4j2.xml文件

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="warn">
  3.             <Appenders>
  4.                         <Console name="Console" target="SYSTEM_OUT">
  5.                                     <PatternLayout pattern="%m%n" />
  6.                         </Console>
  7.             </Appenders>
  8.             <Loggers>
  9.                         <Root level="INFO">
  10.                                     <AppenderRef ref="Console" />
  11.                         </Root>
  12.             </Loggers>
  13. </Configuration>

c. resources文件夹添加到class

Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)

7.第二次调试--Success

Hadoop2.7实战v1.0之Eclipse+Hive2.0.0的JDBC案例(最详细搭建)