【问题标题】:Loading data into Hadoop将数据加载到 Hadoop
【发布时间】:2015-01-13 21:57:52
【问题描述】:

我正在尝试找出这 2 个问题的正确答案,这两个问题都涉及将数据加载到您的 Hadoop,这是我在网络上找到的,作为我研究 Hadoop 开发的材料和案例研究的一部分。

第一个问题是:

您的 OLPT 数据库中有用户配置文件记录,您希望将这些记录与您已经摄取到 Hadoop 文件系统中的 Web 日志一起加入。您将如何获取这些用户记录?

A. HDFS 命令

B.猪 LOAD 命令

C. Sqoop 导入

D. Hive LOAD DATA 命令

E.使用 Flume 代理摄取

F。使用 Hadoop Streaming 摄取

我发现不同的资源表明不同的答案是正确答案(B / C)

第二个问题是:

您想详细了解用户如何浏览您的公共网站,例如他们在下订单之前访问了哪些页面。您有一个由 200 台 Web 服务器组成的场,用于托管您的网站。您将如何收集这些数据进行分析?

A.使用 Flume 将服务器 Web 日志摄取到 HDFS。

B.编写一个 MapReduce 作业,Web 服务器用于映射器,Hadoop 集群节点用于 reduce。

C.使用 Sqoop 将所有用户的点击从您的 OLTP 数据库导入 Hadoop。

D.使用 Hadoop Streaming 将这些点击流引导至 Hadoop。

E.从 Web 服务器中采样博客,使用 curl 将它们复制到 Hadoop。

这里建议的答案是 A 或 B,具体取决于来源...

编辑:

这是我发现的答案 B 的解释,让我对答案三思而后行:

用于解析博客的 Hadoop MapReduce 以下是使用 Hadoop MapReduce 解析日志文件的步骤:

使用以下 Hadoop 命令将日志文件加载到 HDFS 位置:hadoop fs -put

Opencsv2.3.jar 框架用于解析日志记录。

以下是用于从 HDFS 位置解析日志文件的 Mapper 程序。

public static class ParseMapper     
   extends Mapper<Object, Text, NullWritable,Text > {

   private Text word = new Text();

   public void map(Object key, Text value, Context context)
       throws IOException, InterruptedException {

      CSVParser parse = new CSVParser(' ','\"');  
      String sp[]=parse.parseLine(value.toString()); 
      int spSize=sp.length;    
      StringBuffer rec= new StringBuffer();

      for(int i=0;i<spSize;i++){    
         rec.append(sp[i]);    

         if(i!=(spSize-1))    
          rec.append(",");    
      }    
   word.set(rec.toString());    
   context.write(NullWritable.get(), word);   
   }    
} 

很高兴得到这些问题的绝对答案,Gday,D。

【问题讨论】:

标签: hadoop mapreduce apache-pig sqoop flume


【解决方案1】:

问题一:

答案:C

说明: 您需要加入用户个人资料记录和网络日志。博客是 已经摄取到 HDFS 中。所以为了与用户一起加入博客 配置文件,我们需要将用户配置文件也带入 HDFS。用户配置文件是 驻留在 OLPT 数据库中,因此要将其导入 HDFS,我们需要帮助 SQOOP


问题 2:

答案:A

说明: 您需要收集托管您的网络服务器的信息 网站。您有一个由 200 台 Web 服务器组成的农场,托管您的 website.so 要将它们带到 HDFS,您需要 FLUME 的帮助。

【讨论】:

  • 谢谢。我也很自然地思考水槽,直到我遇到编辑解释来回答 B。请查看我对问题的编辑,其中我放了一个让我三思而后行的例子,请告诉我它是否改变了任何东西......
  • @theexplorer:他们可能认为用户记录可能在他们手中。但是用户数据驻留在 OLTP 数据库中:所以只有通过 SQOOP 我们才能做到这一点。不要依赖那里的答案,他们是显示认证测试转储的假网站
  • 抱歉,我之前把 EDIT 放错了地方。我修复了它 - MapReduce 示例解释了为什么第二个问题的答案是 B。你能再考虑一下吗?谢谢。
  • @theexplorer:语句本身是错误的:编写一个 MapReduce 作业,使用映射器的 Web 服务器,以及用于减少的 Hadoop 集群节点...映射器的 Web 服务器...映射器输入将是一个文件目录,reducer 将处理来自映射器的中间数据。减速器如何做 Hadoop 集群节点。那个选项没有意义。我们告诉hadoop集群的是hadoop的整个设置(包括节点)。reducers对键和值列表执行。
【解决方案2】:

1 是 C。Sqoop 是从数据库摄取到 hdfs 的方法。它是为此目的而构建和优化的。 2 是 A。类似地,实时收集大量博客是 Flume 的常见用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多