写在前面的话

    可详细参考,一定得去看

HBase 开发环境搭建(Eclipse\MyEclipse + Maven)

Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)

  我这里,相信,能看此博客的朋友,想必是有一定基础的了。我前期写了大量的基础性博文。可以去补下基础。

步骤一:File  ->  New  -> Project   ->  Maven Project

步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下。

步骤三:

步骤四:自行设置

步骤五:修改jdk

省略,很简单!

步骤六:修改pom.xml配置文件

官网Maven的zookeeper配置文件内容:

地址:http://www.mvnrepository.com/search?q=hive

1、

2、

3、

  

4、

5、

6、

  暂时这些吧,以后需要,可以自行再加呢!

  最后的pom.xml配置文件为

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>zhouls.bigdata</groupId>
<artifactId>myHive</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>myHive</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-metastore -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-metastore</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-common -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-common</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-service -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-service</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
</dependencies>
</project>

当然,这只是初步而已,最简单的,以后可以自行增删。

参考:Hive的JDBC接口实现(Eclipse环境配置)

hive里的JDBC编程入门

 在使用JDBC链接Hive之前,首先要开启Hive监听用户的连接。即在运行代码前,得

开启Hive服务的方法如下:

  hive --service hiveserver2 >/dev/null  2>/dev/null&

步骤七:这里,给大家,通过一组简单的Hive应用程序实例来向大家展示Hive的某些功能。

  类名为HiveTestCase.java

  1. package zhouls.bigdata.myHive;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8.  
  9. import org.apache.log4j.Logger;
  10.  
  11. /**
  12. * Handle data through hive on eclipse
  13. * @author zhouls
  14. * @time 2016\11\12 22:14
  15. */
  16. public class HiveTestCase {
  17. private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
  18. private static String url = "jdbc:hive2://djt002:10000/default";
  19. private static String user = "";
  20. private static String password = "";
  21. private static String sql = "";
  22. private static ResultSet res;
  23. private static final Logger log = Logger.getLogger(HiveTestCase.class);
  24.  
  25. public static void main(String[] args) {
  26. try {
  27. Class.forName(driverName); // 注册JDBC驱动
  28. // Connection conn = DriverManager.getConnection(url, user, password);
  29.  
  30. //默认使用端口10000, 使用默认数据库,用户名密码默认
  31. Connection conn = DriverManager.getConnection("jdbc:hive2://djt002:10000/default", "", "");
  32. // Connection conn = DriverManager.getConnection("jdbc:hive://HadoopSlave1:10000/default", "", "");
  33. //当然,若是3节点集群,则HadoopMaster或HadoopSlave1或HadoopSlave2都可以呢。前提是每个都安装了Hive,当然只安装一台就足够了。
  34.  
  35. // Statement用来执行SQL语句
  36. Statement stmt = conn.createStatement();
  37.  
  38. // 创建的表名
  39. String tableName = "testHiveDriverTable";
  40.  
  41. /** 第一步:存在就先删除 **/
  42. sql = "drop table " + tableName;
  43. stmt.executeQuery(sql);
  44.  
  45. /** 第二步:不存在就创建 **/
  46. sql = "create table " + tableName +
  47. "(userid int , " +
  48. "movieid int," +
  49. "rating int," +
  50. "city string," +
  51. "viewTime string)" +
  52. "row format delimited " +
  53. "fields terminated by '\t' " +
  54. "stored as textfile";
  55.  
  56. // sql = "create table " + tableName + " (key int, value string) row format delimited fields terminated by '\t'";
  57. stmt.executeQuery(sql);
  58.  
  59. // 执行“show tables”操作
  60. sql = "show tables '" + tableName + "'";
  61. System.out.println("Running:" + sql);
  62. res = stmt.executeQuery(sql);
  63. System.out.println("执行“show tables”运行结果:");
  64. if (res.next()) {
  65. System.out.println(res.getString(1));
  66. }
  67.  
  68. // 执行“describe table”操作
  69. sql = "describe " + tableName;
  70. System.out.println("Running:" + sql);
  71. res = stmt.executeQuery(sql);
  72. System.out.println("执行“describe table”运行结果:");
  73. while (res.next()) {
  74. System.out.println(res.getString(1) + "\t" + res.getString(2));
  75. }
  76.  
  77. // 执行“load data into table”操作
  78. String filepath = "/usr/local/data/test2_hive.txt"; //因为是load data local inpath,所以是本地路径
  79. sql = "load data local inpath '" + filepath + "' into table " + tableName;
  80.  
  81. // String filepath = "/hive/data/test2_hive.txt"; //因为是load data inpath,所以是集群路径,即hdfs://djt002/9000/hive/data/下
  82. // sql = "load data inpath '" + filepath + "' into table " + tableName;
  83.  
  84. System.out.println("Running:" + sql);
  85. res = stmt.executeQuery(sql);
  86.  
  87. // 执行“select * query”操作
  88. sql = "select * from " + tableName;
  89. System.out.println("Running:" + sql);
  90. res = stmt.executeQuery(sql);
  91. System.out.println("执行“select * query”运行结果:");
  92. while (res.next()) {
  93. System.out.println(res.getInt(1) + "\t" + res.getString(2));
  94. }
  95.  
  96. // 执行“regular hive query”操作
  97. sql = "select count(1) from " + tableName;
  98. System.out.println("Running:" + sql);
  99. res = stmt.executeQuery(sql);
  100. System.out.println("执行“regular hive query”运行结果:");
  101. while (res.next()) {
  102. System.out.println(res.getString(1));
  103.  
  104. }
  105.  
  106. conn.close();
  107. conn = null;
  108. } catch (ClassNotFoundException e) {
  109. e.printStackTrace();
  110. log.error(driverName + " not found!", e);
  111. System.exit(1);
  112. } catch (SQLException e) {
  113. e.printStackTrace();
  114. log.error("Connection error!", e);
  115. System.exit(1);
  116. }
  117.  
  118. }
  119. }

  或者

  1. package com.dajangtai.Hive;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8.  
  9. public class Demo {
  10. private static String driverName = "org.apache.hive.jdbc.HiveDriver";//hive驱动名称
  11. private static String url = "jdbc:hive2://djt002:10000/default";//连接hive2服务的连接地址,Hive0.11.0以上版本提供了一个全新的服务:HiveServer2
  12. private static String user = "hadoop";//对HDFS有操作权限的用户
  13. private static String password = "";//在非安全模式下,指定一个用户运行查询,忽略密码
  14. private static String sql = "";
  15. private static ResultSet res;
  16. public static void main(String[] args) {
  17. try {
  18. Class.forName(driverName);//加载HiveServer2驱动程序
  19. Connection conn = DriverManager.getConnection(url, user, password);//根据URL连接指定的数据库
  20. Statement stmt = conn.createStatement();
  21.  
  22. //创建的表名
  23. String tableName = "testHiveDriverTable";
  24.  
  25. /** 第一步:表存在就先删除 **/
  26. sql = "drop table " + tableName;
  27. stmt.execute(sql);
  28.  
  29. /** 第二步:表不存在就创建 **/
  30. sql = "create table " + tableName + " (key int, value string) row format delimited fields terminated by '\t' STORED AS TEXTFILE";
  31. stmt.execute(sql);
  32.  
  33. // 执行“show tables”操作
  34. sql = "show tables '" + tableName + "'";
  35. res = stmt.executeQuery(sql);
  36. if (res.next()) {
  37. System.out.println(res.getString(1));
  38. }
  39.  
  40. // 执行“describe table”操作
  41. sql = "describe " + tableName;
  42. res = stmt.executeQuery(sql);
  43. while (res.next()) {
  44. System.out.println(res.getString(1) + "\t" + res.getString(2));
  45. }
  46.  
  47. // 执行“load data into table”操作
  48. String filepath = "/usr/local/data/djt.txt";//hive服务所在节点的本地文件路径
  49. sql = "load data local inpath '" + filepath + "' into table " + tableName;
  50. stmt.execute(sql);
  51.  
  52. // 执行“select * query”操作
  53. sql = "select * from " + tableName;
  54. res = stmt.executeQuery(sql);
  55. while (res.next()) {
  56. System.out.println(res.getInt(1) + "\t" + res.getString(2));
  57. }
  58.  
  59. // 执行“regular hive query”操作,此查询会转换为MapReduce程序来处理
  60. sql = "select count(*) from " + tableName;
  61. res = stmt.executeQuery(sql);
  62. while (res.next()) {
  63. System.out.println(res.getString(1));
  64. }
  65. conn.close();
  66. conn = null;
  67. } catch (ClassNotFoundException e) {
  68. e.printStackTrace();
  69. System.exit(1);
  70. } catch (SQLException e) {
  71. e.printStackTrace();
  72. System.exit(1);
  73. }
  74. }
  75. }

  若是MyEclipse里,需要注意一下

MyEclipse *的安装步骤和破解(32位和64位皆适用)

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)的更多相关文章

  1. Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)

    写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...

  2. Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)

    写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...

  3. iOS项目——项目开发环境搭建

    在开发项目之前,我们需要做一些准备工作,了解iOS扩展--Objective-C开发编程规范是进行开发的必备基础,学习iOS学习--Xcode9上传项目到GitHub是我们进行版本控制和代码管理的选择 ...

  4. 利用maven开发springMVC项目——开发环境搭建(版本错误解决)

    申明:部分内容参见别人的博客,没有任何的商业用途,只是作为自己学习使用.(大佬博客) 一.相关环境 - eclipse :eclipse-jee-oxygen-3-win32-x86_64(下载地址) ...

  5. Java WEB开发环境搭建以及创建Maven Web项目

    根据此链接博文学习配置: http://www.cnblogs.com/zyw-205520/p/4767633.html 1.JDK的安装 自行百度,(最好是jdk1.7版本的) 测试如下图,即完成 ...

  6. android开发1:安卓开发环境搭建(eclipse+jdk+sdk)

    计划折腾折腾安卓开发了,从0开始的确很痛苦,不过相信上手应该也不会太慢.哈哈 一.Android简介 Android 是基于Linux内核的软件平台和操作系统. Android构架主要由3部分组成,l ...

  7. react项目开发环境搭建

    1.环境安装,首先要安装node http://nodejs.cn/  进入nodejs下载,你是window就下在window的反之,安装下一步下一步...就好了 安装成功了试试 node -v , ...

  8. 【Vue3+Express实战】项目开发环境搭建

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  9. Linux学习总结(十)—— Java开发环境搭建:JDK+Maven

    Java开发环境最基础的两个开源软件是JDK和Maven. JDK 到Oracle官网下载相对应的源码包,这里我选择的是:Linux x64系统的jdk-8u131-linux-x64.tar.gz. ...

随机推荐

  1. 【uoj126】 NOI2013—快餐店

    http://uoj.ac/problem/126 (题目链接) 题意 求基环树直径. Solution zz选手迟早退役,唉,右转题解→_→:LCF 细节 拓扑排序的时候度数为0时入队.我在想什么w ...

  2. Linux上java程序的jar包启动通用脚本(稳定用过)

    Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...

  3. Java基础-二进制以及字符编码简介

    Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...

  4. [Spring] 学习Spring Boot之一:基本使用及简析

    一.简介 使用 Spring Boot 目的主要是用来简化 Spring 应用的搭建及开发过程,因为使用 Spring 及 SpringMVC 框架时需要手动配置的地方非常多(各种包之间的依赖.各种配 ...

  5. Win10新增功能快捷键大全

    原文地址:http://wenwen.sogou.com/z/q703976788.htm贴靠窗口:Win + 左/右 > Win + 上/下 > 窗口可以变为 1/4 大小放置在屏幕 4 ...

  6. POJ - 3436 ACM Computer Factory(最大流)

    https://vjudge.net/problem/POJ-3436 题目描述:  正如你所知道的,ACM 竞赛中所有竞赛队伍使用的计算机必须是相同的,以保证参赛者在公平的环境下竞争.这就是所有这些 ...

  7. vue-cli构建项目使用 less

    在vue-cli中构建的项目是可以使用less的,但是查看package.json可以发现,并没有less相关的插件,所以我们需要自行安装. 第一步:安装 npm install less less- ...

  8. [转]CMake cache

    CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). CMakeLists.txt 中通过 set(... CACHE . ...

  9. 勒索软件Locky、Tesalcrypt等使用了新的工具躲避检测

    勒索软件Locky.Tesalcrypt等使用了新的工具躲避检测 今天我们发现Locky勒索软件家族使用一种新的工具来躲避检测,并且可能已经感染了很多节点. 自从我们通过AutoFocus智能威胁分析 ...

  10. MVC layout 命名空间引用问题

    虽然用MVC做了很多项目,但是都是在别人搭好的框架上实现 今天碰到一个很简单的命名空间引用问题 如图所示,Scripts和Styles 都没有引用命名空间 解决方法一: 直接使用 System.Web ...