hbase+flume+hdfs整合

软件包:

hbase-0.98.22

apache-flume-1.6.0

hadoop-2.6.1

1.jdk,zookeeper必须事先装好

2.保证hadoop集群和zookeeper集群正常运行

3.才可以启动hbase

详细操作如下:

1.  上传

首先确保用户是hadoop,用工具将hbase安装包hbase-0.99.2-bin.tar.gz上传到/home/hadoop下,确保hbase-0.98.22-bin.tar.gz的用户是hadoop,如果不是,执行chown命令,见上文

2.  解压

su – hadoop

tar –zxvf hbase-0.98.22-bin.tar.gz

3.  重命名

mv hbase-0.99.2hbase

4.  修改环境变量

1、  在master机器上执行下面命令:

su – root

vi/etc/profile

添加内容:

export HBASE_HOME=/home/hadoop/hbase

export PATH=$PATH:$HBASE_HOME/bin

执行命令:

source /etc/profile

su – hadoop

2、在其他机器上执行上述操作。

5.  修改配置文件

su – hadoop

将配置文件上传到/home/hadoop/hbase/conf文件夹下。

每个文件的解释如下:

hbase-env.sh

export JAVA_HOME=/usr/jdk   //jdk安装目录

export HBASE_CLASSPATH=/home/hadoop/hadoop/conf   //hadoop配置文件的位置

export HBASE_MANAGES_ZK=true   #如果使用独立安装的zookeeper这个地方就是false

 

hbase-site.xml

<configuration>

<property>

<name>hbase.master</name>              #hbasemaster的主机和端口

<value>master1:60000</value>

</property>

<property>

<name>hbase.master.maxclockskew</name>    #时间同步允许的时间差

<value>180000</value>

</property>

<property>

<name>hbase.rootdir</name>

<value>hdfs:// hadoop-cluster1/hbase</value>#hbase共享目录,持久化hbase数据

</property>

<property>

<name>hbase.cluster.distributed</name>  #是否分布式运行,false即为单机

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>#zookeeper地址

<value>slave1, slave2,slave3</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>#zookeeper配置信息快照的位置

<value>/home/hadoop/hbase/tmp/zookeeper</value>

</property>

</configuration>

Regionservers    //是从机器的域名

slave1

slave2

slave3

 

6.  把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

cp/home/hadoop/hadoop/etc/hadoop/hdfs-site.xml /home/hadoop/hbase/conf

cp/home/hadoop/hadoop/etc/hadoop/core-site.xml /home/hadoop/hbase/conf

7.  发送到其他机器

su - hadoop

scp –r /home/hadoop/hbasehadoop@slave1:/home/hadoop

scp –r /home/hadoop/hbasehadoop@slave2:/home/hadoop

scp –r /home/hadoop/hbasehadoop@slave3:/home/hadoop

8.  启动

su – hadoop

start-hbase.sh

9.  查看

进程:jps

进入hbase的shell:hbase shell

退出hbase的shell:quit

页面:http://master:60010/

默认端口:16010

 

整合flume时。需要注意:

1、添加jar包支持

技术分享

将hbase的lib下的这些jar包拷贝到flume的lib下

2、配置flume

# ------------------- 定义数据流----------------------
# source的名字
agent.sources = kafkaSource
# channels的名字,建议按照type来命名
agent.channels = kafkaChannel
# sink的名字,建议按照目标来命名
agent.sinks = hbaseSink




# ---------------------定义source和sink的绑定关系----------------


# 指定source使用的channel名字
agent.sources.kafkaSource.channels = kafkaChannel
# 指定sink需要使用的channel的名字,注意这里是channel
agent.sinks.hbaseSink.channel = kafkaChannel


#-------- kafkaSource相关配置-----------------
# 定义消息源类型
agent.sources.kafkaSource.type = org.apache.flume.source.kafka.KafkaSource
# 定义kafka所在zk的地址
agent.sources.kafkaSource.zookeeperConnect = 10.45.9.139:2181
# 配置消费的kafka topic
agent.sources.kafkaSource.topic = my-topic-regex
# 配置消费者组的id
agent.sources.kafkaSource.groupId = flume
# 消费超时时间,参照如下写法可以配置其他所有kafka的consumer选项。注意格式从kafka.xxx开始是consumer的配置属性
agent.sources.kafkaSource.kafka.consumer.timeout.ms = 100
#------- kafkaChannel相关配置-------------------------
# channel类型
agent.channels.kafkaChannel.type = org.apache.flume.channel.kafka.KafkaChannel
# channel存储的事件容量,即队列长度
agent.channels.kafkaChannel.capacity=10000
# 事务容量
agent.channels.kafkaChannel.transactionCapacity=1000
# kafka broker list
agent.channels.kafkaChannel.brokerList=mysql1:9092,mysql4:9092
# 指定topic
agent.channels.kafkaChannel.topic=flume-regex-channel
# 指定zk地址
agent.channels.kafkaChannel.zookeeperConnect=10.45.9.139:2181
# 指定producer的选项,关键是指定acks的值,保证消息发送的可靠性,retries采用默认的3
# agent.channels.kafkaChannel.kafka.producer.acks=all


#---------hbaseSink 相关配置------------------
# 指定sink类型
# agent.sinks.hbaseSink.type = asynchbase
agent.sinks.hbaseSink.type = hbase
# 指定hbase中的表名
agent.sinks.hbaseSink.table = student
# 指明column family
agent.sinks.hbaseSink.columnFamily = info
# 使用的serializer
# agent.sinks.hbaseSink.serializer=org.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer


# 如果需要使用正则处理value可以使用以下的serializer
agent.sinks.hbaseSink.serializer= org.apache.flume.sink.hbase.RegexHbaseEventSerializer
# 指定某一列来当主键,而不是用随机生成的key
# agent.sinks.hbaseSink.serializer.rowKeyIndex = 0
# 指定正则表达式,这里用的正则是匹配逗号分隔的字符串
agent.sinks.hbaseSink.serializer.regex=^([^,]+),([^,]+),([^,]+),([^,]+)$
# 指定在列族中对应的的colName
agent.sinks.hbaseSink.serializer.colNames=c1,c2,c3,c4




# 指定hbase所用的zk集合
agent.sinks.hbaseSink.zookeeperQuorum = mysql3:2181,mysql4:2181,mysql5:2181

3.运行flume时,需要确定是否创建表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小努蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值