您的位置:首页 > 运维架构 > Apache

[bigdata-028]apache nifi 从mysql导出数据到hbase

2017-01-12 11:32 363 查看
0.在hbase节点,启动thrift服务

hbase-daemon.sh start thrift

1. 在本机启动nif

./bin/nifi.sh start

2. 在浏览器输入http://localhost:8080/nifi,看到nifi的界面

3. 拖一个processor ExecuteSQL到界面

    3.1 在processor上点击右键,选择configure,点击第三个tab,也就是properties

    3.2 在property列表,选择 database connection pooling service-->DBCPConnectionPool,然后再点击右侧的箭头,配置下一个选项,

    3.3 于是到了Process Group Configuration页面,点击右侧“+”符号,添加一个mysql数据库的连接。

        jdbc:mysql://192.168.20.175:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true

        com.mysql.jdbc.Driver

        /home/xxxx/mysql-connector-java-5.1.39.jar

        root

        123456

    3.4 然后,在回到ExecuteSQL的properties,设置SQL select query为 select * from user

    3.5 设置Max Wait Time为10 seconds

4.  从mysql里出来的是avro格式的数据,需要将它转化成json格式。拖一个ConvertAvroToJson processor到界面。然后,从ExecuteSQL拖一条线到ConvertAvroToJson,关系为success。

5.  添加一个SplitJson processor到界面,然后从ConvertAvroToJson拖一条线到SplitJson,关系为success。

    5.1 配置SplitJson,在properties页,将JsonPathExpression设置为*

6. 添加一个PutHbaseJson processor到界面,然后配置PutHbaseJson

    6.1 在properties页,配置HBase Client Service成为 HBase_1_1_2_ClientService

    6.2 完成6.1之后,点击右侧的小箭头,增加HbaseClientService,然后点击edit按键,在properites做如下设置:

        ZooKeeper Quorum :192.168.2.xxxx

        Zookeeper client port: 2181

        Zookeeper znode parent: /hbase

        Hbase client Reties: 1

    6.3 配置完成后,点击小闪电,让配置生效

    6.4 配置RowIdentifier。因为传入的是Json,所以使用FieldName为ID,填写ColumnFamlity和TableName,点击Apply。

        Table Name: my_user1 #这是hbase的一张表

        Row Identifier Field Name: id

        Row Identified Encoding Strategy: String

        Column Famlily: prop

7. 从SplitJosn连接到PutHbaseJson,关系为Split

8. 增加一个LogAttribute,将其他所有processor的failure以及splitJson的Original关系全部连接到它上面。

9. 将LogAttribute和PutHbaseJson的setting配置页面的Automatically terminate 勾选成success。

10. 在PutHbaseJson出错了。把zookeeper cp过来,看连接
zkCli.sh -server 192.168.0.xxx:2181

ls /

ls /hbase

get /hbase/hmaster

11. 最容易出现的问题,是各节点机的hostname和Hosts文件配置文件。

    12.1 集群四种节点:mysql节点,hbase节点,nifi节点,nifi client节点。

    12.2 如果出现问题,通常都是上述四种节点的/etc/hosts和/etc/hostname出现错误。

    12.3 错误类型:不能根据hostname找到对应的ip,在错误log里有错误的ip地址。所以操作者需要熟悉各hostname和对应ip关系,发现陌生的或者不合理的ip,要及时做修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: