简单的http请求数据保存到hdfs(代码片段)

30go 30go     2023-01-06     793

关键词:

使用okhttp工具集来开发:(如果文件已经存在会报错)

package com.etl;

import java.io.IOException;

import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class LinkHttp 
    
    private  static Configuration conf = null;
    private static String fsName = "fs.defaultFS";
    private static String fsURI = null;

    public static void main(String[] args) throws Exception 
        
        String name = args[0];
        String uri =  args[1];
        String url = args[2];
        String targetFile = args[3];  //文件全路径
        
        //初始化
        init(name, uri);
        OkHttpClient client = new OkHttpClient();
        final Request request = new Request.Builder().url(url).get().build();
        Call call = client.newCall(request);
        call.enqueue(new Callback() 

            @Override
            public void onFailure(Call call, IOException e) 
                System.out.println("Fail");
            

            @Override
            public void onResponse(Call call, Response response) throws IOException 
                FileSystem fs = null;
                try 
                        Path dstPath = new Path(targetFile);
                        fs = FileSystem.get(conf);
                        FSDataOutputStream outputStream = fs.create(dstPath);    
                        if(response.isSuccessful()) 
            //                    System.out.println(response.body().string());
                                outputStream.write(response.body().bytes());        
                                outputStream.close();        
                                System.out.println("create file " + targetFile + " success!");        
                                //fs.close();
                        
                catch (Exception e)
                    e.printStackTrace();
                finally 
                    fs.close();
                
                System.out.println("run writeHdfs end");

                //关闭
                if(response.body()!=null) 
                    response.body().close();
                
            
        );
        
    

    private static void init(String name, String uri) 
            if(StringUtils.isNotBlank(fsName))
                fsName = name;
            
             fsURI  = uri;
             conf = new Configuration();
             conf.set(fsName, fsURI);
    

配置启动脚本如下:

#!/bin/sh
name=fs.defaultFS        #固定不变
uri=dwpro-name1:8020     #hdfs文件系统地址
url=http://www.cnblogs.com/30go/   #待保存的http地址
targetPath=/tmp/test/king.txt   # 目标的文件名
java -Djava.ext.dirs=lib com.etl.LinkHttp $name $uri $url $targetPath  >> test.log 2>&1 &

 

jmeter发送http请求,并把获取到的请求的订单信息保存到文件中(转)(代码片段)

有一个任务,需要频繁发送订单请求,并分析订单请求中有没有存在重复订单号,思路是用jmeter发送http请求,使用正则表达式获取到订单号,并把订单号和线程号作为参数提供给java请求,在java请求中把订单号写到包括有线程号... 查看详情

spark读取hive数据的两种方式与保存数据到hdfs(代码片段)

Spark读取Hive数据的两种方式与保存数据到HDFSSpark读取Hive数据的方式主要有两种1、通过访问hivemetastore的方式,这种方式通过访问hive的metastore元数据的方式获取表结构信息和该表数据所存放的HDFS路径,这种方式的特点是效... 查看详情

servlet的请求处理(代码片段)

...ervlet的请求处理通过前面的学习我们能够创建并运行一个简单的Servlet程序,完成浏览器和服务器的简单交互,但是我们编写的Servlet代码是没有对浏览器的请求进行处理的。现在我们开始学习如何使用Servlet进行浏览器请求的处理... 查看详情

flutter进行http请求并保存登陆状态(dio)(代码片段)

.../dio.dart';使用dio的github:https://github.com/flutterchina/dio官方简单的案例import'package:dio/dio.dart';voidgetHttp()asynctryvarresponse=awaitDio().get('http://www.google.com');print(response);catch(e)print(e);所有http操作都需要在async修饰的函数内执... 查看详情

《爬虫学习》(urllib库使用)(代码片段)

...码爬下来了。一个基本的url请求对应的python代码真的非常简单。以下对urlopen函数的进行详细讲解:url:请求的url。data:请求的data,如果设置了这个值,那么将变成post请求。返回值:返回值是一个http.client.HTTPResponse对象,这个... 查看详情

springboo后台get请求接口数据,并保存到数据库(代码片段)

通过GET方式请求数据,并持久化到数据库,逻辑如下1、通过GET请求数据,并转化成字符串String格式2、通过gson,将String转化为Json,再转化成对象3、通过mybatisPlus的mapper中的insert方法持久化到数据库1、接口数据... 查看详情

javaee基础(03):http请求详解,握手挥手流程简介(代码片段)

...后,处理完请求后向客户端发送响应信息。2、协议特点简单快速请求服务器时,只需传送请求方法和路径。请求类型常用GET、POST。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。灵活:HTTP允许传输任意类... 查看详情

http协议入门-历史演化(代码片段)

...HTTP协议。一、HTTP0.9发布于1991年,是首个HTTP版本,功能简单。只支持GET请求方法,服务器响应返回的数据格式为,HTML格式的字符串;GET/index.html不支持请求头,所以内容格式只能是纯文本;无状态性,请求响应后关闭,若有错... 查看详情

servlet请求和响应和cookie(代码片段)

...let请求操作 通过前面的学习我们能够创建并运行一个简单的Servlet程序,完成浏览器和服务器的简单交互,但是我们编写的Servlet代码是没有对浏览器的请求进行处理的。现在我们开始学习如何使用Servlet进行浏览器请求的处理... 查看详情

golang简单的http请求(代码片段)

查看详情

fiddler简单使用(代码片段)

1、Fiddler简介1)截获客户端与服务器之间HTTP、HTTPS请求2)修改向服务器发送、服务器返回的请求3)测试网站的性能4)解密HTTPS请求5)fiddler组件2、工作原理客户端<--------------------------->服务端(webserver)代理服务器Fiddler3、... 查看详情

通过http实现调接口,实现将远程的数据库数据插入到本地的数据当中的操作。(代码片段)

...息通过http的形式获取到插入到本地的数据库当中。(1)简单的方法是通过ajax传递参数,然后在后台请求数据。(2)通过http请求获取到数据,然后插入到插入到本地的数据库当中。实现思路(第一种也可以但是如果使用第一种... 查看详情

flutter进行http请求并保存登陆状态(dio)(代码片段)

...'mShendi记录一下文章目录引入库使用指定超时时间设置请求头保留登录凭证(Session)响应引入库使用到了dio于是要在pubspec.yaml中引入dependencies: #我这里使用的版本是4.0.1,可根据自己需求选择 dio:^4.0.1在需要使用的地方导入import'... 查看详情

hdfs体系架构(代码片段)

...ode主要职责是管理hdfs的所有节点。1、响应客户端对hdfs的请求,如增删改查。2、管理和维护hdfs的元数据信息以及日志(非log日志)NameNode会在core-site.xml中指定的hadoop.tmp.dir的目录中创建目录:dfs/name/。下面我们看看这个目录的... 查看详情

http协议(代码片段)

...根据接收到的请求后,向客户端发送响应信息。主要特点简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得... 查看详情

javaudacity_简单的http请求(代码片段)

查看详情

http-从域名到页面(代码片段)

目录1.网络基础TCP/IPHTTPDNSURI,URL,andURNURI的格式2.HTTP简单概括通过实例看HTTPHTTP报文组成3.使用Firefox修改请求首部4.请求方法GETPOST其他HTTP请求方法(几乎不用)5.请求报文首部6.响应状态码状态码的类别常用HTTP状态码简要介绍7.响应报... 查看详情

http协议cookie结构分析(代码片段)

...下文请求进行关联呢?机智的人类通过优化,找到了一种简单的方式记录http协议的请求信息优化后的HTTP请求:浏览器发送request请求到服务器,服务器除了返回请求的response之外,还给请求分配一个唯一标识ID,协同response一并返... 查看详情