hdfs可以使用一个namenode或多个namenode组成,datanode可以是多个,namenode是hdfs的主节点,目录文件的索引放在namenode中,第三方访问的时候使用namenode开放的端口进行访问的,datanode是hdfs的数据节点,可以由多台服务器组成。
hadoop2.0之后可以设置多个namenode,一般使用zookeeper来做hdfs集群,使用负载均衡的原则降低单个namenode的负载量。
在使用hdfs的时候会出现单个或多个datanode节点数据量比其他节点高出许多,也就是数据存放不均衡的情况出现,这个时候需要使用hadoop的balance来做均衡,可以使用定时任务来做
mapreduce运行原理就是由程序员写好map和reduce实际怎么运行的方法,组成一个job,分配给hadoop的多个JobTracker(java类的序列化传输),之后再由JobTracker构建依次运行map和reduce方法,最后输出到hdfs上的,分布式计算的具体表现在于,JobTracker是在多个不同的hadoop机器上的,相当于任务拆分成多个job之后再计算,最后汇总