当前位置:操作系统 > Unix/Linux >>

hadoop分布式配置

hadoop分布式配置
 
一、前面的部分见伪分布式配置。
 
二、实现SSH无密码登录远程主机(只在源主机上配置)
 
1.  scp authorized_keys slave2:~/.ssh/
 
     scp '/home/user/.ssh/authorized_keys'  192.168.0.5:~/.ssh/
 
注意:以上scp命令表示把authoriezd_keys远程复制到对应主机的相应目录下。单引号可以不加。slave2是目的主机的名字,需要在源主机的/etc/hosts下配置slave2以及对应的IP地址 192.168.0.5。不配置时可以直接用IP地址表示。 authorized_keys是用于进行无密码登录远程主机的公钥,在伪分布式配置中生成。
 
然后使用ssh slave2验证是否可以无密码登录。另外注意提前对每台主机进行改名,即在/etc/hostname下修改主机名。
 
三、修改hosts文件(每台主机上都配置,分机只需配置源主机和当前分机的名字和IP即可)
 
1.sudo gedit /etc/hosts 添加上每台主机名字和地址的映射。
 
192.168.0.4 aklixiaoyao
 
192.168.0.2 slave1 
 
192.168.0.5 slave2
 
四、修改hadoop文件(要在每台机器上都改)
 
1.修改hdfs-site.xml文件,改为2,表示分布式
 
configuration>
 
    <property>
 
        <name>dfs.replication</name>
 
        <value>2</value>
 
   </property>
 
         <property>
 
            <name>hadoop.tmp.dir</name>
 
            <value>/home/user/hadoop/tmp/</value>
 
         </property>
 
 </configuration>
 
2.修改conf/masters:(源主机,主机)(每台机器上都配置,分机和源主机都配置)
 
   aklixiaoyao(主机名)
 
3.修改 conf/slaves: (目的主机,分机)(每台机器上都配置,分机只配置源主机和当前分机的名字即可)
 
    slave1 
 
    slave2
 
4. 修改conf/core-site.xml: (每台机器都配置,注意其中必须填写源主机的名字aklixiaoyao)
 
<configuration>
 
   <property>
 
     <name>fs.default.name</name>
 
         <value>hdfs://aklixiaoyao:9000</value>
 
   </property>
 
</configuration>
 
5.修改conf/mapred-site.xml:(每台机器都配置,注意其中必须填写源主机的名字aklixiaoyao)
 
 <configuration>
 
    <property>
 
        <name>mapred.job.tracker</name>
 
        <value>aklixiaoyao:9001</value>
 
    </property>
 
 </configuration>
 
五、启动hadoop
 
1.使用hadoop命令,bin/hadoop/start-all.sh启动hadoop.
 
2.在主机(源主机)执行jps命令,出现如下结果表示成功
 
7671 NameNode
 
7920 SecondaryNameNode
 
8097 Jps
 
8006 JobTracker
 
3.在分机(目的主机)执行jps命令,出现如下结果表示成功
 
5192 DataNode
 
5392 Jps
 
5321 TaskTracker
 
 注意:如果在源主机上未出现namenode,则原因可能是重启机器时候tmp文件夹清空内容了,目前发现的方法是删除tmp/hadoop-user文件夹,然后执行hadoop命令格式化hadoop文件系统:
 
bin/hadoop namenode-format.
 
然后重新启动hadoop即可。
 
为了防止重启机器时候tmp文件夹清空内容了,可在hdfs-site.xml下创建临时目录:
 
 <configuration>
 
    <property>
 
        <name>dfs.replication</name>
 
       <value>2</value>
 
   </property>
 
         <property>
 
             <name>hadoop.tmp.dir</name>
 
            <value>/home/user/software/hadoop-0.20.2/tmp/</value>
 
         </property>
 
 </configuration>
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,