zoukankan      html  css  js  c++  java
  • 采集数据到HDFS

    采集数据到HDFS

    安装flume
    在虚拟机hdp-1中, 打开SFTP-hdp-1窗口,将fllume压缩包导入到虚拟机hdp-1的/root/目录中.

    解压flume压缩包到/root/apps/下,命令: 

    tar -xvzf apache-flume-1.6.0-bin.tar.gz -C apps/

    并将apache-flume-1.6.0-bin文件夹重命名为flume-1.6.0,

    命令为 mv apache-flume-1.6.0-bin flume-1.6.0

    2.配置flume

    进入/root/ apps/flume-1.6.0/下新建文件dir-hdfs.conf和tail-hdfs.conf

    dir-hdfs.conf文件内容

    ag1.sources = source1
    ag1.sinks = sink1
    ag1.channels = channel1
    ag1.sources.source1.type = spooldir
    ag1.sources.source1.spoolDir = /root/log
    ag1.sources.source1.fileSuffix=.FINISHED
    ag1.sources.source1.deserializer.maxLineLength=5129
    ag1.sinks.sink1.type = hdfs
    ag1.sinks.sink1.hdfs.path =hdfs://hdp-1:9000/access_log/%y-%m-%d/%H-%M
    ag1.sinks.sink1.hdfs.filePrefix = app_log
    ag1.sinks.sink1.hdfs.fileSuffix = .log
    ag1.sinks.sink1.hdfs.batchSize= 100
    ag1.sinks.sink1.hdfs.fileType = DataStream
    ag1.sinks.sink1.hdfs.writeFormat = Text
    ag1.sinks.sink1.hdfs.rollSize = 512000
    ag1.sinks.sink1.hdfs.rollCount = 1000000
    ag1.sinks.sink1.hdfs.rollInterval = 60
    ag1.sinks.sink1.hdfs.round = true
    ag1.sinks.sink1.hdfs.roundValue = 10
    ag1.sinks.sink1.hdfs.roundUnit = minute
    ag1.sinks.sink1.hdfs.useLocalTimeStamp = true
    ag1.channels.channel1.type = memory
    ag1.channels.channel1.capacity = 500000
    ag1.channels.channel1.transactionCapacity = 600
    ag1.sources.source1.channels = channel1
    ag1.sinks.sink1.channel = channel1
    tail-hdfs.conf文件内容
    ag1.sources = source1
    ag1.sinks = sink1
    ag1.channels = channel1
    ag1.sources.source1.type = exec
    ag1.sources.source1.command = tail -F /root/log/access.log
    ag1.sinks.sink1.type = hdfs
    ag1.sinks.sink1.hdfs.path =hdfs://hdp-1:9000/access_log/%y-%m-%d/%H-%M
    ag1.sinks.sink1.hdfs.filePrefix = app_log
    ag1.sinks.sink1.hdfs.fileSuffix = .log
    ag1.sinks.sink1.hdfs.batchSize= 100
    ag1.sinks.sink1.hdfs.fileType = DataStream
    ag1.sinks.sink1.hdfs.writeFormat = Text
    ag1.sinks.sink1.hdfs.rollSize = 512000
    ag1.sinks.sink1.hdfs.rollCount = 1000000
    ag1.sinks.sink1.hdfs.rollInterval = 60
    ag1.sinks.sink1.hdfs.round = true
    ag1.sinks.sink1.hdfs.roundValue = 10
    ag1.sinks.sink1.hdfs.roundUnit = minute
    ag1.sinks.sink1.hdfs.useLocalTimeStamp = true
    ag1.channels.channel1.type = memory
    ag1.channels.channel1.capacity = 500000
    ag1.channels.channel1.transactionCapacity = 600
    ag1.sources.source1.channels = channel1
    ag1.sinks.sink1.channel = channel1
    3.Nginx安装配置

    安装make

    yum -y install gcc automake autoconf libtool make

    安装g++:

    yum install gcc gcc-c++

    安装openssl

    yum -y install openssl openssl-devel

    安装PCRE库

    将压缩文件pcre-8.39.tar.gz 置入hdp-1的/root/目录中,解压安装.依次执行以下命令

    tar -zxvf pcre-8.39.tar.gz -C apps/

    cd apps/pcre-8.39/

    ./configure

    make

    make install

    安装zlib库

    将压缩文件zlib-1.2.11.tar.gz 置入hdp-1的/root/目录中,解压安装.依次执行以下命令

    tar -zxvf zlib-1.2.11.tar.gz -C apps/

    cd apps/zlib-1.2.11/

    ./configure

    make

    make install

    安装nginx

    将压缩文件nginx-1.1.10.tar.gz置入hdp-1的/root/目录中,解压安装.依次执行以下命令

    tar -zxvf nginx-1.1.10.tar.gz -C apps/

    cd apps/nginx-1.1.10

    ./configure

    make

    make install

    4.启动nginx

    cd /usr/local/nginx/sbin

    ./nginx

    在浏览器中输入hdp-1 查看是否启动成功

    ./nginx 启动命令

    ./nginx -s stop此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

    ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。

    ./nginx -s reload 重新加载命令

    ps aux|grep nginx 查询nginx进程

    5.测试项目fram

    利用idea将项目fram打包成jar文件,置入hdp-3的root目录下, 

    在虚拟机hdp-3启动该项目

    在浏览器的地址栏中输入hdp-3:8180 进行验证

    6. 通过配置nginx 利用hdp-1测试frame项目

    cd /usr/local/nginx/conf/

    修改nginx.conf文件

    vi nginx.conf

    解除注释

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '

                          '$status $body_bytes_sent "$http_referer" '

                              '"$http_user_agent" "$http_x_forwarded_for"';

    添加配置

    upstream frame-tomcat {

    server hdp-3:8180;

    }

    server {

    listen       80;

           server_name  hdp-1;

    #charset koi8-r;

    access_log  logs/log.frame.access.log  main;

    location / {

    # root   html;

    # index  index.html index.htm;

    proxy_pass http://frame-tomcat;

    }

    error_page   500 502 503 504  /50x.html;

          location = /50x.html

          root   html;

    }

       }

    重新加载nginx

    在浏览器中输入hdp-1 进行验证

    7. 使用flume将nginx的accesslog收集到hdfs

    启动hdfs

       start-dfs.sh

    启动yarn

    start-yarn.sh

    在hdp-3启动frame项目

    在hdp-1启动nginx

    跟踪日志文件log.frame.access.log

    打开浏览器点击登录按钮

    文件更新

    克隆两个hdp-1

    在第一个克隆hdp-1 查看hdfs上的文件

    在第二个克隆hdp-1中启动flume

    ./flume-ng agent -C ../conf/ -f ../tail-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console

    在第二个hdp-2查看hdfs的文件

    浏览器上的

    继续对frame进行操作如点击学校按钮,查看学校页面

    在第一个克隆hdp-1中重新查看hdfs上的文件

  • 相关阅读:
    WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
    事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]
    谈谈关于MVP模式中VP交互问题
    如何通过VPC在本机搭建局域网
    谈谈分布式事务之三: System.Transactions事务详解[下篇]
    WCF版的PetShop之二:模块中的层次划分[提供源代码下载]
    实践重于理论——创建一个监控程序探测WCF的并发处理机制
    WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]
    WCF技术剖析之三十一: WCF事务编程[中篇]
    微软将结束对Windows 2000、XP和Vista部份版本的技术支持
  • 原文地址:https://www.cnblogs.com/caiwuzi/p/13181362.html
Copyright © 2011-2022 走看看