zoukankan      html  css  js  c++  java
  • 《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: 指定分隔符

  • 相关阅读:
    SQL Server游标的使用
    SQL函数说明大全
    基本数据结构:链表(list)
    QT+C++实现连连看
    printf按8进制、16进制输出
    关于数据库优化问题收集
    SQL Server 查询处理中的各个阶段(SQL执行顺序) 转
    MFC消息机制
    _T() 和_L() _TEXT __T,L区别与联系详解
    Windows 各种控件使用心得
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5720201.html
Copyright © 2011-2022 走看看