码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop分布式部署

时间:2016-09-06 01:20:25      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:hadoop分布式部署

  1. 准备硬件环境

    此次用到三台计算机,三台计算机的系统都是Linux,并且以安装好JAVA。IP地址和角色为:

    namenode:192.168.0.1

    datanode:192.168.0.2

    datanode:192.168.0.3

    三台计算机之间能够正确解析彼此。因此需要修改/etc/hosts文件,主节点上需要将所有节点的IP地址以及相对应的主机名添加到文件中。作datanode的节点则只需将自己以及主节点的IP地址以及相对应的主机名添加到文件中即可。

  2. 安装Hadoop

    由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。所以要在三台计算机上先创建好hadoop用户并且切换到hadoop用户。

    选择将hadoop解压在hadoop用户的家目录中。为了方便以后hadoop版本更新,可以创建一个软链接:ln -s hadoop-版本 hadoop 


  3. 建立ssh

    hadoop的主节点是通过ssh来控制其他节点的进程的,则需要两台计算机之间不需要输入密码,所以要公钥私钥的方式来认证。

    首先要确保每台计算机上都有ssh服务并且正常启动。然后在主节点生成一对密钥,再将公钥发给其他的节点。为了方便管理文件,可在hadoop用户家目录中生成新的文件来保存公钥私钥。紧接着将所有的公钥文件的权限修改:chmod 644 authorized_keys,确保其他人不可有写权限。最后需要对三台计算机上的sshd服务进行配置,修改文件/etc/ssh/sshd_config。修改如下:

    PasswordAuthentication no

    AuthorizedKeysFile /home/hadoop/.ssh/authorized_keys

    配置完成后可ssh连接看是否是不是不用输入密码就可连接(若两台主机第一次连接则需要输入yes)

  4. hadoop环境变量

    在/home/hadoop/hadoop/conf配置文件目录中找到hadoop-env.sh,设置JAVA_HOME变量

  5. hadoop配置文件

    这conf中找到slaves文件,此文件是指定datanode的,一行指定一个主机名。master文件是用来指定namenode的,则将主节点的主机名填入即可。

    在安装目录中找到core-site.xml、hdfs-site.xml以及mapred-site.xml并进行修改。

    core-site.xml:

    <property>

      <name>hadoop.tmp.dir</name>

      <value>/home/hadoop/hadoop/tmp</value>

    </property>

    <property>

      <name>fs.defaultFS</name>

      <value>hdfs://(master IP):9000</value>

    </property>


    mapred-site.xml:
    <property>

      <name>mapreduce.jobtracker.address</name>

      <value>(master IP):9001</value>

      <description>NameNode</description>

    </property>


    hdfs-site.xml不需要修改

  6. 部署hadoop

    将配置好的文件传给其他节点,保证目录结构一致

  7. 启动hadoop

    启动之前要先格式化namenode,进入/home/hadoop/hadoop下执行:bin/hadoop namenode -format

    bin/下有许多启动脚本,根据需要来使用:

    start-all.sh  启动所有守护

    start-mapred.sh  启动map/reduce守护。Jobtracker和Tasktracker

    start-dfs.sh  启动hadoop DFS守护。Namenode和Datanode

    有启动脚本也自然都相对应的停止脚本

  8. hadoop在线添加节点

    在slaves文件添加新节点的IP或者主机名,然后新节点上启动服务并执行start-balance.sh

  9. hadoop在线删除节点

    在master上修改mapred-site.xml:

    <property>

      <name>dfs.hosts.exclude</name>

      <value>/home/hadoop/hadoop/conf/datanode-excludes</value>

    </property>

    然后创建datanode-excludes文件,并添加要删除的主机,一行一个。接着执行:bin/hadoop dfsadmin -refreshNodes进行节点刷新,此操作后会进行后台迁移数据,等删除节点的状态为Decommissioned即可安全关闭。

  10. datanode白名单

    http://www.tuicool.com/articles/zINvYbf


Hadoop分布式部署

标签:hadoop分布式部署

原文地址:http://11920819.blog.51cto.com/11910819/1846570

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!