大数据开发:(三)flume上传HDFS

  1. 开启hadoop:start-dfs.sh
  2. 通过浏览器访问node节点,http://IP:50070

    检查

    • (如果无法访问,将防火墙关闭)
    • 如果jps查看缺少了某个节点,首先查看xml文件是否正确,如果正确,删除hadoop/tmp文件夹,然后再次格式化,(格式化会重新创建hadoop/tmp),再次启动
  3. 操作分布式文件存储系统HDFS
    • 查看hdfs中的文件内容 hadoop fs -ls /
    • 查看hdfs中的详细内容hadoop fs -ls /
    • 在HDFS中创建文件夹hadoop fs -mkdir /flume
    • Flume上传数据到HDFS中
      • 解压flume
      • 将flume文件下得conf中flume-env.ps1.template复制一份,改为flume-env.ps1
      • 修改conf下得log4j.properties文件,在文件末尾修改,改后结果为:flume.root.logger=INFO,console
      • 找到hadoop安装包,从安装包中找到相关jar包,放入到flume的lib下
      • 下载hadoop-common-2.2.0bin-master

        ? HADOOP_HOME :E:\大数据学习\hadoop-common-2.2.0-bin-masterPath 配置路径

        ? Path:%HADOOP_HOME%\bin %HADOOP_HOME%\sbin

      • 给hdfs/flume权限(可以操作权限):hadoop fs -chmod 777 /flume
  4. Hadoop运行机制

查看数据片内容:hadoop fs -cat /flume/events-.1582198102809

  1. MapReduce流程图

  1. 编写java文件,设置数据清洗规则
 public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {

     Configuration conf = new Configuration();
     // 定义一个文件夹路径  用于存储计算分析后的可用数据
     Path outputPath = new Path("hdfs://192.168.159.1:8020/flume/output");
     //判断新路径是否已经存在
     FileSystem fileSystem =FileSystem.get(conf);
     if(fileSystem.exists(outputPath)) { //如果存在 先删除再创建
         fileSystem.delete(outputPath,true);
     }

     Job job = Job.getInstance(conf,"Demo");
     job.setJarByClass(Demo.class);

     // 源目录   从hdfs读下来 放到 map中  在map中清洗数据
     FileInputFormat.setInputPaths(job, new org.apache.hadoop.fs.Path("hdfs://192.168.159.1:8020/flume"));
     //!!!!从虚拟机里读取文件,清洗后放入hdfs中  file:
     //FileInputFormat.setInputPaths(job, new Path("file:/action-data/contest/online_retailers"));

     job.setMapperClass(MapOne.class);//第一个门卫
     job.setMapOutputKeyClass(Text.class);//想要通过的人
     job.setMapOutputValueClass(LongWritable.class);//通行证上面的戳
     // 把map的数据导入reduce中
     job.setReducerClass(ReduceOne.class);//第二个门卫
     job.setMapOutputKeyClass(Text.class);
     job.setMapOutputValueClass(LongWritable.class);
     //把reduce中 通过清洗的数据 导回指定目录
     FileOutputFormat.setOutputPath(job, new org.apache.hadoop.fs.Path("hdfs://192.168.159.1:8020/flume/output"));
     //sqoop配置mysql
     boolean flag = job.waitForCompletion(true);

     System.exit(flag?0:1);
 }

Map

public class MapOne extends Mapper<LongWritable,Text,Text,LongWritable>{

    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text,   LongWritable>.Context context)
            throws IOException, InterruptedException {
        String line = value.toString();
        String[] infos = line.split("#");
        System.out.println(infos[1].toString()+"************---**************");
        if(infos!=null &&infos.length>0) {
            String info=infos[1];
            String[] strs = info.split(":");
            System.out.println(strs.toString()+"***********分分***************");
            if(strs!=null &&strs.length>0) {
                double score=Double.parseDouble(strs[1]);
                if(score>=8) {//说明 这条数据的电影评分 不小于8分
                    //然后使用mapper这个父类的write方法 将本条数据通过,并发往下一环节
                    context.write(new Text(line), new LongWritable(0));
                }
            }
        }
    }
}

reduce

public class ReduceOne extends Reducer<Text, LongWritable, Text, LongWritable> {
    @Override
    protected void reduce(Text key, Iterable<LongWritable> values,
            Reducer<Text, LongWritable, Text, LongWritable>.Context context) throws     IOException, InterruptedException {
        context.write(key, new LongWritable(0));
    }
}

所需要的jar包


  1. 将java项目导出为jar包
  2. 导入到linux有权限操作的目录下
  3. 运行命令 hadoop jar hadooptest.jar demo.Demo
  4. 查看:hadoop fs -ls -R /
  5. 查看具体数据 hadoop fs -cat /flume/output/part-r-00000

原文地址:https://www.cnblogs.com/dreamzone/p/12344546.html

时间: 2024-10-16 04:19:20

大数据开发:(三)flume上传HDFS的相关文章

【大数据系列】hadoop上传文件报错_COPYING_ could only be replicated to 0 nodes

使用hadoop上传文件 hdfs dfs -put  XXX 17/12/08 17:00:39 WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/sanglp/hadoop-2.7.4.tar.gz._COPYING_ could only be replicated to 0 nodes instead of m

Spark2.0从入门到精通:Scala编程、大数据开发、上百个实战案例、内核源码深度剖析视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

为什么要学习React,学习React在大数据开发上有什么好处

为什么要学习React,学习React在大数据开发上有什么好处 分享之前我还是要推荐下我自己创建的大数据学习资料分享群716581014,这是全国最大的大数据学习交流的地方,2000人聚集,不管你是小白还是大牛,小编我都挺欢迎,今天的源码已经上传到群文件,不定期分享干货,包括我自己整理的一份最新的适合2018年学习和零基础入门教程,欢迎初学和进阶中的小伙伴. 如何学习React 如果你是一个 React (或者前端) 新手, 出于以下的原因, 你可能会对这个生态圈感到困惑: React 的目标群

数道云大数据平台解决方案,Hadoop + HDFS+Hive+Hbase大数据开发整体架构设计

波若大数据平台(BR-odp)Hadoop + HDFS+Hive+Hbase大数据开发工具剖析: HDFS:分布式.高度容错性文件系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用,大规模的波若大数据平台(BR-odp)用户部署上1000台的HDFS集群.数据规模高达50PB以上 HDFS和MR共同组成Hadoop分布式系统体系结构的核心.HDFS在集群上实现了分布式文件系统,MR在集群上实现了分布式计算和任务处理.HDFS在MR任务处理过程中提供了文件操作和存储等支持,MR在HDF

iOS开发——网络Swift篇&amp;NSURLSession加载数据、下载、上传文件

NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithRequest方法创建. 1 func sessionLoadData(){ 2 //创建NSURL对象 3 let urlString:String="http://hangge.com" 4 var url:NSURL! = NSURL(

大数据开发初学者该怎么做?

经常有初学者在问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣.. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问

做了五年大数据开发工程师总结的的大数据学习路线

先扯一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算当中. 现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的: 文件存储:Hadoop HDFS.Tachyon.KFS 离线计算:Hadoop MapReduce.Spark 流式.实时计算:Storm

秦皇岛达内:零基础小白如何成为大数据开发大牛

目前最火的大数据,很多人想往大数据方向发展,想问该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么IT培训网小编就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/ 设计/ 架构.数据

大数据开发学习路线整理

参考博客:做了五年大数据开发工程师总结的的大数据学习路线 大数据的4V特征: 1.        数据量大,TB->PB 2.        数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 3.        商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 4.        处理时效性高,海量数据的处理需求不再局限在离线计算当中. 常见的大数据的开源框架: l  文件存储:Hadoop HDFS.Tachyon.KFS l  离线计算: