《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: 指定分隔符
《OD学Hive》第六周20160730的更多相关文章
- 《OD学hive》第六周20160731
一.hive的压缩 1. hadoop的压缩 1)为什么需要压缩 MapReduce的性能瓶颈:网络IO.磁盘IO 数据量:对于MapReduce的优化,最主要.根本就是要能够减少数据量 Combin ...
- 《OD学hive》第五周0723
https://cwiki.apache.org/confluence/display/Hive/LanguageManual 一.创建表 create table student(id int, n ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 《OD学hadoop》第二周0702
大数据离线计算hadoop2.x 三周(6天) markdown文本剪辑器 罗振宇--跨年演讲,时间的朋友 http://tech.163.com/16/0101/11/BC87H8DF000915B ...
- 《OD学hadoop》第二周0703
hdfs可视化界面: http://beifeng-hadoop-01:50070/dfshealth.html#tab-overview yarn可视化界面: http://beifeng-hado ...
- 《OD学hadoop》第一周0625
一.实用网站 1. linux内核版本 www.kernel.org 2. 查看网站服务器使用的系统 www.netcraft.com 二.推荐书籍 1. <Hadoop权威指南> 1- ...
- 从零开始学Python第六周:面向对象基础(需修改)
标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...
- 《OD学hadoop》第一周0626 作业二:Linux基础
一.打包压缩 知识点: tar -zxvf -C PATH tar -jxvf tar -zcvf tar -jcvf tar:打包命令 -z 打包同时gzip压缩 -j 打包同时bzip2 -c 打 ...
- 《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)
1. 1) vim /etc/udev/rules.d/-persistent-net.rules vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE= ...
随机推荐
- Leetcode#73 Set Matrix Zeroes
原题地址 用矩形的第一行和第一列充当mask 代码: void setZeroes(vector<vector<int> > &matrix) { ].empty()) ...
- NYOJ-205 求余数 AC 分类: NYOJ 2014-02-02 12:30 201人阅读 评论(0) 收藏
这题目看一眼以为难度评级出错了,只是一个求余数的题目,,后来才发现,位数小于百万位,,,我还以为是大小小于百万呢,所以借鉴了另一大神的代码, 用大数,重点是同余定理: (a+b)mod m=((a m ...
- Asp.net的服务器推技术 (Server Push)
在以往的和服务器端通信技术中,我们多数使用的是AJAX轮询式访问,也就是在Javascript中控制时间间隔,然后每隔一段时间就访问一次服务器,然后获得数据或通知.但是这种轮询方式的访问有90%是在做 ...
- CSS 外边距(margin)重叠及防止方法
边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容.补白.边框)重合在一起而形成一个单一边界. 两个或多个块级盒子的垂直相邻边界会重合.结果的边界宽度是相邻边界宽度中最大 ...
- Chapter 5
1. 2模块导入 3.包导入
- JSP-declareAndOutput
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" errorPag ...
- ios 团购分类页面(9宫格)
=-= 命名有些错误,但功能实现,以后注意下命名规范 WJViewGroup.h #import <UIKit/UIKit.h> @interface WJViewGroup : UIVi ...
- hdu 4159 Indomie (DP,数学概率)
推出数学公式: #include<stdio.h> #include<string.h> __int64 C(int m,int n) { __int64 tmp=; if(m ...
- Grub命令行
今天电脑无缘无故无法正常启动,只提示 GRUB> 看来是GRUB引导出问题了,要解决下. 先 想到用制作U盘启动盘来启动,参照网上的方法,很简单用USBBOOT软件做了一个U盘启动盘,按F11在 ...
- QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)
之前,用标准C++写过读取文件夹.现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的.主要用到QDir,详细文档可见这里 A program that lists all the files ...