2019最新大数据面试题及答案整理

大数据面试题总结一波,助力准备在金三银四寻找好工作的小伙伴们,只有度过笔试这一关才能在下面的关卡中大展宏图!
一、如何检查namenode是否正常运行?重启namenode的命令是什么?
通过节点信息和浏览器查看,通过脚本监控
hadoop-daemon.sh start namenode
hdfs-daemon.sh start namenode
二、hdfs存储机制是怎样的?
1) client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用namenode节点
2) client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanode
3) namenode收到的client信息后,发送确信信息给datanode
4) datanode同时收到namenode和datanode的确认信息后,提交写操作。
三、hadoop中combiner的作用是什么?
当map生成的数据过大时,带宽就成了瓶颈,怎样精简压缩传给Reduce的数据,又不影响最终的结果呢。有一种方法就是使用Combiner,Combiner号称本地的Reduce,Reduce最终的输入,是Combiner的输出。
四、 你们数据库怎么导入hive 的,有没有出现问题
在导入hive的时候,如果数据库中有blob或者text字段,会报错,解决方案在sqoop笔记中。在将数据由Oracle数据库导入到Hive时,发现带有clob字段的表的数据会错乱,出现一些字段全为NULL的空行。
由于在项目中CLOB字段没有实际的分析用途,因此考虑将CLOB字段去掉。
同时,为了防止CLOB字段产生一些问题,因此将HIVE中CLOB字段禁用,禁用的方式如下:
[Hadoop@master sqoop-1.4.5]$ cd S Q O O P H O M E / c o n f [ h a d o o p @ m a s t e r c o n f ] SQOOP_HOME/conf [hadoop@master conf] vi oraoop-site.xml
将以下属性的注释去掉,并且将value改为true

oraoop.import.omit.lobs.and.long
true
If true, OraOop will omit BLOB, CLOB, NCLOB and LONG columns during an Import.


有些表中虽然有clob字段,但是不能排除掉,因为其他字段使我们所需要,因此在导入的时候采用指定–columns的方式来进行导入
sqoop import --hive-import --hive-database test --create-hive-table --connect jdbc --username user–password user
–bindir //scratch --outdir /Java --table aaa --columns “ID,NAME” -m 1 --null-string ‘\N’ --null-non-string ‘\N’
五、hdfs-site.xml的3个主要属性?
dfs.name.dir决定的是元数据存储的路径以及DFS的存储方式(磁盘或是远端)
dfs.data.dir决定的是数据存储的路径
fs.checkpoint.dir用于第二Namenode
六、是否可以在Windows上运行Hadoop?
建议不要这么做,RedHatLinux或者是Ubuntu才是Hadoop的非常适合操作系统。在Hadoop安装中,Windows通常不会被使用,因为会出现各种各样的问题。因此,Windows绝对不是Hadoop的推荐系统。

猜你喜欢

转载自blog.csdn.net/weixin_43695064/article/details/84786872