Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
ths-hive
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王祥松
ths-hive
Commits
1c4d86ee
Commit
1c4d86ee
authored
Sep 19, 2019
by
XSwang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parents
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
628 additions
and
0 deletions
+628
-0
.gitignore
.gitignore
+34
-0
pom.xml
pom.xml
+77
-0
ThsHiveApplication.java
src/main/java/com/huaching/thshive/ThsHiveApplication.java
+13
-0
HiveDruidConfig.java
...ain/java/com/huaching/thshive/config/HiveDruidConfig.java
+214
-0
HiveJdbcTemplateController.java
...aching/thshive/controller/HiveJdbcTemplateController.java
+119
-0
TestController.java
.../java/com/huaching/thshive/controller/TestController.java
+30
-0
ParkingLockMapper.java
...n/java/com/huaching/thshive/mapper/ParkingLockMapper.java
+11
-0
ParkingLockMapperImpl.java
...m/huaching/thshive/mapper/impl/ParkingLockMapperImpl.java
+48
-0
ParkingLockService.java
...java/com/huaching/thshive/service/ParkingLockService.java
+11
-0
ParkingLockServiceImpl.java
...huaching/thshive/service/impl/ParkingLockServiceImpl.java
+30
-0
application.yml
src/main/resources/application.yml
+25
-0
ThsHiveApplicationTests.java
...st/java/com/huaching/thshive/ThsHiveApplicationTests.java
+16
-0
No files found.
.gitignore
0 → 100644
View file @
1c4d86ee
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
.mvn
mvnw
mvnw.cmd
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
pom.xml
0 → 100644
View file @
1c4d86ee
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.1.8.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.huaching
</groupId>
<artifactId>
ths-hive
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
ths-hive
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-webflux
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid-spring-boot-starter
</artifactId>
<version>
1.1.20
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-hadoop
</artifactId>
<version>
2.5.0.RELEASE
</version>
</dependency>
<dependency>
<groupId>
org.apache.hive
</groupId>
<artifactId>
hive-jdbc
</artifactId>
<version>
1.2.1
</version>
<exclusions>
<exclusion>
<groupId>
org.eclipse.jetty.aggregate
</groupId>
<artifactId>
*
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
io.projectreactor
</groupId>
<artifactId>
reactor-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
src/main/java/com/huaching/thshive/ThsHiveApplication.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
ThsHiveApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ThsHiveApplication
.
class
,
args
);
}
}
src/main/java/com/huaching/thshive/config/HiveDruidConfig.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
config
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Component
;
import
javax.sql.DataSource
;
@Component
@ConfigurationProperties
(
prefix
=
"hive"
)
public
class
HiveDruidConfig
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
HiveDruidConfig
.
class
);
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
;
@Bean
(
name
=
"hiveDruidDataSource"
)
@Qualifier
(
"hiveDruidDataSource"
)
public
DataSource
dataSource
()
{
DruidDataSource
datasource
=
new
DruidDataSource
();
datasource
.
setUrl
(
url
);
datasource
.
setUsername
(
user
);
datasource
.
setPassword
(
password
);
datasource
.
setDriverClassName
(
driverClassName
);
// pool configuration
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
);
return
datasource
;
}
// 此处省略各个属性的get和set方法
@Bean
(
name
=
"hiveDruidTemplate"
)
public
JdbcTemplate
hiveDruidTemplate
(
@Qualifier
(
"hiveDruidDataSource"
)
DataSource
dataSource
)
{
return
new
JdbcTemplate
(
dataSource
);
}
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getUser
()
{
return
user
;
}
public
void
setUser
(
String
user
)
{
this
.
user
=
user
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getDriverClassName
()
{
return
driverClassName
;
}
public
void
setDriverClassName
(
String
driverClassName
)
{
this
.
driverClassName
=
driverClassName
;
}
public
int
getInitialSize
()
{
return
initialSize
;
}
public
void
setInitialSize
(
int
initialSize
)
{
this
.
initialSize
=
initialSize
;
}
public
int
getMinIdle
()
{
return
minIdle
;
}
public
void
setMinIdle
(
int
minIdle
)
{
this
.
minIdle
=
minIdle
;
}
public
int
getMaxActive
()
{
return
maxActive
;
}
public
void
setMaxActive
(
int
maxActive
)
{
this
.
maxActive
=
maxActive
;
}
public
int
getMaxWait
()
{
return
maxWait
;
}
public
void
setMaxWait
(
int
maxWait
)
{
this
.
maxWait
=
maxWait
;
}
public
int
getTimeBetweenEvictionRunsMillis
()
{
return
timeBetweenEvictionRunsMillis
;
}
public
void
setTimeBetweenEvictionRunsMillis
(
int
timeBetweenEvictionRunsMillis
)
{
this
.
timeBetweenEvictionRunsMillis
=
timeBetweenEvictionRunsMillis
;
}
public
int
getMinEvictableIdleTimeMillis
()
{
return
minEvictableIdleTimeMillis
;
}
public
void
setMinEvictableIdleTimeMillis
(
int
minEvictableIdleTimeMillis
)
{
this
.
minEvictableIdleTimeMillis
=
minEvictableIdleTimeMillis
;
}
public
String
getValidationQuery
()
{
return
validationQuery
;
}
public
void
setValidationQuery
(
String
validationQuery
)
{
this
.
validationQuery
=
validationQuery
;
}
public
boolean
isTestWhileIdle
()
{
return
testWhileIdle
;
}
public
void
setTestWhileIdle
(
boolean
testWhileIdle
)
{
this
.
testWhileIdle
=
testWhileIdle
;
}
public
boolean
isTestOnBorrow
()
{
return
testOnBorrow
;
}
public
void
setTestOnBorrow
(
boolean
testOnBorrow
)
{
this
.
testOnBorrow
=
testOnBorrow
;
}
public
boolean
isTestOnReturn
()
{
return
testOnReturn
;
}
public
void
setTestOnReturn
(
boolean
testOnReturn
)
{
this
.
testOnReturn
=
testOnReturn
;
}
public
boolean
isPoolPreparedStatements
()
{
return
poolPreparedStatements
;
}
public
void
setPoolPreparedStatements
(
boolean
poolPreparedStatements
)
{
this
.
poolPreparedStatements
=
poolPreparedStatements
;
}
public
int
getMaxPoolPreparedStatementPerConnectionSize
()
{
return
maxPoolPreparedStatementPerConnectionSize
;
}
public
void
setMaxPoolPreparedStatementPerConnectionSize
(
int
maxPoolPreparedStatementPerConnectionSize
)
{
this
.
maxPoolPreparedStatementPerConnectionSize
=
maxPoolPreparedStatementPerConnectionSize
;
}
}
src/main/java/com/huaching/thshive/controller/HiveJdbcTemplateController.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
controller
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/hive2"
)
public
class
HiveJdbcTemplateController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
HiveJdbcTemplateController
.
class
);
@Autowired
@Qualifier
(
"hiveDruidTemplate"
)
private
JdbcTemplate
hiveDruidTemplate
;
/**
* 示例:创建新表
*/
@RequestMapping
(
"/table/create"
)
public
String
createTable
()
{
StringBuffer
sql
=
new
StringBuffer
(
"CREATE TABLE IF NOT EXISTS "
);
sql
.
append
(
"user_sample"
);
sql
.
append
(
"(user_num BIGINT, user_name STRING, user_gender STRING, user_age INT)"
);
sql
.
append
(
"ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' "
);
// 定义分隔符
sql
.
append
(
"STORED AS TEXTFILE"
);
// 作为文本存储
logger
.
info
(
"Running: "
+
sql
);
String
result
=
"Create table successfully..."
;
try
{
// hiveJdbcTemplate.execute(sql.toString());
hiveDruidTemplate
.
execute
(
sql
.
toString
());
}
catch
(
DataAccessException
dae
)
{
result
=
"Create table encounter an error: "
+
dae
.
getMessage
();
logger
.
error
(
result
);
}
return
result
;
}
/**
* 示例:将Hive服务器本地文档中的数据加载到Hive表中
*/
@RequestMapping
(
"/table/load"
)
public
String
loadIntoTable
()
{
String
filepath
=
"/home/hadoop/user_sample.txt"
;
String
sql
=
"load data local inpath '"
+
filepath
+
"' into table user_sample"
;
String
result
=
"Load data into table successfully..."
;
try
{
// hiveJdbcTemplate.execute(sql);
hiveDruidTemplate
.
execute
(
sql
);
}
catch
(
DataAccessException
dae
)
{
result
=
"Load data into table encounter an error: "
+
dae
.
getMessage
();
logger
.
error
(
result
);
}
return
result
;
}
/**
* 示例:向Hive表中添加数据
*/
@RequestMapping
(
"/table/insert"
)
public
String
insertIntoTable
()
{
String
sql
=
"INSERT INTO TABLE user_sample(user_num,user_name,user_gender,user_age) VALUES(888,'Plum','M',32)"
;
String
result
=
"Insert into table successfully..."
;
try
{
// hiveJdbcTemplate.execute(sql);
hiveDruidTemplate
.
execute
(
sql
);
}
catch
(
DataAccessException
dae
)
{
result
=
"Insert into table encounter an error: "
+
dae
.
getMessage
();
logger
.
error
(
result
);
}
return
result
;
}
/**
* 示例:删除表
*/
@RequestMapping
(
"/table/delete"
)
public
String
delete
(
String
tableName
)
{
String
sql
=
"DROP TABLE IF EXISTS "
+
tableName
;
String
result
=
"Drop table successfully..."
;
logger
.
info
(
"Running: "
+
sql
);
try
{
// hiveJdbcTemplate.execute(sql);
hiveDruidTemplate
.
execute
(
sql
);
}
catch
(
DataAccessException
dae
)
{
result
=
"Drop table encounter an error: "
+
dae
.
getMessage
();
logger
.
error
(
result
);
}
return
result
;
}
/**
* 示例:向Hive表中添加数据
*/
@RequestMapping
(
"/table/select"
)
public
String
selectTable
()
{
String
sql
=
"SELECT count(*) from sales_info_new_new"
;
String
result
=
"Insert into table successfully..."
;
try
{
// hiveJdbcTemplate.execute(sql);
int
count
=
hiveDruidTemplate
.
queryForObject
(
sql
,
Integer
.
class
);
System
.
out
.
println
(
count
);
}
catch
(
DataAccessException
dae
)
{
result
=
"Insert into table encounter an error: "
+
dae
.
getMessage
();
logger
.
error
(
result
);
}
return
result
;
}
}
src/main/java/com/huaching/thshive/controller/TestController.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
controller
;
import
com.huaching.thshive.service.ParkingLockService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/test"
)
public
class
TestController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
TestController
.
class
);
@Autowired
private
ParkingLockService
parkingLockService
;
@RequestMapping
(
"/tableList"
)
public
Object
tableList
()
{
return
parkingLockService
.
tableList
();
}
@RequestMapping
(
"/salesInfoNewNewList"
)
public
Object
salesInfoNewNewList
()
{
return
parkingLockService
.
salesInfoNewNewList
();
}
}
src/main/java/com/huaching/thshive/mapper/ParkingLockMapper.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
mapper
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ParkingLockMapper
{
List
<
Map
<
String
,
Object
>>
tableList
();
List
<
Map
<
String
,
Object
>>
salesInfoNewNewList
();
}
src/main/java/com/huaching/thshive/mapper/impl/ParkingLockMapperImpl.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
mapper
.
impl
;
import
com.huaching.thshive.mapper.ParkingLockMapper
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Map
;
@Component
public
class
ParkingLockMapperImpl
implements
ParkingLockMapper
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ParkingLockMapperImpl
.
class
);
@Autowired
@Qualifier
(
"hiveDruidTemplate"
)
private
JdbcTemplate
hiveDruidTemplate
;
@Override
public
List
<
Map
<
String
,
Object
>>
tableList
()
{
String
sql
=
"show tables"
;
List
<
Map
<
String
,
Object
>>
result
=
null
;
try
{
result
=
hiveDruidTemplate
.
queryForList
(
sql
);
}
catch
(
DataAccessException
dae
)
{
logger
.
error
(
"查询出异常"
,
dae
);
}
return
result
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
salesInfoNewNewList
()
{
String
sql
=
"SELECT * from sales_info_new_new limit 100"
;
List
<
Map
<
String
,
Object
>>
result
=
null
;
try
{
result
=
hiveDruidTemplate
.
queryForList
(
sql
);
}
catch
(
DataAccessException
dae
)
{
logger
.
error
(
"查询出异常"
,
dae
);
}
return
result
;
}
}
src/main/java/com/huaching/thshive/service/ParkingLockService.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
service
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ParkingLockService
{
List
<
Map
<
String
,
Object
>>
tableList
();
List
<
Map
<
String
,
Object
>>
salesInfoNewNewList
();
}
src/main/java/com/huaching/thshive/service/impl/ParkingLockServiceImpl.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
.
service
.
impl
;
import
com.huaching.thshive.mapper.ParkingLockMapper
;
import
com.huaching.thshive.service.ParkingLockService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
ParkingLockServiceImpl
implements
ParkingLockService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ParkingLockServiceImpl
.
class
);
@Autowired
private
ParkingLockMapper
parkingLockMapper
;
@Override
public
List
<
Map
<
String
,
Object
>>
tableList
()
{
return
parkingLockMapper
.
tableList
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
salesInfoNewNewList
()
{
return
parkingLockMapper
.
salesInfoNewNewList
();
}
}
src/main/resources/application.yml
0 → 100644
View file @
1c4d86ee
hive
:
url
:
jdbc:hive2://47.97.200.228:10000/parking_lock
driver-class-name
:
org.apache.hive.jdbc.HiveDriver
type
:
com.alibaba.druid.pool.DruidDataSource
user
:
password
:
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
initialSize
:
1
minIdle
:
3
maxActive
:
20
# 配置获取连接等待超时的时间
maxWait
:
60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis
:
60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis
:
30000
validationQuery
:
select 1
testWhileIdle
:
true
testOnBorrow
:
false
testOnReturn
:
false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements
:
true
maxPoolPreparedStatementPerConnectionSize
:
20
\ No newline at end of file
src/test/java/com/huaching/thshive/ThsHiveApplicationTests.java
0 → 100644
View file @
1c4d86ee
package
com
.
huaching
.
thshive
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
ThsHiveApplicationTests
{
@Test
public
void
contextLoads
()
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment