Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话
可详细参考,一定得去看
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编程入门
在使用JDBC链接Hive之前,首先要开启Hive监听用户的连接。即在运行代码前,得
开启Hive服务的方法如下:
hive --service hiveserver2 >/dev/null 2>/dev/null&
步骤七:这里,给大家,通过一组简单的Hive应用程序实例来向大家展示Hive的某些功能。
类名为HiveTestCase.java
- package zhouls.bigdata.myHive;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import org.apache.log4j.Logger;
- /**
- * Handle data through hive on eclipse
- * @author zhouls
- * @time 2016\11\12 22:14
- */
- public class HiveTestCase {
- private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
- private static String url = "jdbc:hive2://djt002:10000/default";
- private static String user = "";
- private static String password = "";
- private static String sql = "";
- private static ResultSet res;
- private static final Logger log = Logger.getLogger(HiveTestCase.class);
- public static void main(String[] args) {
- try {
- Class.forName(driverName); // 注册JDBC驱动
- // Connection conn = DriverManager.getConnection(url, user, password);
- //默认使用端口10000, 使用默认数据库,用户名密码默认
- Connection conn = DriverManager.getConnection("jdbc:hive2://djt002:10000/default", "", "");
- // Connection conn = DriverManager.getConnection("jdbc:hive://HadoopSlave1:10000/default", "", "");
- //当然,若是3节点集群,则HadoopMaster或HadoopSlave1或HadoopSlave2都可以呢。前提是每个都安装了Hive,当然只安装一台就足够了。
- // Statement用来执行SQL语句
- Statement stmt = conn.createStatement();
- // 创建的表名
- String tableName = "testHiveDriverTable";
- /** 第一步:存在就先删除 **/
- sql = "drop table " + tableName;
- stmt.executeQuery(sql);
- /** 第二步:不存在就创建 **/
- sql = "create table " + tableName +
- "(userid int , " +
- "movieid int," +
- "rating int," +
- "city string," +
- "viewTime string)" +
- "row format delimited " +
- "fields terminated by '\t' " +
- "stored as textfile";
- // sql = "create table " + tableName + " (key int, value string) row format delimited fields terminated by '\t'";
- stmt.executeQuery(sql);
- // 执行“show tables”操作
- sql = "show tables '" + tableName + "'";
- System.out.println("Running:" + sql);
- res = stmt.executeQuery(sql);
- System.out.println("执行“show tables”运行结果:");
- if (res.next()) {
- System.out.println(res.getString(1));
- }
- // 执行“describe table”操作
- sql = "describe " + tableName;
- System.out.println("Running:" + sql);
- res = stmt.executeQuery(sql);
- System.out.println("执行“describe table”运行结果:");
- while (res.next()) {
- System.out.println(res.getString(1) + "\t" + res.getString(2));
- }
- // 执行“load data into table”操作
- String filepath = "/usr/local/data/test2_hive.txt"; //因为是load data local inpath,所以是本地路径
- sql = "load data local inpath '" + filepath + "' into table " + tableName;
- // String filepath = "/hive/data/test2_hive.txt"; //因为是load data inpath,所以是集群路径,即hdfs://djt002/9000/hive/data/下
- // sql = "load data inpath '" + filepath + "' into table " + tableName;
- System.out.println("Running:" + sql);
- res = stmt.executeQuery(sql);
- // 执行“select * query”操作
- sql = "select * from " + tableName;
- System.out.println("Running:" + sql);
- res = stmt.executeQuery(sql);
- System.out.println("执行“select * query”运行结果:");
- while (res.next()) {
- System.out.println(res.getInt(1) + "\t" + res.getString(2));
- }
- // 执行“regular hive query”操作
- sql = "select count(1) from " + tableName;
- System.out.println("Running:" + sql);
- res = stmt.executeQuery(sql);
- System.out.println("执行“regular hive query”运行结果:");
- while (res.next()) {
- System.out.println(res.getString(1));
- }
- conn.close();
- conn = null;
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- log.error(driverName + " not found!", e);
- System.exit(1);
- } catch (SQLException e) {
- e.printStackTrace();
- log.error("Connection error!", e);
- System.exit(1);
- }
- }
- }
或者
- package com.dajangtai.Hive;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class Demo {
- private static String driverName = "org.apache.hive.jdbc.HiveDriver";//hive驱动名称
- private static String url = "jdbc:hive2://djt002:10000/default";//连接hive2服务的连接地址,Hive0.11.0以上版本提供了一个全新的服务:HiveServer2
- private static String user = "hadoop";//对HDFS有操作权限的用户
- private static String password = "";//在非安全模式下,指定一个用户运行查询,忽略密码
- private static String sql = "";
- private static ResultSet res;
- public static void main(String[] args) {
- try {
- Class.forName(driverName);//加载HiveServer2驱动程序
- Connection conn = DriverManager.getConnection(url, user, password);//根据URL连接指定的数据库
- Statement stmt = conn.createStatement();
- //创建的表名
- String tableName = "testHiveDriverTable";
- /** 第一步:表存在就先删除 **/
- sql = "drop table " + tableName;
- stmt.execute(sql);
- /** 第二步:表不存在就创建 **/
- sql = "create table " + tableName + " (key int, value string) row format delimited fields terminated by '\t' STORED AS TEXTFILE";
- stmt.execute(sql);
- // 执行“show tables”操作
- sql = "show tables '" + tableName + "'";
- res = stmt.executeQuery(sql);
- if (res.next()) {
- System.out.println(res.getString(1));
- }
- // 执行“describe table”操作
- sql = "describe " + tableName;
- res = stmt.executeQuery(sql);
- while (res.next()) {
- System.out.println(res.getString(1) + "\t" + res.getString(2));
- }
- // 执行“load data into table”操作
- String filepath = "/usr/local/data/djt.txt";//hive服务所在节点的本地文件路径
- sql = "load data local inpath '" + filepath + "' into table " + tableName;
- stmt.execute(sql);
- // 执行“select * query”操作
- sql = "select * from " + tableName;
- res = stmt.executeQuery(sql);
- while (res.next()) {
- System.out.println(res.getInt(1) + "\t" + res.getString(2));
- }
- // 执行“regular hive query”操作,此查询会转换为MapReduce程序来处理
- sql = "select count(*) from " + tableName;
- res = stmt.executeQuery(sql);
- while (res.next()) {
- System.out.println(res.getString(1));
- }
- conn.close();
- conn = null;
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- System.exit(1);
- } catch (SQLException e) {
- e.printStackTrace();
- System.exit(1);
- }
- }
- }
若是MyEclipse里,需要注意一下
MyEclipse *的安装步骤和破解(32位和64位皆适用)
Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)的更多相关文章
- Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...
- Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...
- iOS项目——项目开发环境搭建
在开发项目之前,我们需要做一些准备工作,了解iOS扩展--Objective-C开发编程规范是进行开发的必备基础,学习iOS学习--Xcode9上传项目到GitHub是我们进行版本控制和代码管理的选择 ...
- 利用maven开发springMVC项目——开发环境搭建(版本错误解决)
申明:部分内容参见别人的博客,没有任何的商业用途,只是作为自己学习使用.(大佬博客) 一.相关环境 - eclipse :eclipse-jee-oxygen-3-win32-x86_64(下载地址) ...
- Java WEB开发环境搭建以及创建Maven Web项目
根据此链接博文学习配置: http://www.cnblogs.com/zyw-205520/p/4767633.html 1.JDK的安装 自行百度,(最好是jdk1.7版本的) 测试如下图,即完成 ...
- android开发1:安卓开发环境搭建(eclipse+jdk+sdk)
计划折腾折腾安卓开发了,从0开始的确很痛苦,不过相信上手应该也不会太慢.哈哈 一.Android简介 Android 是基于Linux内核的软件平台和操作系统. Android构架主要由3部分组成,l ...
- react项目开发环境搭建
1.环境安装,首先要安装node http://nodejs.cn/ 进入nodejs下载,你是window就下在window的反之,安装下一步下一步...就好了 安装成功了试试 node -v , ...
- 【Vue3+Express实战】项目开发环境搭建
大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...
- Linux学习总结(十)—— Java开发环境搭建:JDK+Maven
Java开发环境最基础的两个开源软件是JDK和Maven. JDK 到Oracle官网下载相对应的源码包,这里我选择的是:Linux x64系统的jdk-8u131-linux-x64.tar.gz. ...
随机推荐
- 【uoj126】 NOI2013—快餐店
http://uoj.ac/problem/126 (题目链接) 题意 求基环树直径. Solution zz选手迟早退役,唉,右转题解→_→:LCF 细节 拓扑排序的时候度数为0时入队.我在想什么w ...
- Linux上java程序的jar包启动通用脚本(稳定用过)
Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...
- Java基础-二进制以及字符编码简介
Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
- [Spring] 学习Spring Boot之一:基本使用及简析
一.简介 使用 Spring Boot 目的主要是用来简化 Spring 应用的搭建及开发过程,因为使用 Spring 及 SpringMVC 框架时需要手动配置的地方非常多(各种包之间的依赖.各种配 ...
- Win10新增功能快捷键大全
原文地址:http://wenwen.sogou.com/z/q703976788.htm贴靠窗口:Win + 左/右 > Win + 上/下 > 窗口可以变为 1/4 大小放置在屏幕 4 ...
- POJ - 3436 ACM Computer Factory(最大流)
https://vjudge.net/problem/POJ-3436 题目描述: 正如你所知道的,ACM 竞赛中所有竞赛队伍使用的计算机必须是相同的,以保证参赛者在公平的环境下竞争.这就是所有这些 ...
- vue-cli构建项目使用 less
在vue-cli中构建的项目是可以使用less的,但是查看package.json可以发现,并没有less相关的插件,所以我们需要自行安装. 第一步:安装 npm install less less- ...
- [转]CMake cache
CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). CMakeLists.txt 中通过 set(... CACHE . ...
- 勒索软件Locky、Tesalcrypt等使用了新的工具躲避检测
勒索软件Locky.Tesalcrypt等使用了新的工具躲避检测 今天我们发现Locky勒索软件家族使用一种新的工具来躲避检测,并且可能已经感染了很多节点. 自从我们通过AutoFocus智能威胁分析 ...
- MVC layout 命名空间引用问题
虽然用MVC做了很多项目,但是都是在别人搭好的框架上实现 今天碰到一个很简单的命名空间引用问题 如图所示,Scripts和Styles 都没有引用命名空间 解决方法一: 直接使用 System.Web ...