阿里云-centos7-单机安装部署zookeeper+Hadoop+mysql+Hive以及服务端hive-sql测试+增加window客户端squirrel连接hive-执行sql操作内容、...

环境信息

-购买操作系统选择centos7(7的任何一个版本都可以),如果选错了可以在阿里云管理面板的-更多--云盘和镜像--更换操作系统。


image.png

在阿里云购买ecs-购买后机器网卡环境(2G内存不够,选择更大的内存机器):
公网IP-8.134.80.143、内网IP-172.30.40.95

设置阿里云端口映射:

开放3个端口
50070:hdfs管理端口
8088 : yarn 管理端口
3306: mysql连接端口
10000 : hive 客户端远程连接端口
10002 : hive web界面端口

配置入口-->安全组-->配置规则
点击手动添加,添加3306、8088、10000、50070、10002端口

开始安装

整个一套安装配置内容比较多,顺序是:安装zookeeper--安装hadoop---安装mysql---安装hive--sql测试

安装zookeeper ,zookeeper版本不要选最后一个版本,选上下兼容hadoop、hive的版本,这里选3.4.9就可以了。

安装java

yum -y install java-1.8.0-openjdk

配置java环境变量
执行:

export JAVA_HOME=/usr/lib/jvm/jre 
export JRE_HOME=/usr/lib/jvm/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile

下载zookeeper

wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

解压

tar -xzvf zookeeper-3.4.9.tar.gz

配置环境变量

vim /etc/profile

添加:

export ZOOKEEPER_HOME=/root/zookeeper-3.4.9
export PATH=$ZOOKEEPER_HOME/bin:$PATH

刷新环境变量

source /etc/profile

复制配置文件

cp /root/zookeeper-3.4.9/conf/zoo_sample.cfg /root/zookeeper-3.4.9/conf/zoo.cfg

创建目录:

/root/zookeeper-3.4.9/run
/root/zookeeper-3.4.9/run/data
/root/zookeeper-3.4.9/run/log

修改配置文件

vim /root/zookeeper-3.4.9/conf/zoo.cfg

修改如下两处(没有就增加):
dataDir=/root/zookeeper-3.4.9/run/data
dataLogDir=/root/zookeeper-3.4.9/run/log

启动zookeeper

zkServer.sh start

zk安装完成。

安装hadoop

hadoop,包括hdfs(分布式文件)、yarn(资源调度)、mapreduce(运算)
hadoop和hbase 有依赖关系,
hadoop这里选3.1.4,hbase 选2.3.3 能够兼容

下载hadoop

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.4/hadoop-3.1.4.tar.gz

解压:

tar -zxvf hadoop-3.1.4.tar.gz

配置环境变量

vim /etc/profile

添加两行

export HADOOP_HOME=/root/hadoop-3.1.4
export  PATH=${HADOOP_HOME}/bin:$PATH
image.png

刷新环境变量

source /etc/profile

修改hadoop配置文件

vim /root/hadoop-3.1.4/etc/hadoop/hadoop-env.sh
设置java_home
修改JAVA_HOME=/usr/lib/jvm/jre

创建目录:

mkdir /root/hadoop-3.1.4/run
mkdir /root/hadoop-3.1.4/run/hadoop

修改hosts文件,

vi /etc/hosts

添加1行(172.30.40.95为服务器内网地址):
172.30.40.95 hadoop1 hadoop1


image.png

修改配置文件core-site.xml

vim /root/hadoop-3.1.4/etc/hadoop/core-site.xml

修改hdfs配置,内容(没有就添加):

<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:8020</value>
    </property>
    <property>
        <!--指定 hadoop 存储临时文件的目录-->
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop-3.1.4/run/hadoop</value>
    </property>
    <property>
    <name>hadoop.native.lib</name>
    <value>false</value>
    <description></description>
  </property>
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

image.png

修改hdfs-site.xml文件

vim /root/hadoop-3.1.4/etc/hadoop/hdfs-site.xml

添加hdfs副本数配置,这里配置1 ,内容(172.30.40.95为服务器内网地址):

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
   <property>
        <name>dfs.secondary.http.address</name>
        <value>172.30.40.95:50070</value>
    </property>
</configuration>

image.png

修改文件:mapred-site.xml

vim /root/hadoop-3.1.4/etc/hadoop/mapred-site.xml
内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改文件:yarn-site.xml

vim /root/hadoop-3.1.4/etc/hadoop/yarn-site.xml

内容:

<configuration>
    <property>
        <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

主机访问设置
在root用户目录下执行,也就是/root目录下

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

格式化hdfs

/root/hadoop-3.1.4/bin/hdfs namenode -format


image.png

