Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行Hadoop应用程序_Hadoop - Fatal编程技术网

运行Hadoop应用程序

运行Hadoop应用程序,hadoop,Hadoop,Hadoop应用程序是否可以在任何一个集群节点上启动,而与节点类型无关 应用程序是否应仅在其中一个节点上启动 Hadoop是否将代码移动到数据附近的适当节点 JavaRMI是否用于移动代码 @编辑 在每个Hadoop安装的节点上,应该通过为Namenode设置fs.default.name的core site.xml和为Jobtracker设置mapred.job.tracker的 但是,不能显式分配从属节点Datanode和Tasktracer,对吗 相反,它们在Hadoop dameon启动

Hadoop应用程序是否可以在任何一个集群节点上启动,而与节点类型无关

  • 应用程序是否应仅在其中一个节点上启动

  • Hadoop是否将代码移动到数据附近的适当节点

  • JavaRMI是否用于移动代码

  • @编辑

    在每个Hadoop安装的节点上,应该通过为
    Namenode
    设置
    fs.default.name
    core site.xml
    和为
    Jobtracker
    设置
    mapred.job.tracker

    但是,不能显式分配从属节点
    Datanode
    Tasktracer
    ,对吗

    相反,它们在Hadoop dameon启动时动态加入集群,或者在守护进程停止时离开集群,对吗

    如果Hadoop安装的节点既没有分配给主节点,也没有运行Hadoop守护进程,那么它仍然可以启动Hadoop应用程序,对吗

    @第二次编辑

    似乎从节点也应该在主节点上的
    conf/slaves
    文件中明确列出,以便在那里集中启动或停止

  • 只要正确设置
    core site.xml
    配置,Hadoop作业可以从任何地方启动。这不必是数据节点或主节点。在较大的集群上,通常有一个“查询节点”,该节点上不运行任何Hadoop守护进程

  • 除非您的程序在MapReduce之外执行某种繁重的预计算或后计算,否则在特定节点上启动作业并不是什么大问题。如果是,您希望将它们保留在自己的节点上。在数据节点上运行作业优于在主节点上运行作业

  • Hadoop将jar文件复制到各地,因此代码在本地可用。我不认为这使用RMI,但我可能错了。最后,这些都是从用户那里抽象出来的,你不需要注意


  • #对于我的大型集群中的新开发人员来说,1实际上是一个常见的问题。有一种常见的误解是,您希望在jobtracker节点上运行作业,而jobtracker节点是运行作业最差的位置之一。Hadoop自带了自己的RPC机制,因此没有RMI。
    Hadoop作业可以从任何地方启动,只要core-site.xml配置设置正确。
    -提交作业的客户端应该知道JobTracker和NameNode的位置,因此必须设置NN的fs.default.name和JT的mapred.job.tracker。这些是最小的参数。不管是core-site.xml还是mycore-site.xml。必须使用-D选项或从文件将配置传递给运行作业的客户端。
    在特定节点上启动作业不是什么大问题,除非您的程序在MapReduce之外执行某种繁重的预计算或后计算。
    -否则将计算InputSplit,并将有关InputData的元数据与作业jar一起复制到客户机上的HDFS。如果没有提交太多作业,或者InputSplit计算不是CPU密集型的,那么哑客户机应该很好。MAPREDUCE-207用于将InputSplit计算从客户端移动到集群,但尚未提交。@Praveen Sripati:您的意思是
    MAPREDUCE
    作业的
    InputData
    始终首先转换为
    InputSplit
    块吗,这样就可以将它们分发给多个子
    Map
    任务?现在计算是在客户端完成的,但是可以在以后的Hadoop版本中移动到集群中?没有InputSplit块,没有数据转换,数据驻留在原来的位置。InputSplit是输入数据跨记录边界的逻辑分离,因此每个映射器可以并行处理单个InputSplit。例如,一个输入表有1000行,然后可以将其逻辑拆分为10个InputSplit,即1-100行属于InputSplit-1,101-200行属于InputSplit-2,依此类推。类似地,1GB文件可以拆分为多个128MB的块,以便并行处理。逻辑是这个上下文中的关键词。