分布式hadoop搭建,自己测试成功过,很详细

分布式hadoop集群分布

  • 服务器功能规划
    node-1 :namenode,datanode,nodemanager,historyserver
    node-2:resourcemanage,datanode,nodemanager
    node-3:datanode,nodemanager,secondarynamenode
  • 具体命令
#在node-1上
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh            --启动HDFS
$ sbin/mr-jobhistory-daemon.sh start historyserver
#在node-2上:
$ sbin/start-yarn.sh           --启动YARN

配置

一、 集群规划
01 02 03
HDFS namenode SecondaryNamenode
datanode datanode datanode
historyserver
YARN resourcemanager
nodemanager nodemanager nodemanager

二、 准备系统环境
1、主机名 [root用户]
# vi /etc/sysconfig/network
bigdata01.com –第一台
bigdata02.com –第二台
bigdata03.com –第三台

2、主机名和ip地址的映射  [root用户] [三台服务器]
# vi /etc/hosts
192.168.201.128 bigdata01.com
192.168.201.129 bigdata02.com
192.168.201.130 bigdata03.com

3、关闭iptables和selinux    [root用户] [三台服务器]
# service iptables stop     --关闭防火墙服务
# chkconfig iptables off    --让iptables开启不启动

# vi /etc/sysconfig/selinux
SELINUX=disabled

4、创建普通用户            [root用户] [三台服务器]
# useradd bigdata
# echo 123456 | passwd --stdin bigdata

5、配置静态IP和DNS        [root用户] [三台服务器]
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.201.130
NETMASK=255.255.255.0
GATEWAY=192.168.201.2
DNS1=192.168.201.2
# service network restart

6、把系统启动级别改成“字符模式”       [root用户] [后面两台服务器]
    安装类型选择“Basic”
# vi /etc/inittab
id:3:initdefault:

7、卸载服务器JDK      [root用户] [三台服务器]
# rpm -qa |grep java
# rpm -e --nodeps java软件包

三、 配置NTP时间服务器 [root用户]
** 把01这台服务器配置为时间服务器
** 然后集群内其他服务器都来同步这台服务器的时间
** 目的: 集群内部所有服务器时间一致

1、调整时间(三台服务器)
    # date -R               --检查当前系统时区
    Thu, 25 Aug 2016 14:51:07 +0800
    # rm -rf /etc/localtime     --如果时区不是+0800
    # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2、bigdata01.com
        2.1 同步时间
            # service ntpd stop
            # ntpdate cn.pool.ntp.org   --同步当前服务器时间
            25 Aug 14:47:41 ntpdate[10105]: step time server 202.112.29.82 offset -9.341897 sec

            ## 必须在ntpd进程关闭的情况下才能同步别的ntp服务器时间,反之可能出现问题:“the NTP socket is in use, exiting”错误。
            问题分析:
            出现该错误的原因是系统ntpd服务器正在运行中,通过 ps aux | grep ntpd或者service ntpd status 查看,会看到ntpd正在运行。
            解决方法:
                # service ntpd stop

        2.2 检查软件包
            # rpm -qa | grep ntp        --查看ntp软件包是否已安装
            ntp-4.2.4p8-3.el6.centos.x86_64
            # yum -y install ntp        --如果没有安装需要安装ntp

        2.3 修改ntp配置文件
            # vi /etc/ntp.conf
            ####去掉下面这行前面的# ,并把网段修改成自己的网段
            restrict 192.168.201.0 mask 255.255.255.0 nomodify notrap

            ####注释掉以下几行
            #server 0.centos.pool.ntp.org
            #server 1.centos.pool.ntp.org
            #server 2.centos.pool.ntp.org

            ####把下面两行前面的#号去掉,如果没有这两行内容,需要手动添加
            server  127.127.1.0     # local clock
            fudge   127.127.1.0 stratum 10

        2.4 重启ntp服务
            # service ntpd start
            # chkconfig ntpd on


3、bigdata.com           [后两台服务器02、03]
        3.1 关闭ntpd进程,默认关闭
            # service ntpd stop
            # chkconfig ntpd off

        3.2 去同步第一台服务器时间
            # ntpdate bigdata01.com --去第一台服务器同步时间
            25 Aug 15:16:47 ntpdate[2092]: adjust time server 192.168.201.128 offset 0.311666 sec

        3.3     制定计划任务,周期性同步时间
            # crontab -e
            */10 * * * * /usr/sbin/ntpdate master01
            [分  时 日  月 星期]
            # service crond restart

四、 免密码登陆[bigdata用户] [三台服务器]
bigdata01.com –> bigdata01.com
bigdata02.com
bigdata03.com

