《OD学Hive》第六周20160730

一、Hive的JDBC连接

日志分析结果数据,存储在hive中

 

<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
  <description>Port number of HiveServer2 Thrift interface.
  Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description>
</property>

<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>localhost</value>
  <description>Bind host on which to run the HiveServer2 Thrift interface.
  Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
</property>

hive.server2.thrift.bind.host

如果需要远程连接,则改成主机名beifeng-hadoop-02,或者0.0.0.2(表示任何主机都可以连接)

hiveserver2进程的启动:nohup hiveserver2 > /home/beifeng/hiveserver2.start.log 2>&1 &

nohup hive --service hiveserver2 > /home/beifeng/hiveserver2.start.log 2>&1 &
ps -ef | grep HiveServer2
netstat -tlnup | grep 10000

如果需要远程连接,则改成主机名beifeng-hadoop-02,或者0.0.0.2(表示任何主机都可以连接)

JDBC连接
beeline连接客户端beeline

进入beeline交互式窗口以后,

执行:!connect jdbc:hive2://beifeng-hadoop-02:10000

首次用beeline访问Hive,会出现异常

hive.server2.long.polling.timeout

username:用户名一定要用hdfs上的用户,或者对hdfs上与hive相关的目录有写权限的用户名

hive.metastore.warehouse

passwd

 

二、Sqoop

1. 数据来源:

(1)日志数据:业务系统运行过程中产生的业务日志数据(用户行为数据),上传到hdfs

对于小数据量: shell脚本方式 hdfs dfs -put

对于大数据量: 使用专门框架

Flume:使用mapreduce导数据到

LogStah:ELK   --->  E elasticsearch | L logstach | K kinbana

(2)RMBMS的记录:需要先导入到HDFS上

金融行业,反欺诈模型--》通过分析历史金融交易记录

金融交易记录:一般是存储在DB2、ORACLE

Sqoop框架:

RMDBS <=======> HDFS

Sqoop框架底层本质:还是mapreduce,只需要map,并发执行

2. Sqoop架构

sqoop

sqoop1:包含了sqoop的核心,使用命令操作

sqoop2:在sqoop1的基础上封装了一些服务,比如添加连接池、客户端

导数据其实一般是通过编写脚本,定时去执行。

3. Sqoop安装部署

统一使用cdh版本: 各个框架之间存在版本的兼容性,

Cloudera公司 Doug Cutting

Cloudera Manager:集群监控、管理的工具

cdh版本: hadoop、hive、sqoop、flume、hue、oozie

bin/sqoop help

bin/sqoop export

bin/sqoop import 

bin/sqoop list-databases

bin/sqoop list-tables

bin/sqoop --options-file 文件名

4. 项目案例

订单分析:数据来源于RDBMS

统计的需求:

日期维度:年

订单金额总额、平均订单金额、最大订单金额、最小订单金额

日期维度+地域维度:某个国家省份城市+年

订单金额总额、平均订单金额、最大订单金额、最小订单金额

某个客户下:历史、年

订单金额总额、平均订单金额、最大订单金额、最小订单金额

实现实录:

1)将订单记录从RDBMS上导入到HDFS

2)Hive进行统计分析

3)将统计结果数据导出到RDBMS

sqoop export

 

bin/sqoop --list-databases \

--connection --jdbc:mysql://host:port/database\

--username \

--password

 

1)用sqoop将数据导入到hdfs

bin/sqoop help import

bin/sqoop import \

--connection --jdbc:mysql://host:port/database\

--username \

--password

--table cust info\

--target-dri hdfs://host/user/beifeng/import/cust_info

--delete-target-dir

 

增量导入

--check-column  依据字段,类型应该使用数字类型

--incremental 模式 append lastmodified

--last-value 上次导的值

 

强烈建议使用数字类型的字段进行切分

指定map个数 --num-mappers  

 

默认导入到hdfs上的文件是CSV文件(每个字段之间使用逗号隔开)。

====按照自定义分隔符将RDBMS表数据导入hdfs

Output line formatting arguments:指定MapReduce输出格式

Input parsing arguments:指mapreduce读取数据时解析数据

--fields-terminated-by: 指定分隔符

 

转载于:https://www.cnblogs.com/yeahwell/p/5720201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值