解析:
⼤体分为四⼤类,分类、聚类、回归、协同过滤。
简答说⼀下hadoop的map-reduce编程模型?
解析:
⾸先map task会从本地⽂件系统读取数据,转换成key-value形式的键值对集合。
将键值对集合输⼊mapper进⾏业务处理过程,将其转换成需要的key-value在输出。
之后会进⾏⼀个partition分区操作,默认使⽤的是hashpartitioner,可以通过重写hashpartitioner的getpartition⽅法来⾃定义分区规则。
之后会对key进⾏进⾏sort排序,grouping分组操作将相同key的value合并分组输出。
在这⾥可以使⽤⾃定义的数据类型,重写WritableComparator的Comparator⽅法来⾃定义排序规则,重写RawComparator的compara⽅法来⾃定义分组规则。
之后进⾏⼀个combiner归约操作,其实就是⼀个本地段的reduce预处理,以减⼩后⾯shufle和reducer的⼯作量。
reduce task会通过⽹络将各个数据收集进⾏reduce处理,最后将数据保存或者显⽰,结
束整个job。
解析:
zookeeper:修改zoo.cfg⽂件,配置dataDir,和各个zk节点的server地址端⼝,tickTime⼼跳时间默认是2000ms,其他超时的时间都是以这个为基础的整数倍,之后再dataDir对应⽬录下写
⼊myid⽂件和zoo.cfg中的server相对应。
hadoop:修改
hadoop-env.sh配置java环境变量
core-site.xml配置zk地址,临时⽬录等
hdfs-site.xml配置nn信息,rpc和http通信地址,nn⾃动切换、zk连接超时时间等
www.aboutyun.com/thread-24246-1-1.html 36/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
yarn-site.xml配置resourcemanager地址
mapred-site.xml配置使⽤yarn
slaves配置节点信息
格式化nn和zk。
hbase:修改
hbase-env.sh配置java环境变量和是否使⽤⾃带的zk
hbase-site.xml配置hdfs上数据存放路径,zk地址和通讯超时时间、master节点
regionservers配置各个region节点
zoo.cfg拷⻉到conf⽬录下
spark:
安装Scala
修改spark-env.sh配置环境变量和master和worker节点配置信息
环境变量的设置:直接在/etc/profile中配置安装的路径即可,或者在当前⽤⼾的宿主⽬录下,配置在.bashrc⽂件中,该⽂件不⽤source重新打开shell窗⼝即可,配置在.bash_profile的话只对
当前⽤⼾有效。
解析:
调优可以通过系统配置、程序编写和作业调度算法来进⾏。
hdfs的block.size可以调到128/256(⽹络很好的情况下,默认为64)
调优的⼤头:mapred.map.tasks、mapred.reduce.tasks设置mr任务数(默认都是1)
mapred.tasktracker.map.tasks.maximum每台机器上的最⼤map任务数
mapred.tasktracker.reduce.tasks.maximum每台机器上的最⼤reduce任务数
mapred.reduce.slowstart.completed.maps配置reduce任务在map任务完成到百分之⼏的时候开始进⼊
这个⼏个参数要看实际节点的情况进⾏配置,reduce任务是在33%的时候完成copy,要在这之前完成map任务,(map可以提前完成)
mapred.compress.map.output,mapred.output.compress配置压缩项,消耗cpu提升⽹络和磁盘io
合理利⽤combiner
注意重⽤writable对象
解析:
⾸先肯定要保证集群的⾼可靠性,在⾼并发的情况下不会挂掉,⽀撑不住可以通过横向扩展。
www.aboutyun.com/thread-24246-1-1.html 37/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
datanode挂掉了使⽤hadoop脚本重新启动。