【发布时间】: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。
【问题讨论】:
-
我也解决了一些来源给出的一些虚假答案。不要依赖他们提供的答案。unmeshasreeveni.blogspot.in/2014/09/…
标签: hadoop mapreduce apache-pig sqoop flume