hadoop集群环境搭建

 安装hadoop(三种模式):本地模式,伪分布模式,完全分布式模式,区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。(前两种不再介绍,我们直接介绍第三种)

模式名称各个模块占用的JVM进程数各个模块运行在几个机器数上
本地模式1个1个
伪分布式模式N个1个
完全分布式模式N个N个

首先介绍一下hadoop默认的一些端口:

50070                //namenode http port

50075                //datanode http port

50090                //secondarynamenode        http port

8088                 //yarn    http port

8020                //namenode rpc port

50010               //datanode rpc port

注:修改主机名/etc/hostname和/etc/hosts映射(每台设备都需要修改),我准备了4台

1.检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh),主要用于namenode节点所在机器免密登录其他主机
       $yum list installed | grep ssh

2.删除所有主机上的 ~/.ssh/*

3.在s130主机上生成密钥对(namenode节点所在机器,s130是我自己的机器)

       $>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

4.将s130的公钥文件id_rsa.pub远程复制到131 ~ 133主机上,放置在 ~/.ssh/authorized_keys

(scp命令分别复制在其他机器上 scp id_rsa.pub root@s131:~/.ssh/authorized_keys)

5.解压安装jdk,并配置环境变量(这里不在介绍过程)

6.解压安装hadoop,并配置环境变量(这里不在介绍过程,只要注意一点,一个bin,一个sbin,都需要加入PATH后)

注:以上两步骤在自己安装目录下解压,然后在/etc/profile里配置环境变量即可。

7.配置完全分布式(${HADOOP_HOME}/etc/hadoop/),这里介绍了一些主要配置信息,了解更多可查阅网上资料

[core-site.xml]    

fs.defaultFS参数配置的是HDFS的地址。

hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖${hadoop.tmp.dir}的配置。如果不配置会在/tmp自动创建,该目录是一个临时目录,重启会被清理到,测试可以不配,实际应用中一定要配置,要注意权限问题,不是在root用户下,要修改相应的用户权限,比如在hadoop用户下,执行sudo chown -R hadoop:hadoop /user/centos/hadoop

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://s130/</value>

   </property>

<property>

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

        <value>/user/centos/hadoop</value>

   </property>

<property>

       <name>dfs.namenode.name.dir</name>

       <value>file://${hadoop.tmp.dir}/dfs/name</value>

</property>

<property>

     <name>dfs.datanode.data.dir</name>

      <value>file://${hadoop.tmp.dir}/dfs/data</value>

</property>

</configuration>

[hdfs-site.xml]

dfs.replication配置的是HDFS存储时的备份数量,一般情况下数据节点与名称节点不在同一个机器上,所以我这里配3个副本

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>

              <name>dfs.replication</name>

             <value>3</value>

    </property>

</configuration>

[mapred-site.xml]

指定mapreduce运行在yarn框架上。

注意:cp mapred-site.xml.template mapred-site.xml
            <?xml version="1.0"?>
            <configuration>
                <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                </property>
            </configuration>

[yarn-site.xml]

yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法。

yarn.resourcemanager.hostname指定了Resourcemanager运行在哪个节点上。

<?xml version="1.0"?>

<configuration>

    <property>

          <name>yarn.resourcemanager.hostname</name>

         <value>s130</value>

    </property>

   <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

[slaves]

slaves文件是指定HDFS上有哪些DataNode节点。

s131

s132

S133

[hadoop-env.sh]

手动配置jdk路径

...

export JAVA_HOME=…

8.分发配置(使用scp命令,复制配置与其他机器上,参考步骤4)

9.格式化文件系统

    $>hadoop namenode -format(我们配置过环境变量,所以可以在任何目录下执行)

10.启动hadoop进程(关闭防火墙)

    $>start-all.sh

11.通过web页面查看(在我们开始分别介绍不同 http port)

http://192.168.133.130:50070

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值