Hadoop常见面试题有哪些
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章将为大家详细讲解有关Hadoop常见面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 hadoop中配置文件有哪些,各自作用?hadoop-en
千家信息网最后更新 2025年02月05日Hadoop常见面试题有哪些
这篇文章将为大家详细讲解有关Hadoop常见面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1 hadoop中配置文件有哪些,各自作用?
hadoop-env.sh JAVA_HOME,HADOOP_CONF_DIR,HADOOP_LOG_DIR,HADOOP_PID_DIR,HADOOP_CLASSPATH,hadoop相关进程JVM参数 其他core-site.xml fs.defaultFS,hadoop.tmp.dir,ha.zookeeper.quorum,io.compression.codecs,io.file.buffer.sizehdfs-site.xml namenode的url信息,dfs.name.dir,dfs.data.dir,dfs.replication,dfs.namenode.shared.edits.dir, dfs.journalnode.edits.dir,dfs.hosts.excludeslaves datanode列表mapred-site.xml mapreduce.framework.name,mapreduce.map.output.compress.codecyarn-site.xml resourcemanager信息excludes 排除节点列表
2 hdfs存储机制是什么
1. HDFS开创性地设计出一套文件存储方式,即对文件分割后分别存放;2. HDFS将要存储的大文件进行分割,分割后存放在既定的存储块(Block)中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求;3. 一个HDFS集群包括两大部分,即NameNode与DataNode。一般来说,一个集群中会有一个NameNode和多个DataNode共同工作;4. NameNode是集群的主服务器,主要是用于对HDFS中所有的文件及内容数据进行维护,并不断读取记录集群中DataNode主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储;5. DataNode在HDFS集群中担任任务具体执行角色,是集群的工作节点。文件被分成若干个相同大小的数据块,分别存储在若干个DataNode上,DataNode会定期向集群内NameNode发送自己的运行状态与存储内容,并根据NameNode发送的指令进行工作;6. NameNode负责接受客户端发送过来的信息,然后将文件存储位置信息发送给提交请求的客户端,由客户端直接与DataNode进行联系,从而进行部分文件的运算与操作。7. Block是HDFS的基本存储单元,默认大小是64M(hadoop2中时128M);8. HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到3个相互独立的硬件上,这样可以快速恢复损坏的数据;9. 用户可以使用既定的API接口对HDFS中的文件进行操作;10. 当客户端的读取操作发生错误的时候,客户端会向NameNode报告错误,并请求NameNode排除错误的DataNode后后重新根据距离排序,从而获得一个新的DataNode的读取路径。如果所有的DataNode都报告读取失败,那么整个任务就读取失败;11. 对于写出操作过程中出现的问题,FSDataOutputStream并不会立即关闭。客户端向NameNode报告错误信息,并直接向提供备份的DataNode中写入数据。备份DataNode被升级为首选DataNode,并在其余2个DataNode中备份复制数据。NameNode对错误的DataNode进行标记以便后续对其进行处理。
3 怎么查看,删除,移动,拷贝hadoop文件
hdfs dfs -text ...hdfs dfs -rm ...hdfs dfs -mv ...hdfs dfs -cp ...
4 hadoop中combiner作用
1、combiner类似本地的reduce功能.实现本地key的聚合,减清到reduce的io压力
5 mr工作原理,距离说明mr是怎样运行的
不确定是不是回答这个图
6 hive与oracle区别,目前hive不支持哪些函数(列出5个以上)
hive处理数据量较大,高延迟,基于hdfs,hql转换成mr执行,不支持数据修改oracle处理数据量相对较小,有所有,低延迟,支持数据修改
7 hbase常用基本命令,创建表,添加记录,查看记录,删除记录
create '表名称','列族名称1','列名族称2','列名族称N'put '表名','行名','列名','值'get '表名','行名'delete '表名','行名称','列名称'
8 见下图
//建表create table net_info (device_number int,lac int,ci int,imei bigint,start_time timestamp,end_time timestamp,duration int,send_bytes int,recv_bytes int,total_bytes int)row format delimited fields terminated by '|';//加载数据load data local inpath '/home/hadoop/text.txt' into table net_info;select * from net_info;//统计select sum(total_bytes) from net_info where start_time>='2014-12-31' and end_time<'2015-1-1'//顺便复习下修改列alter table net_info change start_time start_time timestamp;
9 编写hive自定义函数实现oracle中addmonths函数功能,然后封装到hive函数库中。addmonths(data a,int b)函数功能简单说明:求传入日期a经过b月后的日期是多少?
Hive可以允许用户编写自己定义的函数UDF,来在查询中使用。Hive中有3种UDF: 1)UDF:操作单个数据行,产生单个数据行。 2)UDAF:操作多个数据行,产生一个数据行。 3)UDTF:操作一个数据行,产生多个数据行一个表作为输出。 用户构建的UDF使用过程如下: 第一步:继承UDF或者UDAF或者UDTF,实现特定的方法。 第二步:将写好的类打包为jar。如hivefirst.jar。 第三步:进入到Hive外壳环境中,利用add jar /home/hadoop/hivefirst.jar 注册该jar文件。该例实现网上找了个作参考:import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;import org.apache.hadoop.hive.ql.metadata.HiveException;import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;import org.joda.time.LocalDate;import org.joda.time.format.DateTimeFormat;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;public class AddMonth extends GenericUDF { @Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { if (arguments.length != 2) { throw new UDFArgumentLengthException("The function add_month(local_date, months_to_add) requires 2 arguments."); } ObjectInspector localDateVal = arguments[0]; ObjectInspector monthsToAddVal = arguments[1]; if (!(localDateVal instanceof StringObjectInspector)) { throw new UDFArgumentException("First argument must be of type String (local_date as String)"); } if (!(monthsToAddVal instanceof IntObjectInspector)) { throw new UDFArgumentException("Second argument must be of type int (Month to add)"); } return PrimitiveObjectInspectorFactory.writableStringObjectInspector; } @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { String localDateVal = (String) ObjectInspectorUtils.copyToStandardJavaObject(arguments[0].get(), PrimitiveObjectInspectorFactory.javaStringObjectInspector); IntWritable monthsToAddVal = (IntWritable) ObjectInspectorUtils.copyToStandardJavaObject(arguments[1].get(), PrimitiveObjectInspectorFactory.javaIntObjectInspector); LocalDate localDate = null; try { localDate = LocalDate.parse(localDateVal, DateTimeFormat.forPattern("yyyy-MM-dd")); } catch (Exception ex) { return null; } return new Text(localDate.plusMonths(monthsToAddVal.get().toString()); } @Override public String getDisplayString(String[] arguments) { assert (arguments.length == 2); return "add_month(" + arguments[0] + ", " + arguments[1] + ")"; }}
10 利用spark编写搜索日志分析:用户在0点-12点的搜索量。搜索路径存放路径为/input/data.txt。文件用竖线分割,第一列为时间字段。日志内容如下:
关于"Hadoop常见面试题有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
数据
文件
存储
集群
函数
客户
信息
客户端
工作
内容
名称
备份
用户
错误
处理
功能
多个
报告
日志
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大话西游服务器登录
西安高新区网络安全大会
was8连接数据库
ssms做数据库实例
服务器邮件和本地邮件
数据库建立自增
网络安全密码设置需谨慎
滁州桦汉工控机服务器
计算机网络技术掌握知识
软件开发 行动方式
服务器管理器2016
同源分析网络安全
用友数据库隐藏账套
数据库安全设备有什么好处
国三网络技术难吗
fifavs数据库
学校网络技术部
服务器数据安全管理软件
运维网络安全心得
前端node如何访问数据库
牛耳软件开发
实况足球系列数据库
读计算机系统与网络技术有感
国一互联网科技有限公司
延庆软件开发培训
腾讯轻量服务器宝塔面板
区块链+网络安全+论坛
福建网络安全it培训
郴州串口服务器多少钱
服务器自动切换时间