zoukankan      html  css  js  c++  java
  • 通过flume的hivesink接收数据存到hive数据库表中

    前提提交1、hadoop环境2、hive环境3、flume环境(此文章只介绍介绍环境搭建)

    1、配置hive环境变量,方便每次使用hive都要加载hive的json包问题

    进图linux中的环境配置文件

    vim /etc/profile

    1 export HIVE_HOME=/home/software/hive-1.2.0
    2 export HCAT_HOME=/home/software/hive-1.2.0/hcatalog
    3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME:$HCAT_HOME

    2、保存,然后刷新环境变量

    命令:source /etc/profile

    查看环境变量有没有生效:

    echo $HIVE_HOME
    
    echo $HCAT_HOME

    3、配置hive的数据库变量(前提需要安装mysql数据库,如果需要安装数据库查看https://www.cnblogs.com/lhicp/p/13895897.html

    找到hive的hive-site.xml文件,修改文件(注意需要把xxx改成对应的数据库地址就行)

    <configuration>
       <property>
             <name>javax.jdo.option.ConnectionURL</name>
             <value>jdbc:mysql://xxx:3306/hive?createDatabaseIfNotExist=true</value>
       </property>
       <property>
             <name>javax.jdo.option.ConnectionDriverName</name>
             <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
             <name>javax.jdo.option.ConnectionUserName</name> 
             <value>root</value> 
        </property>
        <property>
              <name>javax.jdo.option.ConnectionPassword</name>
              <value>root</value>
         </property>
    </configuration>

    4、手动加载hive中的数据表(如果不手动加载hive会在使用的时候只帮你加载使用的表)

       4.1、 mysql -uroot -proot

    4.2、创建数据库

    create database hive character set latin1

    4.3、使用hive库 

    use hive

    5、进入hive的bin目录下,初始化hive数据库表

    ./schematool -initSchema -dbType mysql

     初始化成功

    6、启动hive

    进入hive目录./hive

    6.1、hive中创建数据库test

          create database test;

    6.2、使用该数据库

         use test

    6.3、创建表

         create table vip(xxxx);

    7、启动hive的远程数据服务,为了后续flume可以把数据存入进去

    进入hive的bin目录执行:hive --service metastore

    此服务的默认端口是9083,可以通过thrift://ip:9083连接

    8、编写flume程序

            #配置Agent
            a1.sources = r1
            a1.sinks = k1
            a1.channels = c1
            
            #配置Source
            a1.sources.r1.type = spooldir
            a1.sources.r1.spoolDir = ‘生成文件的地址’
            
            #配置Sink
            a1.sinks.k1.type = hive
            a1.sinks.k1.hive.metastore = thrift://ip:9083
            a1.sinks.k1.hive.database = test
            a1.sinks.k1.hive.table = vip
            a1.sinks.k1.serializer =json
            
            #配置Channel
            a1.channels.c1.type = memory
            a1.channels.c1.capacity = 1000
            a1.channels.c1.transactionCapacity = 1000
            
            #绑定关系
            a1.sources.r1.channels = c1
            a1.sinks.k1.channel = c1

    9、启动flume

    flume-ng agent --conf ../conf --conf-file ../conf/test.conf --name a1 -Dflume.root.logger=INFO,console

    10、当生成文件的时候,flume会监听到,然后把数据存入到hive数据库中,然后进行 数据的清洗

    补充:hive中克隆表

     create table dataclear like vip;(复制一个表和vip表一样的表叫做dataclear)

      hive中正则匹配用rlike

  • 相关阅读:
    Url参数的安全性处理
    redis安装学习
    Spring的IOC原理(转载)
    Linux下jdk&tomcat的安装
    App架构经验总结(转载)
    谈谈对Spring IOC的理解(转载)
    2018,扬帆起航!
    Lua随机问题
    为什么R#警告Warning Delegate subtraction has unpredictable result
    Dotween实现打字机效果,并向下滚屏
  • 原文地址:https://www.cnblogs.com/lhicp/p/14058672.html
Copyright © 2011-2022 走看看