hadoop集群搭建

--------------------------------↓集群搭建步骤↓----------------------------------
ip:192.168.2.201 dns:192.168.2.2
--------------------------↓克隆虚拟机步骤↓------------------------------
1.    vim /etc/sysconfig/network-scripts/ifcfg-eth0  修改ip等
    克隆出来的虚拟机需要删除uuid和hwaddr

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPADDR=192.168.2.201
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
DNS1=192.168.2.2
GATEWAY=192.168.2.2
NAME="System eth0"

    vim /etc/hosts 配置映射

192.168.2.201 hadoop01
192.168.2.202 hadoop02
192.168.2.203 hadoop03
192.168.2.204 hadoop04

-----------------------------------------------------------------------------------
2.    修改主机名
    vim /etc/sysconfig/network   

    网卡地址:
    vim /etc/udev/rules.d/70-persistent-net.rules  删除eth0(dd)  改eth1为eth0
--------------------------↑克隆虚拟机步骤↑------------------------------


-----------------------------------------------------------------------------------
3.    修改用户权限 root  vi /etc/sudoers      
root      ALL=(ALL)  ALL
mx      ALL=(ALL)  ALL
-----------------------------------------------------------------------------------
4.     关闭防火墙  
sudo service iptables stop 

chkconfig iptables off   防火墙开机自闭
-----------------------------------------------------------------------------------
5.     sudo vi /etc/selinux/config  
        
SELINUX=disabled
-----------------------------------------------------------------------------------
6.    修改启动级别为3   
sudo vi /etc/inittab
尾行数字改为3

reboot
-----------------------------------------------------------------------------------
7.    [mx@hadoop01 ~]$:设置免密登录 

各个节点:

1)生成密钥对
ssh-keygen  回车*3

2)发送公钥
ssh-copy-id  hadoop01
ssh-copy-id  hadoop02
ssh-copy-id  hadoop03
ssh-copy-id  hadoop04

3)测试免密
ssh hadoop01
ssh hadoop02
ssh hadoop03  
-----------------------------------------------------------------------------------
8.    安装jdk  
1)查看是否安装jdk
   rpm -qa | grep -i jdk

2)卸载jdk  
   rpm -e 程序
   rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64

3)传文件、解压    
    tar -zxvf tar.gz -C 目录
    tar -zxvf jdk-8u73-linux-x64.tar.gz -C 存放路径(例:cd->mkdir apps-> apps/)
4)配置环境变量
   添加一个软链接  便于版本更新  不用重新配置环境变量 只需改变链接指向的方向
    cd /home/mx/apps

    ln -s jdk1.8.0_73 jdk

    vim   /etc/profile
尾行加上:
export JAVA_HOME=/home/mx/apps/jdk
export PATH=$JAVA_HOME/bin:$PATH 
   
加载环境变量
    source /etc/profile 
查看jdk版本    
    java -version
================================================================
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
================================================================
-----------------------------------------------------------------------------------
9.    时间同步:
[mx@hadoop01 ~]$ sudo ntpdate ntp1.aliyun.com
-----------------------------------------------------------------------------------
10.    上传hadoop压缩包    
    rz hadoop-2.7.6.tar.gz

    解压
    tar -xvzf hadoop-2.7.6.tar.gz -C apps/

    修改配置文件:

    1)cd /home/mx/apps/hadoop-2.7.6/etc/hadoop
    vi hadoop-env.sh
    export JAVA_HOME=/home/mx/apps/jdk

    2)cd /home/mx/apps/hadoop-2.7.6/etc/hadoop 
    vi core-site.xml
    添加配置文件
=================================================
前提:    hadoop01为namenode节点
    hadoop02为secondarynamenode节点
    hadoop03为ResourceManager节点
=================================================
=========================================================================================
<configuration>
<property>
<!--配置的hdfs的主节点namenode的通信地址   url   mysql:jdbc://localhost:3306   hdfs://主节点的主机名:端口号
  默认端口号9000-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!--配置hadoop启动和运行过程中的相关数据 数据是hadoop的核心数据  不能丢失  这个目录一定要配置 如果不配置则在
/tmp-->
<name>hadoop.tmp.dir</name>
<value>/home/mx/data/hadoopdata</value>
</property>
</configuration>
=========================================================================================
    3)cd /home/mx/apps/hadoop-2.7.6/etc/hadoop
    
    sudo vi hdfs-site.xml
=========================================================================================
<configuration>

<property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/mx/data/hadoopdata/name</value>
        <description>配置的是namenode的相关数据信息存储的目录</description>
</property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/mx/data/hadoopdata/data</value>
        <description>datanode 的数据存储目录</description>
</property>

<property>
        <name>dfs.replication</name>
        <value>3</value>
        <description>HDFS 的数据块的副本存储个数</description>
</property>

<property>
        <name>dfs.secondary.http.address</name>
        <value>hadoop02:50090</value>
        <description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>

</configuration>
=========================================================================================    
    4)cd /home/mx/apps/hadoop-2.7.6/etc/hadoop
.template为临时文件
    cp mapred-site.xml.template mapred-site.xml
sudo vi mapred-site.xml
=========================================================================================
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>mapreduce的程序运行的时候使用的资源调度框架  mersos  我们这里使用yarn做资源调度</description>
</property>
=========================================================================================
    5)yarn-site.xml  配置的是yarn的相关信息
    sudo vi yarn-site.xml
=========================================================================================
<property>                                <name>yarn.resourcemanager.hostname</name>                    <value>hadoop03</value>                            
<description>制定resourcemanager的节点</description>    
</property>                                
<property>                             <name>yarn.nodemanager.aux-services</name>                    <value>mapreduce_shuffle</value>                        <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>

    6)vi slaves
添加以下内容 不要多余空格换行!!!
=========
hadoop01
hadoop02
hadoop03
hadoop04
=========

----------------------------------
bin:hadoop的相关命令的脚本
sbin:hadoop的启动  停止脚本
etc:hadoop的配置文件
lib:hadoop的所有的依赖包  
share:公共的参考文档 或 jar包
----------------------------------

-----------------------------------------------------------------------------------
11.    1)配置环境变量
    vi /etc/profile

export HADOOP_HOME=/home/mx/apps/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    2)将hadoop的安装包远程发送

    scp -r /home/mx/apps/hadoop-2.7.6  hadoop02:/home/mx/apps/

    scp -r /home/mx/apps/jdk1.8.0_73   hadoop02:/home/mx/apps/

    scp /etc/profile hadoop02:/etc

    3)cd /home/mx/apps
       
    ①全部创建软链接
    ln -s hadoop-2.7.6 hadoop
    ln -s jdk1.8.0_73 jdk

    ②加载环境变量
    source /etc/profile

    ③查看hadoop版本
    hadoop version

    4)格式化namenode  在namenode所在节点执行 即hadoop01

hadoop namenode -format
注意:格式化一定要成功之后才可以启动  如果不成功  修正错误   再次执行格式化命令直到成功

格式化成功两次datanode无法启动的解决办法:
================================================================
1.关闭集群                            |
stop-dfs.sh    stop-yarn.sh                    |
2.删除各个节点上的data目录----配置文件hdfs-site.xml中指定的目录    |
rm -rf data                            |
3.重新格式化                            |
hadoop namenode -format                        |
4.启动集群                            |
start-dfs.sh    start-yarn.sh                    |
================================================================

    5)启动集群
任意节点:start-dfs.sh
yarn主节点:start-yarn.sh
    启动yarn:最好在yarn的主节点执行  否则会造成resourcemanager启动失败

网页访问验证:
    hdfs的网页:    namenode主机名:50070
            hadoop01:50070
    yarn的网页:    resourcemanager的主机名:8088
            hadoop03:8088
    6)关闭集群
任意节点:stop-dfs.sh
最好yarn的主节点:stop-yarn.sh
    再次进行启动的时候  不需要再进行格式化

补充:
  1)集群启动过程中某些进程启动不了
    1)停掉重启   暴力
    stop-dfs.sh
    stop-yarn.sh
    2)缺失哪一个进程  启动哪一个进程
    hadoop-daemon.sh  单独启动hdfs的相关进程(namenode  datanode secondarynamenode)
    hadoop-daemon.sh start namenode
    hadoop-daemon.sh start datanode
    hadoop-daemon.sh start secondarynamenode
    yarn-daemon.sh   单独启动yarn的相关进程的(resourcemanager nodemanager)
    yarn-daemon.sh start resourcemanager
    yarn-daemon.sh start nodemanager
    
    如果单独启动或重启之后仍然启动不了,这个时候查看日志文件:
    starting datanode, logging to 
    /home/mx/apps/hadoop-2.7.6/logs/hadoop-hadoop-datanode-hadoop01.out
    hadoop(hdfs模块 该日志文件启动的进程的归属模块)-hadoop(集群启动的linux用户名)-datanode(启动的哪一个进程)-hadoop01(进程启动的节点的主机名).log
    每个节点上启动的相关进程的日志文件  只保存在本节点
    判断一个集群启动是否有问题?最终肯定日志文件最准

--------------------------------↑集群搭建步骤↑----------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值