修改hdfs启动脚本:

vim /root/hadoop-3.1.4/sbin/start-dfs.sh

顶部增加4行
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


image.png

修改hdfs停止脚本:

vim /root/hadoop-3.1.4/sbin/stop-dfs.sh

顶部增加4行
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

修改yarn启动脚本:

vim /root/hadoop-3.1.4/sbin/start-yarn.sh

顶部增加3行
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

修改yarn停止脚本:

vim /root/hadoop-3.1.4/sbin/stop-yarn.sh

顶部增加3行
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

启动hdfs

export JAVA_HOME=/usr/lib/jvm/jre
(停止脚本:/root/hadoop-3.1.4/sbin/stop-dfs.sh)
/root/hadoop-3.1.4/sbin/start-dfs.sh

浏览器访问验证
地址:http://8.134.80.143:50070/


image.png

启动yarn
(停止脚本:/root/hadoop-3.1.4/sbin/stop-yarn.sh)

/root/hadoop-3.1.4/sbin/start-yarn.sh

浏览器访问验证
地址:http://8.134.80.143:8088/

image.png

hadoop 安装完成。

安装mysql

hive 运行需要mysql
下载mysql源

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装mysql源
yum -y install mysql57-community-release-el7-10.noarch.rpm

安装MySQL

yum -y install mysql-server mysql

启动(停止/重启/查看状态) start(/stop/restart/status) MySQL 服务

systemctl start mysqld

修改mysql配置文件:

vim /etc/my.cnf
末尾增加:
skip-grant-tables
[mysql]
default-character-set =utf8


image.png

重启mysql

systemctl restart mysqld

登陆mysql,修改root密码,设置登陆ip。

mysql -u root -p
(密码因为还没设置,直接回车)


image.png

设置密码:

use mysql;
update user set host = '%';
set password for 'root'@'localhost' =password('q1w2e3r4');
flush privileges;

重新修改配置文件:

vim /etc/my.cnf
注释掉:#skip-grant-tables

重启mysql:

systemctl restart mysqld

用 本地navicat 连接mysql,测试mysql是否安装成功

image.png

再navicat里面创建名称为hive的数据库


image.png

mysql安装完成。

安装hive

hive 运行依赖hadoop、mysql,前面已经安装好了。
下载hive

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

解压:

tar -zxvf apache-hive-3.1.2-bin.tar.gz

修改环境变量

vim /etc/profile

添加:

export HIVE_HOME=/root/apache-hive-3.1.2-bin
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export CLASSPATH=.$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin

刷新环境变量:

source /etc/profile

hadoop下建立路径并授权

hadoop fs -mkdir -p /var/hive/warehouse
hadoop fs -mkdir -p /var/hive/tmp
hadoop fs -mkdir -p /tmp/hive
hadoop fs -chmod 777 /var/hive/warehouse
hadoop fs -chmod 777 /var/hive/tmp
hadoop fs -chmod 777 /tmp/hive

修改hive配置文件

复制文件

cp /root/apache-hive-3.1.2-bin/conf/hive-env.sh.template /root/apache-hive-3.1.2-bin/conf/hive-env.sh
cp /root/apache-hive-3.1.2-bin/conf/hive-default.xml.template /root/apache-hive-3.1.2-bin/conf/hive-site.xml

替换冲突jar

cp /root/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /root/apache-hive-3.1.2-bin/lib/guava-27.0-jre.jar
mv /root/apache-hive-3.1.2-bin/lib/guava-19.0.jar /root/apache-hive-3.1.2-bin/lib/guava-19.0.jar-old

下载、复制mysql 驱动jar
安装zip

yum -y install zip unzip

下载驱动

wget https://cdn.mysql.com//archives/mysql-connector-java-5.1/mysql-connector-java-5.1.46.zip

解压

unzip mysql-connector-java-5.1.46.zip

复制

cp /root/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /root/apache-hive-3.1.2-bin/lib/mysql-connector-java-5.1.46-bin.jar

vim /root/apache-hive-3.1.2-bin/conf/hive-env.sh

修改3处(没有就添加)

export HADOOP_HOME=/root/hadoop-3.1.4
export HIVE_CONF_DIR=/root/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/root/apache-hive-3.1.2-bin/lib

修改hive-site.xml文件-建议sftp下载到本地,用文本编辑器修改,需要修改的内容过多。
文件路径是:/root/apache-hive-3.1.2-bin/conf/hive-site.xml
涉及如下内容的节点都需要找到并修改:

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/var/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
<property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/var/hive/tmp/root</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/var/hive/tmp/root</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>
     
    </description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>******</value>
    <description>password to use against metastore database</description>
  </property>

  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
  </property>
<property>
    <name>hive.txn.xlock.iow</name>
    <value>true</value>
    <description>
      
    </description>
  </property>

注意
上面的节点,hive.txn.xlock.iow是要删除description内容,javax.jdo.option.ConnectionPassword填写mysql root用户的密码。
除了上面的节点,还需要全文查找${system:user.name}替换为root,全文查找${system:java.io.tmpdir}替换为/var/hive/tmp

修改完后记得上传到服务器覆盖文件。

初始化hive

schematool -initSchema -dbType mysql

启动hive
hive 启动一定需要机器有足够内存,内存不够会自动killed,hive启动直接进入sql界面。

/root/apache-hive-3.1.2-bin/bin/hive

进入hive后先设置本地运行:

set hive.exec.mode.local.auto=true;

创建表:

create table tb_1(t1 string);

插入数据:

insert into tb_1(t1) values('s23');

查询数据:

select t1 from tb_1;

退出hive:

exit;

数据导出到文件:

/root/apache-hive-3.1.2-bin/bin/hive -e "select * from tb_1" >/root/tb_1.txt

hive还有一个远程服务和web管理界面
启动web界面(这个web界面没什么功能,就能看下服务是否启动),主要测试远程服务

/root/apache-hive-3.1.2-bin/bin/hive --service hiveserver2

浏览器访问:


image.png

启动服务后,10000端口可以进行远程连接,前面是hive直接写sql,现在启动远程连接后,可以beeline去连接,beeline展示信息会友好很多。
beeline 连接:

beeline -u jdbc:hive2://localhost:10000

beeline执行查询语句:

select * from tb_1;


image.png

测试成功,部署调用完成。

本来这篇已经结束了,有人咨询,是否有navicat,plsql 类似这样的客户端连接hive,这里说一下,

启动了远程连接服务后就能用客户端远程连接操作(/root/apache-hive-3.1.2-bin/bin/hive --service hiveserver2)
工具使用squirrel,就是一个可以双击运行的jar包,官网下最新的就可以了。
顺序和逻辑: 下载客户端---到安装hive的服务器下载驱动(有个jdbc目录,已经帮你把驱动包封装好了)--本地安装客户端--本地添加服务器下载的驱动,取名hive---新建连接--填写连接地址连接。

下载客户端
下载地址:https://nchc.dl.sourceforge.net/project/squirrel-sql/1-stable/4.1.0/squirrel-sql-4.1.0-standard.jar
如果嫌下载慢,可以从我港区地址下载(如果不能用了就从官网地址下载),我嫌弃慢,在我港区服务器上做了一层cdn:https://p9pan.cn/cdn/squirrel-sql-4.1.0-standard.jar

双击运行就可以安装,安装除了安装路径,其它所有选项默认就可以了,不用选什么msyql、oracle什么的。

我安装在D盘:D:\Program Files\squirrel\squirrel-sql-4.1.0
进入目录,双击squirrel-sql.bat 运行squirrel,打开后是这样的。


image.png

左边有一个驱动,一个连接会话 两个tab,需要先添加驱动,再添加会话。


image.png

先去安装hive的服务器把驱动下载下来(不要从百度搜下载,网络下载hive版本有区别,容易产生未知问题)。
下载驱动
驱动文件官网已经整理好了,就一个jar包,文件在:
/root/apache-hive-3.1.2-bin/jdbc/hive-jdbc-3.1.2-standalone.jar

image.png

下载到本地后就配置驱动
点击drivers 点击加号进去配置

image.png

填写的信息:
名称:hive
地址(8.134.80.143是阿里云服务器公网地址):jdbc:hive2://8.134.80.143:10000
类名:org.apache.hive.jdbc.HiveDriver

image.png

配置顺利后,左侧驱动会显示 勾。


image.png

切换到连接会话tab,添加连接:
填写连接名称、选择hive、 地址(8.134.80.143是阿里云服务器公网地址):jdbc:hive2://8.134.80.143:10000

用户名和密码空着--点击连接。

*****************************注意*******************************
只做查询操作,不用用户名和密码,
但如果需要更新数据,就需要使用用户,用户可以用root,
密码是创建mysql用户时mysql的用户和密码。
和hive里面一样,更新操作会话
先执行set hive.exec.mode.local.auto=true;
然后再执行更新操作。
image.png
image.png

成功连接hive

image.png

写sql
切换到sql tab页,就可以写sql了,和navicat、plsql相仿,回到了sql96状态, 执行sql查询:select * from tb_1,点击黑色跑步一样的图标就是执行sql。

image.png

界面对照navicat 、plsql的功能找位置几分钟就上手,不细讲。

SpringBoot接入调用

添加springboot连接hive,操作演示jdbc查询数据。

引用

pom文件引入

 <!-- hive -->
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>3.1.2</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j-impl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.jetty.orbit</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.jetty.aggregate</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

注意:千万不要直接引用-org.apache.hive -hive-jdbc依赖,需要加上exclusions,因为hive自身的依赖jar会与springboot的tomcat冲突,导致启动报错。

配置文件application.yaml 的hive服务器参数

内容(8.134.80.143是阿里云公网IP):

hive:
  url: jdbc:hive2://8.134.80.143:10000
  driver-class-name: org.apache.hive.jdbc.HiveDriver
  type: com.alibaba.druid.pool.DruidDataSource
  user: root
  password: q1w2e3r4
  initialSize: 1
  minIdle: 3
  maxActive: 20
  maxWait: 60000
  timeBetweenEvictionRunsMillis: 60000
  minEvictableIdleTimeMillis: 30000
  validationQuery: select 1
  testWhileIdle: true
  testOnBorrow: false
  testOnReturn: false
  poolPreparedStatements: true
  maxPoolPreparedStatementPerConnectionSize: 20
  connectionErrorRetryAttempts: 0
  breakAfterAcquireFailure: true

image.png

创建hive操作和测试类

连接配置类-HiveDruidConfig:
内容:


import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;

@Data
@Configuration
@ConfigurationProperties(prefix = "hive")
public class HiveDruidConfig {

    private String url;
    private String user;
    private String password;
    private String driverClassName;
    private int initialSize;
    private int minIdle;
    private int maxActive;
    private int maxWait;
    private int timeBetweenEvictionRunsMillis;
    private int minEvictableIdleTimeMillis;
    private String validationQuery;
    private boolean testWhileIdle;
    private boolean testOnBorrow;
    private boolean testOnReturn;
    private boolean poolPreparedStatements;
    private int maxPoolPreparedStatementPerConnectionSize;
    private int connectionErrorRetryAttempts;
    private boolean breakAfterAcquireFailure;

    @Bean(name = "hiveDruidDataSource")
    @Qualifier("hiveDruidDataSource")
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(url);
        datasource.setUsername(user);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);
        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setValidationQuery(validationQuery);
        datasource.setTestWhileIdle(testWhileIdle);
        datasource.setTestOnBorrow(testOnBorrow);
        datasource.setTestOnReturn(testOnReturn);
        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
        datasource.setConnectionErrorRetryAttempts(connectionErrorRetryAttempts);
        datasource.setBreakAfterAcquireFailure(breakAfterAcquireFailure);
        return datasource;
    }

    @Bean(name = "hiveDruidTemplate")
    public JdbcTemplate hiveDruidTemplate(@Qualifier("hiveDruidDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

}

业务实现类-HiveService:


import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import javax.sql.DataSource;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j
@Service
public class HiveService {

    @Autowired
    @Qualifier("hiveDruidDataSource")
    private DataSource druidDataSource;

    private String tableName = "tb_1";


    public  Map queryHiveData() {
        String sqlString = "select * from "+tableName;
        Connection conn = null;
        Statement statement = null;
        ResultSet rs = null;
        Map result = new HashMap();
        try {
            conn = druidDataSource.getConnection();
            statement = conn.createStatement();
            List list = new ArrayList();
            rs = statement.executeQuery(sqlString.toString());
            ResultSetMetaData metaData = rs.getMetaData();
            int columnCount = metaData.getColumnCount();
            while (rs.next()) {
                Map obj = new HashMap();
                // 遍历每一列
                for (int i = 1; i <= columnCount; i++) {
                    String columnName = metaData.getColumnLabel(i);
                    String value = rs.getString(columnName);
                    obj.put(columnName, value);
                    list.add(obj);
                }
                list.add(obj);
            }
            result.put("data", list);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
                statement.close();
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}

业务类查询,查询的是前面步骤hive后台创建的表 tb_1,自己写的时候根据自己创建的表修改表名。

hive的controller测试类-HiveController:


import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@Slf4j
@RestController
public class HiveController {

    @Autowired
    private HiveService hiveService;


    @RequestMapping("hiveQuery")
    public Map query(){
        Map info = hiveService.queryHiveData();
        return info;
    }


}

目录结构:


image.png

测试

浏览器访问查询接口:http://localhost:8080/hiveQuery
查询tb_1 表的数据。

image.png

测试结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,825评论 4 377
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,887评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,425评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,801评论 0 224
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,252评论 3 299
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,089评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,216评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 31,005评论 0 215
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,747评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,883评论 2 255
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,354评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,694评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,406评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,222评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,242评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,017评论 2 281

推荐阅读更多精彩内容