1、你认为用java , streaming , pipe方式开发map/reduce , 各有哪些优点
Java 写 mapreduce 可以实现复杂的逻辑,如果需求简单,则显得繁琐。
HiveQL 基本都是针对 hive 中的表数据进行编写,但对复杂的逻辑(杂)很难进行实现。写起来简单。
2、请列出正常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么,请尽量列的详细一些。
namenode:负责管理hdfs中文件块的元数据,响应客户端请求,管理datanode上文件block的均衡,维持副本数量
Secondname:主要负责做checkpoint操作;也可以做冷备,对一定范围内数据做快照性备份。
Datanode:存储数据块,负责客户端对数据块的io请求
Jobtracker :管理任务,并将任务分配给 tasktracker。
Tasktracker: 执行JobTracker分配的任务。
Resourcemanager、Nodemanager、Journalnode、Zookeeper、Zkfc
3、hbase过滤器实现原则
可以说一下过滤器的父类(比较过滤器,专用过滤器)
4、查看所有的topic
./Kafka-topic.sh --list --zookeeper node01 xx 省略
5、insert into 和override write区别
insert into:将某一个表的数据写到另一个表
override write :覆盖之前的表
6、Kafka的消息发送
./Kafka-console-producer.sh --boker-list node01:2181,node2:2181,node3:2181
7、Hive与关系型数据库的关系?
没有关系,hive是数据仓库,不能和数据库一样进行实时的CRUD操作。
是一次写入多次读取的操作,可以看成是ETL的工具。
8、hive的内表和外表
内部表:未被external修饰,由hive自身管理,删除后会直接删除元数据及存储数据,对表的修改会将修改直接同步给元数据的内部表
外表:被ex修饰,由hdfs管理,表存储有自己决定,删表仅会删除元数据,hdfs文件并不会被删除
9、请列出正常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么,请尽量列的详细一些。
namenode:负责管理hdfs中文件块的元数据,响应客户端请求,管理datanode上文件block的均衡,维持副本数量
Secondname:主要负责做checkpoint操作;也可以做冷备,对一定范围内数据做快照性备份。
Datanode:存储数据块,负责客户端对数据块的io请求
Jobtracker :管理任务,并将任务分配给 tasktracker。
Tasktracker: 执行JobTracker分配的任务。
Resourcemanager
Nodemanager
Journalnode
Zookeeper
Zkfc
10、那些RDD 需要cache
会被重复使用的RDD,但是不能太大