bigdata02.com   --> bigdata01.com
                                    bigdata02.com
                                    bigdata03.com

bigdata03.com   --> bigdata01.com
                                    bigdata02.com
                                    bigdata03.com

在01上:   [用普通用户bigdata]                  
    $ ssh-keygen -t rsa        --一直回车,生成一对公私钥对         
        ** 在/home/bigdata/.ssh/ 文件夹生成两个秘钥文件,如果生成错误,可以删除重新生成
        id_rsa  id_rsa.pub
    $ ssh-copy-id master                       --把自己的公钥拷贝给01
    $ ssh-copy-id node1
    $ ssh-copy-id node2
在02上:   [用普通用户bigdata]
    $ ssh-keygen -t rsa
    $ ssh-copy-id bigdata01.com
    $ ssh-copy-id bigdata02.com
    $ ssh-copy-id bigdata03.com
在03上:   [用普通用户bigdata]
    $ ssh-keygen -t rsa
    $ ssh-copy-id bigdata01.com
    $ ssh-copy-id bigdata02.com
    $ ssh-copy-id bigdata03.com

使用ssh hostname校验,使用ssh无秘登录后,一定要退出exit;

五、 安装配置JDK [root用户] [三台服务器]
# mkdir /opt/modules/
# mkdir /opt/softwares/
# chown bigdata:bigdata /opt/modules/
# chown bigdata:bigdata /opt/softwares/

# su - bigdata
$ tar -vzxf /opt/softwares/jdk-7u67-linux-x64.tar.gz -C /opt/modules/
环境变量    [root用户] [三台服务器]
# vi /etc/profile
## JAVA HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version

[bigdata用户]第一台安装,拷贝jdk目录给后面两台服务器
# mkdir /opt/modules/
# chown bigdata:bigdata /opt/modules/
# su - bigdata
$ scp -r jdk1.7.0_79/ node1:/opt/modules/
$ scp -r jdk1.7.0_79/ node2:/opt/modules/

六、 安装配置Hadoop
[bigdata用户] [01服务器]
$ tar -zvxf /opt/softwares/hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/
1、修改JAVA_HOME
hadoop-env.sh yarn-env.sh mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67

2、修改core-site.xml
        <property>
            <name>fs.defaultFSname>
            <value>hdfs://master:8020value>
        property>

        <property>
            <name>hadoop.tmp.dirname>
            <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/datavalue>
        property>
3、修改slaves      --声明哪些服务器是datanode
```
    bigdata01.com
    bigdata02.com
    bigdata03.com
    4、修改hdfs-site.xml
    ```
    <property>
        <name>dfs.replicationname>
        <value>3value>  
    property>
        
      <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>slave02:50090value>
    property>
    
    <property>
        <name>dfs.namenode.http-addressname>
        <value>master01:50070value>
    property>
        
    <property>
        <name>dfs.permissions.enabledname>
        <value>falsevalue>
    property>
5、修改yarn-site.xml
```

    yarn.resourcemanager.hostname
    bigdata02.com


    yarn.nodemanager.aux-services
    mapreduce_shuffle


    yarn.log-aggregation-enable
    true

    
    yarn.log-aggregation.retain-seconds
    86400

    6、修改mapred-site.xml

    mapreduce.framework.name
    yarn


    mapreduce.jobhistory.address
    bigdata01.com:10020

    
    mapreduce.jobhistory.webapp.address
    bigdata01.com:19888


7、拷贝hadoop安装目录给其他服务器
    $ rm -rf share/doc/ --删除doc帮助文档,减少scp copy文件的时间
    $ scp -r hadoop-2.5.0-cdh5.3.6/ node1:/opt/modules/
    $ scp -r hadoop-2.5.0-cdh5.3.6/ node2:/opt/modules/

8、启动Hadoop  [bigdata用户]
```     在01上:
        $ bin/hdfs namenode -format
        $ sbin/start-dfs.sh            --启动HDFS
        $ sbin/mr-jobhistory-daemon.sh start historyserver
        在02上:
        $ sbin/start-yarn.sh           --启动YARN
    master:
        3202 JobHistoryServer
        2865 NameNode
        2985 DataNode
        3428 Jps
        3311 NodeManager
    node1:
        2714 Jps
        2680 NodeManager
        2584 ResourceManager
        2470 DataNode
    node2:
        2569 NodeManager
        2686 Jps
        2393 DataNode
        2487 SecondaryNameNode


    三种启动方式
        第一种:
        $ sbin/hadoop-daemon.sh start namenode
        ...
        第二种:
        $ sbin/start-dfs.sh
        $ sbin/start-yarn.sh
        第三种:
        $ sbin/start-all.sh
        第四种:shell脚本启动

你可能感兴趣的:(大数据)