精华内容
下载资源
问答
  • 如何将本地数据上传hdfs

    千次阅读 2020-01-20 09:59:01
    使用xshell将本地数据传到服务器并解压 1.上传: 方法一:连接Xftp上传 xftp操作界面 直接将要上传的本地文件拖动到对应的服务器位置即可。(要传输的服务器文件夹需要有读写权限) 方法二: 使用rz。在...

    一、将数据传输到服务器

    使用xshell将本地数据传到服务器并解压

    1.上传:

    方法一:连接Xftp上传
    在这里插入图片描述
    xftp操作界面
    在这里插入图片描述
    直接将要上传的本地文件拖动到对应的服务器位置即可。(要传输的服务器文件夹需要有读写权限)

    方法二:
    使用rz。在xshell操作界面输入rz会弹出一个选择上传文件的窗口,选择对应的文件即可。
    在这里插入图片描述

    2.解压gz压缩包

    进入文件所在位置,输入gunzip xxx.gz,要解压该文件夹下所有的文件可以 gunzip *.gz。

    二、文件上传到hdfs

    hdfs dfs -put /home/xxx.csv /input_local

    在这里插入图片描述

    展开全文
  • 大数据平台配置可执行的jar包,需求是jar包能够获取hive表数据,并将数据上传hdfs。 组件 jdk8 + hive + hdfs 源码 https://gitee.com/acelee723/acelee-hive-hdfs-main-jar 代码 1.hive操作类 import org...

    背景

    大数据平台配置可执行的jar包,需求是jar包能够获取hive表数据,并将数据上传到hdfs。

    组件

    jdk8 + hive + hdfs

    源码

    https://gitee.com/acelee723/acelee-hive-hdfs-main-jar

    代码 

    1.hive操作类

    import org.mortbay.util.ajax.JSON;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Hive操作类
     *
     * @author Ace Lee
     * @date 2019/8/27 14:18
     * @version 1.0
     **/
    public class HiveClientUtils {
    
        private static String driverName = "com.cloudera.hive.jdbc4.HS2Driver";
    
        //填写hive的IP,之前在配置文件中配置的IP
        private static String Url = "jdbc:hive2://10.10.10.10:10000/hbzfw";
    
        private static Connection conn;
    
        private static PreparedStatement ps;
    
        private static ResultSet rs;
    
        //创建连接
        public static Connection getConnnection() {
            try {
                Class.forName(driverName);
                //此处的用户名一定是有权限操作HDFS的用户,否则程序会提示"permission deny"异常
                conn = DriverManager.getConnection(Url, "", "");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                System.exit(1);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        public static PreparedStatement prepare(Connection conn, String sql) {
            PreparedStatement ps = null;
            try {
                ps = conn.prepareStatement(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return ps;
        }
    
        public static List<Map<String,Object>> getResult(String sql) {
            List<Map<String,Object>> rowDatas = new ArrayList<Map<String, Object>>();
            System.out.println(sql);
            conn = getConnnection();
    
            try {
                ps = prepare(conn, sql);
                rs = ps.executeQuery();
                ResultSetMetaData md = rs.getMetaData();
                int columCount = md.getColumnCount();
    
                while(rs.next()) {
                    Map<String,Object> rowData = new HashMap<String, Object>();
                    for(int i = 1; i <= columCount; i++) {
                        rowData.put(md.getColumnName(i), rs.getObject(i));
                    }
                    rowDatas.add(rowData);
                }
                System.out.println(JSON.toString(rowDatas));
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rowDatas;
        }
    
    }

    2.hdfs操作类

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.IOUtils;
    
    import java.io.*;
    import java.net.URI;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * Hdfs操作类
     *
     * @author Ace Lee
     * @date 2019/8/27 14:18
     * @version 1.0
     **/
    public class HdfsFileSystem {
    
        /**
         * HDFS集群路径
         */
        private static final String hdfsPath = "hdfs://10.10.10.10:8020";
    
        public static void copyFileToHDFSByName(Configuration conf,String localFileName, String remoteFileName) throws IOException {
            FileSystem fs = FileSystem.get(URI.create(hdfsPath), conf);
            fs.copyFromLocalFile(new Path(localFileName), new Path(remoteFileName));
            System.out.println("copy from local file:" + localFileName + " to HDFS file:" + remoteFileName + " done.");
            fs.close();
        }
    
        public static void copyFileToHDFSByFileObj(byte[] bytes, String prefix, String fileName) throws IOException {
            InputStream in = null;
            try {
                Configuration conf = new Configuration();
                FileSystem fileSystem = FileSystem.get(URI.create(hdfsPath), conf);
                FSDataOutputStream out = fileSystem.create(new Path(buildPath(hdfsPath, "/document", prefix, fileName)));
                in = new ByteArrayInputStream(bytes);
                IOUtils.copyBytes(in, out, 4096, false);
                out.hsync();
                out.close();
            } finally {
                IOUtils.closeStream(in);
            }
            return;
        }
    
        public static void copyFileToHDFSByFileObj(String filename,String hdfsUri) throws IOException {
            if (null == hdfsUri || hdfsUri.isEmpty()) {
                System.err.println("copyFileToHDFSByFile: hdfsUri are required");
                return;
            }
            String localPath = HdfsFileSystem.class.getResource("").getPath();
            String localFile = localPath+filename;
    
            InputStream in = new FileInputStream(localFile);
            try {
                Configuration conf = new Configuration();
                FileSystem fileSystem = FileSystem.get(URI.create(hdfsPath), conf);
                FSDataOutputStream out = fileSystem.create(new Path(hdfsPath+hdfsUri+filename));
                IOUtils.copyBytes(in, out, 4096, false);
                out.hsync();
                out.close();
            } finally {
                IOUtils.closeStream(in);
            }
            return;
        }
    
        public static void copyFileToHDFSByFileObj(InputStream in, String prefix, String fileName) throws IOException {
            try {
                Configuration conf = new Configuration();
                FileSystem fileSystem = FileSystem.get(URI.create(hdfsPath), conf);
                FSDataOutputStream out = fileSystem.create(new Path(buildPath(hdfsPath, "/document", prefix, fileName)));
                IOUtils.copyBytes(in, out, 4096, false);
                out.hsync();
                out.close();
            } finally {
                IOUtils.closeStream(in);
            }
            return;
        }
        public static void copyFileToHDFSByFileObj(File localPath) throws IOException {
            InputStream in = null;
            if (null == localPath) {
                System.out.println("copyFileToHDFSByFile: localpath are required");
                return;
            }
            try {
                Configuration conf = new Configuration();
                FileSystem fileSystem = FileSystem.get(URI.create(hdfsPath), conf);
                FSDataOutputStream out = fileSystem.create(new Path(hdfsPath));
    
                in = new BufferedInputStream(new FileInputStream(localPath));
                IOUtils.copyBytes(in, out, 4096, false);
                out.hsync();
                out.close();
                //in.close();
            } finally {
                IOUtils.closeStream(in);
            }
            return;
        }
    
        /*
         * Download hdfs file in URI to local file
         */
        public static void downloadFromHDFS(Configuration conf, String uri, String remoteFileName, String localFileName) throws IOException {
            Path path = new Path(remoteFileName);
            FileSystem fs = FileSystem.get(URI.create(uri), conf);
            fs.copyToLocalFile(path, new Path(localFileName));
            fs.close();
            System.out.println("downloading file from " + remoteFileName + " to " + localFileName + " succeed");
            return;
        }
    
    
        /*
         * Download hdfs file in URI to local file
         */
        public static void downloadFromHDFS(String uri, String HDFSFileName, OutputStream localFileOutPut) throws IOException {
            Configuration config = new Configuration();
            FileSystem fs = FileSystem.get(URI.create(uri), config);
            InputStream is = fs.open(new Path(uri + "/" + HDFSFileName));
            IOUtils.copyBytes(is, localFileOutPut, 4096, true);//close in and out stream via this API itself.
            System.out.println("downloading HDFS file " + HDFSFileName + " succeed");
            fs.close();
            return;
        }
    
        public static InputStream downloadFromHDFS(String uri, String HDFSFileName) throws IOException {
            Configuration config = new Configuration();
            FileSystem fs = FileSystem.get(URI.create(uri), config);
            InputStream is = fs.open(new Path(uri + HDFSFileName));
            if (is == null) {
                System.out.println("hdfs inputStream is null");
            }
            return is;
        }
    
        /*
         * check whether the HDFS file exists in given URI
         */
        public static boolean exists(String HDFSUri, String HDFSFileName) {
            Configuration conf = new Configuration();
            boolean fileExists = false;
            try {
                FileSystem fileSystem = FileSystem.get(URI.create(HDFSUri), conf);
                fileExists = fileSystem.exists(new Path(HDFSUri + "/" + HDFSFileName));
            } catch (IOException e) {
                System.out.println("hdfs:exist() exception occurs. exception:" + e.getMessage());
                return fileExists;
            }
    
            System.out.println("HDFS URI:" + HDFSUri + ", fileName:" + HDFSFileName + " exists ? " + fileExists);
            return fileExists;
        }
    
        /**
         * 查看目录下面的文件
         *
         * @param uri
         * @param folder
         * @throws IOException
         */
        public static void ls(String uri, String folder) throws IOException {
            Configuration conf = new Configuration();
            Path path = new Path(folder);
            FileSystem fs = FileSystem.get(URI.create(uri), conf);
            FileStatus[] list = fs.listStatus(path);
            System.out.println("ls: " + folder);
            System.out.println("==========================================================");
            for (FileStatus f : list) {
                System.out.printf("name: %s, folder: %s, size: %d\n", f.getPath(), f.isDirectory(), f.getLen());
            }
            System.out.println("==========================================================");
            fs.close();
        }
    
        /**
         * 删除文件或者文件夹
         * @param uri
         * @param filePath
         * @throws IOException
         */
        public static void delete(String uri,String filePath) throws IOException {
            Configuration conf = new Configuration();
            Path path = new Path(filePath);
            FileSystem fs = FileSystem.get(URI.create(uri), conf);
            fs.deleteOnExit(path);
            System.out.println("Delete: " + filePath);
            fs.close();
        }
    
    
        public static String getCurrentDatePath(){
            return new SimpleDateFormat("yyyy/MM/dd/").format(new Date());
        }
    
        public static String getCurrentDateTime(){
            return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
        }
    
        public static String buildPath(String... paths){
            StringBuffer buffer=new StringBuffer(paths.length>0?paths[0]:"");
            if(paths!=null&&paths.length>=2){
                for(int i=1;i<paths.length;i++){
                    if(paths[i]==null||paths[i].length()==0){
                        continue;
                    }
                    if(paths[i-1].endsWith("/")){
                        if(paths[i].startsWith("/")){
                            buffer.append(paths[i].substring(1));
                        }else{
                            buffer.append(paths[i]);
                        }
                    }else{
                        if(paths[i].startsWith("/")){
                            buffer.append(paths[i]);
                        }else{
                            buffer.append("/").append(paths[i]);
                        }
                    }
    
                }
            }
            return buffer.toString();
        }
    
    
        public static String writeFile(String data) throws Exception{
            String localPath = HdfsFileSystem.class.getResource("").getPath();
            String localFilename = getCurrentDateTime()+".txt";
            localPath+=localFilename;
            File file = new File(localPath);
    
            //if file doesnt exists, then create it
            if(!file.exists()){
                file.createNewFile();
            }
    
            FileWriter fileWritter = new FileWriter(file.getName());
            BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
            bufferWritter.write(data);
            bufferWritter.close();
            fileWritter.close();
            System.out.println(localPath+" [write] done");
    
            return localFilename;
        }
    
        public static void deleteFile(String filename) throws Exception{
            String localPath = HdfsFileSystem.class.getResource("").getPath();
            File file = new File(localPath+filename);
            if(file.isFile() && file.exists()){
                boolean delete = file.delete();
                System.out.println(file.getPath()+" [delete] "+delete);
            }
        }
    }
    

    3.主程序入口类

    •  这里需要传参,直接在执行jar命令后添加参数,如java -jar xx.jar 参数1 参数2 ...
    • 打包时在pom文件里指定mainClass的路径即可
    import org.apache.commons.collections.CollectionUtils;
    import java.util.List;
    import java.util.Map;
    
    public class QueryDatasApplication {
    
        public static void main(String[] args) {
            //**********这里获取jar执行命令中的参数**************
            //比如java -jar XXX.jar "sql"
            String sql = args[0];
    
            try {
                //查询hive
    //            String sql = "select name,id_card from hbzfw.t_user";
                List<Map<String, Object>> result = HiveClientUtils.getResult(sql);
                if (CollectionUtils.isEmpty(result)){
                    System.out.println("--------------query hive null");
                    return;
                }
    
                //结果输出到hdfs
                ///data/result/2019/08/27/
                String resUri = "/data/result/"+HdfsFileSystem.getCurrentDatePath();
    
                String content = JacksonUtil.writeValueAsString(result);
                ///生成本地文件
                String filename = HdfsFileSystem.writeFile(content);
                //上传hdfs
                HdfsFileSystem.copyFileToHDFSByFileObj(filename,resUri);
                System.out.println("--------------send data to hdfs success");
                //删除本地文件
                HdfsFileSystem.deleteFile(filename);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    
    
    }
    

     4.下面是依赖本地jar打包的Maven配置

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.aceleeyy</groupId>
        <artifactId>acelee-hive-hdfs-main-jar</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>2.7.2</version>
                <exclusions>
                    <exclusion>
                        <artifactId>slf4j-log4j12</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.3</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.9.3</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.9.3</version>
            </dependency>
            <dependency>
                <groupId>com.cloudera</groupId>
                <artifactId>HiveJDBC4</artifactId>
                <version>1.4</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/src/lib/HiveJDBC4.jar</systemPath>
            </dependency>
        </dependencies>
    
    
        <build>
            <plugins>
                <!-- maven jar in main class and dependencies start -->
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>QueryDmDatasApplication</mainClass>
                            </manifest>
                        </archive>
                        <!--<descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>-->
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id> <!-- this is used for inheritance merges -->
                            <phase>package</phase> <!--  bind to the packaging phase  -->
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <!-- 增加配置 -->
                            <configuration>
                                <!-- assembly.xml文件路径 -->
                                <descriptors>
                                    <descriptor>src/assembly/assembly.xml</descriptor>
                                </descriptors>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <!--  maven jar in main class and dependencies end -->
            </plugins>
        </build>
    
    
    </project>

    assembly.xml

    <assembly>
        <id>jar-with-dependencies</id>
        <formats>
            <format>jar</format>
        </formats>
        <includeBaseDirectory>false</includeBaseDirectory>
        <dependencySets>
            <!-- 默认的配置 -->
            <dependencySet>
                <outputDirectory>/</outputDirectory>
                <useProjectArtifact>true</useProjectArtifact>
                <unpack>true</unpack>
                <scope>runtime</scope>
            </dependencySet>
            <!-- 增加scope类型为system的配置 -->
            <dependencySet>
                <outputDirectory>/</outputDirectory>
                <useProjectArtifact>true</useProjectArtifact>
                <unpack>true</unpack>
                <scope>system</scope>
            </dependencySet>
        </dependencySets>
    </assembly>
    

     

    展开全文
  • a1.sinks.k1.hdfs.path = hdfs://ip:9000/flume/%y-%m-%d/%H%M/ ##表示最后的文件的前缀 a1.sinks.k1.hdfs.filePrefix = events- ## 表示到了需要触发的时间时,是否要更新文件夹,true:表示要 a1.sinks.k1.hdfs....

    下载apache flume :apache-flume-1.7.0-bin.tar.gz

    配置环境变量:

    1、vi flume-env.sh

    export JAVA_HOME=/usr/java/default
    export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.10.0

    2、flume-conf.properties

    # Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    
    # Describe/configure the source
    ## exec表示flume回去调用给的命令,然后从给的命令的结果中去拿数据
    a1.sources.r1.type = exec
    ## 使用tail这个命令来读数据
    a1.sources.r1.command = tail -F /opt/fileName/*.log
    a1.sources.r1.channels = c1
    
    # Describe the sink
    ## 表示下沉到hdfs,类型决定了下面的参数
    a1.sinks.k1.type = hdfs
    ## sinks.k1只能连接一个channel,source可以配置多个
    a1.sinks.k1.channel = c1
    ## 下面的配置告诉用hdfs去写文件的时候写到什么位置,下面的表示不是写死的,而是可以动态的变化的。表示输出的目录名称是可变的
    a1.sinks.k1.hdfs.path = hdfs://ip:9000/flume/%y-%m-%d/%H%M/
    ##表示最后的文件的前缀
    a1.sinks.k1.hdfs.filePrefix = events-
    ## 表示到了需要触发的时间时,是否要更新文件夹,true:表示要
    a1.sinks.k1.hdfs.round = true
    ## 表示每隔1分钟改变一次
    a1.sinks.k1.hdfs.roundValue = 1
    ## 切换文件的时候的时间单位是分钟
    a1.sinks.k1.hdfs.roundUnit = minute
    ## 表示只要过了3秒钟,就切换生成一个新的文件
    a1.sinks.k1.hdfs.rollInterval = 3
    ## 如果记录的文件大于20字节时切换一次
    a1.sinks.k1.hdfs.rollSize = 20
    ## 当写了5个事件时触发
    a1.sinks.k1.hdfs.rollCount = 5
    ## 收到了多少条消息往dfs中追加内容
    a1.sinks.k1.hdfs.batchSize = 10
    ## 使用本地时间戳
    a1.sinks.k1.hdfs.useLocalTimeStamp = true
    #生成的文件类型,默认是Sequencefile,可用DataStream:为普通文本
    a1.sinks.k1.hdfs.fileType = DataStream
    
    # Use a channel which buffers events in memory
    ##使用内存的方式
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    
    # Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1
    
    1.3.编写完成之后,启动flume,执行的命令是:
    
    
    [root@flume-1.7.0-bin]#bin/flume-ng agent -c conf -f ./flume-conf.properties -n a1
    

     读取新增文件配置

    #新增文件配置
    # Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    
    # Describe/configure the source
    #spoolldir读取文件
    a1.sources.r1.type = spooldir
    a1.sources.r1.channels = c1
    #读取此目录下新增文件
    a1.sources.r1.spoolDir = /opt/datasource
    a1.sources.r1.fileHeader = true
    
    
    # Describe the sink
    ## 表示下沉到hdfs,类型决定了下面的参数
    a1.sinks.k1.type = hdfs
    ## sinks.k1只能连接一个channel,source可以配置多个
    a1.sinks.k1.channel = c1
    ## 下面的配置告诉用hdfs去写文件的时候写到什么位置,下面的表示不是写死的,而是可以动态的变化的。表示输出的目录名称是可变的
    a1.sinks.k1.hdfs.path = hdfs://ip:9000/flume/%y-%m-%d/%H%M/
    ##表示最后的文件的前缀
    a1.sinks.k1.hdfs.filePrefix = events-
    ## 表示到了需要触发的时间时,是否要更新文件夹,true:表示要
    a1.sinks.k1.hdfs.round = true
    ## 表示每隔1分钟改变一次
    a1.sinks.k1.hdfs.roundValue = 1
    ## 切换文件的时候的时间单位是分钟
    a1.sinks.k1.hdfs.roundUnit = minute
    ## 表示只要过了3秒钟,就切换生成一个新的文件
    a1.sinks.k1.hdfs.rollInterval = 3
    ## 如果记录的文件大于20字节时切换一次
    a1.sinks.k1.hdfs.rollSize = 20
    ## 当写了5个事件时触发
    a1.sinks.k1.hdfs.rollCount = 5
    ## 收到了多少条消息往dfs中追加内容
    a1.sinks.k1.hdfs.batchSize = 10
    ## 使用本地时间戳
    a1.sinks.k1.hdfs.useLocalTimeStamp = true
    #生成的文件类型,默认是Sequencefile,可用DataStream:为普通文本
    a1.sinks.k1.hdfs.fileType = DataStream
    
    # Use a channel which buffers events in memory
    ##使用内存的方式
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    
    # Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1

     

    转载于:https://www.cnblogs.com/ptbx/p/7761612.html

    展开全文
  • 快的不是一点点好吗? 我还用什么poi 什么java api,出错到怀疑人生好吗?...(本地的mysql连接到了linux下的mysql) 在光标所在的“表”出右击,点击导入向导,一步步照做就可以。 第二,通过...

    快的不是一点点好吗?

    我还用什么poi 什么java api,出错到怀疑人生好吗?

    唉,我这愚蠢的人类。

    条件有二:

    首先,在已经搭建好的hadoop环境下安装mysql。

    其次,安装配置sqoop。

    过程有二:

    第一,将excel文件上传到mysql。(本地的mysql连接到了linux下的mysql)

    在光标所在的“表”出右击,点击导入向导,一步步照做就可以。

    第二,通过sqoop上传到hdfs。

    bin/sqoop import --connect jdbc:mysql://master:3306/testExcel --username root --password root --table excel_28 --target-dir /local/ahui/testExcel --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"

    到此成功。

     

    展开全文
  • 本地上传文件到HDFS利用Redis去重 前言: HDFS存储数据块的同时还会存储数据的MD5加密校验和用来判断该数据是否完整 下面代码就是模仿这个特性做了一个小功能进行上传时内容去重 技术选型 springboot Redis Hadoop ...
  • 数据上传HDFS

    2020-10-13 21:42:53
    假设数据集demo.txt已经保存到linux本地文件系统. HDFS正常启动后,将数据集上传到HDFS文件系统中: 1、查看HDFS文件系统根目录下的...4、把本地数据集上传到HDFS中 ./hdfs dfs -put demo.txt /input_spark 数据上传完后
  • ubuntu下上传本地文件到hdfs

    千次阅读 2019-12-08 15:05:03
    首先,启动hadoop 创建一个文件夹 打开haddopweb界面查看(主机名:50070) 右下角可以看到之前创建好的work文件夹(ubuntu中...将之前创建的wujiang.txt上传hdfs中 web中查看,work中出现了则上传文件成功 ...
  • 所以有了将本地数据上传HDFS的现实业务需求。 1. 创建文件(使用已有文件夹跳过此步) 切换到hadoop 安装目录(如果在bash中设置过了,这步不是必须的),启动hadoop(启用HDFS,yarn不是必要的) 然后...
  • 再通过Java代码从Kafka的Topic中获取数据临时保存到本地文件中,再将本地文件上传HDFS上 1.虚拟机启动 zookeeper、Kafka。 2.在启动一个生产者、一个消费者。 注:脚本文件:/root/log [root@hdp-1 log]# ./...
  • A:HDFS的写数据流程: 多画图有助于自己深刻的理解 1)客户端向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。 2)namenode返回是否可以上传。 3)客户端请求第一个 block上传...
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • hdfs数据上传案例

    2020-04-12 22:22:19
    //定时将本地日志文件上传hdfs服务器上 package cn.edu360.hdfs.datacollect; import java.io.File; import java.io.FilenameFilter; import java.net.URI; import java.text.SimpleDateFormat; import java....
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • HDFS数据读写流程 HDFS数据流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 NameNode返回是否可以上传。 客户端请求第一个 Block上传到哪...
  • 1数据导入-------------- CREATE EXTERNAL TABLE wizad_mdm_dev_lmj_edition_20141120 ( cookie_id STRING, guid STRING  ) ROW FORMAT DELIMITED  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\n' stored a
  • 自己在使用spark MLlib的时候,在单机下反而比分布式下更快,所以猜测是从本地数据比较慢,所以想把数据本地弄到hdfs上传数据hdfs 查看hdfs 根目录/下文件,发现有两种 hadoop fs -ls / hdfs dfs -ls / ...
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • 目前需求是这样的:windows客户端(浏览器)想要上传数据到hdfs上,springboot后台程序部署在hdfs某个节点的linux服务器上,运行linux部署的程序,实现windows上的数据上传(或下载)至hdfs,请问如何实现这个功能?...
  • 实时读取本地文件到HDFS案例 1)案例需求:实时监控Hive日志,并上传HDFS中 2)需求分析: 3)实现步骤: Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包 将commons-configuration-1.6.jar、 hadoop-...
  • 最近在学习kafka上传hdfs的过程中,遇到了一系列的问题,通过上网查资料,看了一下别人的方法等,最后终于解决了,废话不多说,先把我遇到的问题以及解决的措施在此和大家分享一下,希望能够对大家有所帮助!...
  • hdfs 本地 其他hive表 而hive表本身有两种: 内部表和外部表。 而hbase的数据在hive中,可以建立对应的外部表(参看hive和hbase整合) 内部表和外部表 区别:删除时,内部表删除hadoop上的数据;而外部表...
  • hadoop idea 本地上传文件到hdfs

    千次阅读 2019-04-02 10:09:16
    最近在学习hadoop编程,其中需要将数据上传到hafs仓库,但是要先复制到centos下再上传上去,比较麻烦,所以直接写了一个上传的程序,这个代码不能实现循环上传多个文件,有相应的函数,你可以试一下,也不是很难。...
  • (1)本地产生数据到Kafka java -classpath log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar .../opt/module/test.log (2)将Kafka里面的数据上传hdfs上 nohup /opt/module/flume/bin/flum...
  • 1、Collection.java:负责收集原始数据(消费者保存在本地数据)到指定文件夹,并进行上传hdfs,上传成功的文件移动到待清理的文件夹 package csdn; import java.io.File; import java.io.FilenameFilter; ...
  • 实时监控日志文件,并上传HDFS中。 需求分析 创建负责条件的flume配置文件 启动flume,应用配置文件,开启监控 模拟日志产生,日志文件/opt/module/datas/flume_tmp.log 查看HDFS上的数据 实现步骤 拷贝相关...
  • #将本地文件传到hive建表时的hdfs路径下 hadoop fs -put /opt/datas/test.txt(要上传的文件) /user/hive/warehouse/stg/test/bus_date=20191101(上传的目标文件夹) tips: 若是需要将文件夹数据全部导入
  • 在将数据从hive导入mysql时报错:java.io.FileNotFoundException:File does not exit:hdfs://localhost:9000/usr/local/sqoop...现在想如何将本地的这个jar上传hdfs上?在终端该怎么命令?  </p>
  • 使用Kettle从本地上传文件到远程HDFS

    千次阅读 2017-10-09 14:54:43
    在前面的文章中,我们描述了使用Kettle工具可以在实现关系型数据库之间的数据ETL,如Oracle->Trafodion,MySQL->Trafodion等,本文通过范例介绍如何使用Kettle将本地的文件上传HDFS目录。关于如何在Kettle中配置...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 348
精华内容 139
关键字:

本地数据上传hdfs