大数据-hadoop-初探03

**# ### 一、完全分布式的安装**
1、集群规划
角色分配


组件         PC1 PC2                          PC3
HDFS  Namenode     SecondaryNamenode
        Datanode       Datanode         Datanode
Yarn                            RecourceManager
        Nodemanager   Nodemanager        Nodemanager
Histrory  HistroryServer


2、基本环境准备
2.1系统和软件【3台】
CentOS 6.5    hadoop 2.5.0     jdk1.70—67
2.2 配置IP和DNS(root)
配置静态IP
DNS
//检查主机映射
$ cat /etc/hostscat


//检查主机名
$cat /etc/sysconfig/network


//检查IP和DNS
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0


2.3关闭防火墙 (3台) (root)
# service iptables stop
# chkconfig iptables off


关闭Linux安全子系统
# vi /etc/sysconfig/selinux 


2.4创建相同普通用户名和密码 【3台】
# useradd hadoop
# echo 123456 | passwd --stdin hadoop


2.5配置主机映射   【三台都需要需要添加】
# vi /etc/hosts
192.168.7.9 hadoop.senior01
192.168.7.10  hadoop.senior02
192.168.7.11 hadoop.senior03


2.6卸载自带的jdk
# rpm -qa | grep jdk
# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

配置Java环境变量
# vi /etc/profile


#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

生效配置
source /etc/profile


检查Java环境变量
java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)


二、配置NTP服务
*.把PC1作为整个集群的时间同步服务器
*.集群中所有其他服务器都来这台服务器PC1同步时间
1.检查每台服务器所在的时区
  $ date -R
Thu, 23 Mar 2017 11:13:57 +0800


如果不是+800,如要通过如下命令调整
#  rm  -rf /etc/localtime        ---如果时区不是+0800
# ln -s /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime


2.安装ntp服务
# rpm -qa | grep ntp      --查看ntp软件包是否已安装
ntp-4.2.6p5-1.el6.centos.x86_64
ntpdate-4.2.6p5-1.el6.centos.x86_64


# yum  -y install ntp     --如果没有那就需要安装ntp


3.修改ntp的配置文件(PC1)
# vi /etc/ntp.conf
去掉第18行的# 修改成自己的网段
restrict 192.168.7.0 mask 255.255.255.0 nomodify notrap
注释掉以下几行(22行)
#server 0.centos.pool.ntp.org iburst
     #server 1.centos.pool.ntp.org iburst
     #server 2.centos.pool.ntp.org iburst
     #server 3.centos.pool.ntp.org iburst


     CentsOS6.4 去掉注释第35 36行
     CentsOS6.5 去手动添加以下内容
     server 127.127.1.0     #local clock
     fudge 127.127.1.0  stratum 10


     4、启动ntp服务(默认式开始)PC1 root用户操作
     # service ntpd start
     # chkconfig ntopd on
     # sudo chkconfig ntpd on


     5、同步服务器的时间(PC1)
     # ntpdate cn.pool.ntp.org    -->操作这一步时关闭ntp服务
23 Mar 11:36:56 ntpdate[26856]: step time server 173.255.246.13 offset -12.240613 sec

6、如果另外两台的ntp的进程开启,那么需要关闭
# service ntpd stop
# chkconfig ntpd off


7.第2、3台向第一台同步时间
# ntpdate hadoop.senior01
16 Feb 17:43:27 ntpdate[2554]: adjust time server 192.168.7.9 offset -0.001412 sec


8.制定周期性时间同步计划任务(PC2、PC3定时向PC1手动同步时间)
在PC2 PC3每10分钟同步一次时间
# crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop.senior01

[注意]:如果确实无法向第一台同步时间,请在交互窗口(可以同时设置3台时间)执行手动设置时间
# date -s "16:10:00 2018/3/13"
date -s "18:25:00 2018/3/13"
三、配置SSH免密钥登录
使用ssh登录的时候不需要用户名密码
$ sbin/start-dfs.sh

$ ssh-keygen   
*  回车,生产当前主机的公钥和私钥


//分发密钥(要向3台都发送)
$ ssh-copy-id hadoop.senior01
$ ssh-copy-id hadoop.senior02
$ ssh-copy-id hadoop.senior03


(PC1~PC3)
$ ssh-keygen
$ ssh-copy-id hadoop.senior01 
$ ssh-copy-id hadoop.senior02 
$ ssh-copy-id hadoop.senior03


分发完成之后会在用户主目录下.ssh目录生成以下文件
$ ls .ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts


测试失败,需要先删除.ssh目录,重做一遍


四、安装Hadoop
1.下载上传到Linux并解压hadoop的.tar.gz
$ tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/


2.删除${HADOOP_HOME}/share/doc
$ rm -rf doc/


3.配置java环境支持在${HADOOP_HOME}/etc/hadoop
在hadoop-env.sh   mapred-env.sh   yarn-env.sh中配置


export JAVA_HOME=/opt/modules/jdk1.7.0_67


4.配置slaves(集群中所有的主机)
hadoop.senior01
hadoop.senior02
hadoop.senior03


5.=======core-site.xml===


fs.defaultFS
hdfs://hadoop.senior01:8020




hadoop.tmp.dir
/opt/modules/hadoop-2.5.0/data





=============hdfs-site.xml==========


        dfs.replication
        3
   




        dfs.namenode.secondary.http-address
        hadoop.senior02:50090
   




   
        dfs.namenode.http-address
        hadoop.senior01:50070




        dfs.permissions.enabled
        false
   



=================mapred-site.xml=======

        mapreduce.framework.name
        yarn
   



        mapreduce.jobhistory.address
        hadoop.senior01:10020
   



        mapreduce.jobhistory.webapp.address
        hadoop.senior01:19888
   



================yarn-site.xml======

        yarn.resourcemanager.hostname
        hadoop.senior03
   



        yarn.nodemanager.aux-services
        mapreduce_shuffle
   



        yarn.log-aggregation-enable
        true
   



        yarn.log-aggregation.retain-seconds
        86400
   

    ===============================


    5.配置slaves
hadoop.senior01
hadoop.senior02
hadoop.senior03


【注意事项】:
1.slaves中配置集群中所有的主机名
2.所有节点上的配置文件内容都是一样的(联盟模式例外)
3.要按照集群规划配置所属进程


五、(PC1)分发hadoop(已经配置好的)目录到其他两台(PC2和PC3)服务器上
scp -r PC1的hadoop目录(带路径) PC2:/要复制到的目录


$ scp -r /opt/modules/hadoop-2.5.0/ hadoop.senior02:/opt/modules/


 $ scp -r /opt/modules/hadoop-2.5.0/ hadoop.senior03:/opt/modules/


 六、格式b化Namenode 
 在PC1上的${HADOOP_HOME}/bin
 $ bin/hdfs namenode -format


【注意】
1.先将PC1的hadoop配置目录分发到PC2和PC3
2.保证3台上的配置内容一模一样
3.先确保将3台之前残留的data 和 logs删除掉
4.最后格式化








 七、启动进程
  在PC1上使用如下命令启动HDFS
  $ sbin/start-dfs.sh


  在PC3上使用如下命令启动YARN
  $ sbin/start-yarn.sh


  停止进程
  在PC1上使用如下命令停止HDFS
  $ sbin/stop-dfs.sh


  在PC3上使用如下命令停止YARN
  $ sbin/stop-yarn.sh


【注意】
修改任何配置文件,请先停止所有进程,然后重新启动


八、检查启动是否正常
3台上jps查看进程,参考之前的集群规划


PC1:
28626 DataNode
28883 NodeManager
28989 Jps
28531 NameNode




PC2:
7528 DataNode
7826 Jps
7717 NodeManager
7583 SecondaryNameNode


PC3
7622 NodeManager
7922 Jps
7527 ResourceManager
7405 DataNode


 

你可能感兴趣的:(hadoop,hadoop,big,data,大数据)