通過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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM