前提提交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/hcatalog3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME:$HCAT_HOME
2、保存,然后刷新环境变量
命令:source /etc/profile
查看环境变量有没有生效:
echo $HIVE_HOME
echo $HCAT_HOME
找到hive的hive-site.xml文件,修改文件(注意需要把xxx改成对应的数据库地址就行)
javax.jdo.option.ConnectionURLjdbc:mysql://xxx:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNamerootjavax.jdo.option.ConnectionPasswordroot
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= 1000a1.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