我正在尝试找出这两个问题的正确答案,这两个问题都涉及将数据加载到我在网上找到的Hadoop,作为我研究Hadoop开发的材料和案例研究的一部分。
第一个问题是:
您的OLPT数据库中有用户配置文件记录,您希望将这些用户配置文件记录加入已经存入Hadoop文件系统的Web日志中。您将如何获得这些用户记录?
一个。 HDFS命令
B中。 Pig LOAD命令
℃。 Sqoop导入
d。 Hive LOAD DATA命令
电子。用Flume剂摄取
F。使用Hadoop Streaming进行摄取
我发现不同的资源表明不同的答案是正确答案(B / C)
第二个问题是:
您希望详细了解用户如何浏览您的公共网站,例如在下订单之前访问的网页。您有一个由200个Web服务器托管您的网站的服务器场。您将如何收集这些数据以供分析?
一个。使用Flume将服务器Web日志提取到HDFS中。
B中。编写MapReduce作业,使用映射器的Web服务器,并减少Hadoop集群节点。
℃。使用Sqoop将所有用户从OLTP数据库的点击导入Hadoop。
d。使用Hadoop Streaming将这些点击流引入Hadoop。
电子。从Web服务器中对Weblog进行采样,使用curl将它们复制到Hadoop中。
这里建议的答案是A或B,具体取决于来源......
修改
这是对答案B的解释,我发现这让我对答案三思而后行:
用于解析Weblog的Hadoop MapReduce以下是使用Hadoop MapReduce解析日志文件的步骤:
使用此Hadoop命令将日志文件加载到HDFS位置:hadoop fs -put
Opencsv2.3.jar框架用于解析日志记录。
下面是Mapper程序,用于从HDFS位置解析日志文件。
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);
}
}
&LT; \编辑&gt;
很高兴得到这些问题的绝对答案,Gday,D。
答案 0 :(得分:2)
问题1:
答案:C
说明: 您需要加入用户个人资料记录和博客。博客是 已经摄入HDFS.So以便加入weblogs与用户 配置文件,我们需要将用户配置文件也带入HDFS.User配置文件 驻留在OLPT数据库中,以便将其导入HDFS我们需要帮助 SQOOP 。
问题2:
答案:A
说明: 您需要收集托管您的Web服务器的信息 网站。你有一个由200个网络服务器托管你的农场 website.so要将它们带到HDFS,你需要 FLUME 的帮助。
答案 1 :(得分:1)
1是C. Sqoop是从数据库摄取到hdfs的方法。它是为此目的而构建和优化的。 2是A.同样,实时收集大量博客是一个常见的Flume用例。