Hadoop分布式安装步骤 --实战

                                 Hadoop全分布式架构图

目录

                                 Hadoop全分布式架构图

一.永久关闭防火墙

二.配置主机名

1.编辑network文件:vim /etc/sysconfig/network

2.将HOSTNAME属性改为指定的主机名,

3.让network文件重新生效:source /etc/sysconfig/network

三.配置hosts文件,将主机名和ip地址进行映射

1.编辑hosts文件:vim /etc/hosts

2.将主机名和ip地址对应,

四.配置ssh进行免密互通

1.生成自己的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下:ssh-keygen

2.把生成的公钥拷贝到远程机器上,

五.重启Linux让主机名的修改生效:reboot

六.安装JDK

七.上传或者下载Hadoop安装包到Linux中

八.解压安装包tar -xvf hadoop-2.7.1_64bit.tar.gz

九.adoop的安装目录的子目录etc/hadoop

十.配置hadoop-env.sh

1.编辑hadoop-env.sh:vim hadoop-env.sh

2.修改JAVA_HOME的路径,修改成具体的路径。

1. cat /etc/profile   查看所有的配置文件路径

3.修改HADOOP_CONF_DIR的路径,修改为具体的路径,

4.保存退出文件

5.重新加载生效:

十一.编辑core-site.xml,添加如下内容:

十二.编辑hdfs-site.xml

十三.编辑mapred-site.xml

十四.编辑yarn-site.xml

十五.编辑slaves

十六.拷贝到其他节点上

十七.配置环境变量 vim/etc/profile

十八.启动zookeeper

十九.格式化zookeeper:

二十.启动JournalNode:

二十一.在第一台节点上格式化NameNode:

二十二.在第一台节点上启动NameNode:

二十三.在第二台节点上格式化NameNode:

二十四.在第二台节点上启动NameNode:

二十五.在三台节点上启动DataNode:

二十六.在第一台节点和第二节点上启动zkfc(FailoverController):

1.效果图

二十七.在第一个节点上启动Yarn:

二十八.在第三个节点上启动ResourceManager:

二十九.启动、关闭

1.start-all.sh 启动服务

2.stop-all.sh  关闭服务


 

最少需要三个虚拟机,或者十三个云主机

一.永久关闭防火墙

已经关闭,忽略

 

二.配置主机名

需要注意的是Hadoop的集群中的主机名不能有_。如果存在_会导致Hadoop集群无法找到这群主机,从而无法启动!

1.编辑network文件:vim /etc/sysconfig/network

2.将HOSTNAME属性改为指定的主机名,

3.让network文件重新生效:source /etc/sysconfig/network

 

三.配置hosts文件,将主机名和ip地址进行映射

1.编辑hosts文件:vim /etc/hosts

2.将主机名和ip地址对应,

 

四.配置ssh进行免密互通

1.生成自己的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下:ssh-keygen

2.把生成的公钥拷贝到远程机器上,

格式为:ssh-copy-id [user]@host,例如:ssh-copy-id root@hadoop01

 

五.重启Linux让主机名的修改生效:reboot

 

六.安装JDK

 

七.上传或者下载Hadoop安装包到Linux中

 

八.解压安装包tar -xvf hadoop-2.7.1_64bit.tar.gz

 

九.adoop的安装目录的子目录etc/hadoop

配置Hadoop:cd hadoop2.7.1/etc/hadoop

 

十.配置hadoop-env.sh

1.编辑hadoop-env.sh:vim hadoop-env.sh

2.修改JAVA_HOME的路径,修改成具体的路径。

1. cat /etc/profile   查看所有的配置文件路径

//home/presoftware/jdk1.8

例如:export JAVA_HOME=/home/presoftware/jdk1.8

3.修改HADOOP_CONF_DIR的路径,修改为具体的路径,

例如:export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop

4.保存退出文件

:wq

5.重新加载生效:

source hadoop-env.sh

 

十一.编辑core-site.xml,添加如下内容:

	<!--指定hdfs的nameservice,为整个集群起一个别名-->
	<property>
	    <name>fs.defaultFS</name>                
	    <value>hdfs://ns</value>
	</property>
	<!--指定Hadoop数据临时存放目录-->
	<property>
	    <name>hadoop.tmp.dir</name>
	    <value>/home/software/hadoop-2.7.1/tmp</value>
	</property> 
	<!--指定zookeeper的存放地址-->
	<property>
	    <name>ha.zookeeper.quorum</name>
	    <value>liuyong:2181,liuyong01:2181,liuyong02:2181</value>

</property> 

十二.编辑hdfs-site.xml

	<!--执行hdfs的nameservice为ns,注意要和core-site.xml中的名称保持一致-->
	<property>
	    <name>dfs.nameservices</name>
	    <value>ns</value>
	</property>
	<!--ns集群下有两个namenode,分别为nn1, nn2-->
	<property>
	    <name>dfs.ha.namenodes.ns</name>
	    <value>nn1,nn2</value>
	</property>
	<!--nn1的RPC通信-->
	<property>
	    <name>dfs.namenode.rpc-address.ns.nn1</name>
	    <value>hadoop01:9000</value>
	</property>
	<!--nn1的http通信-->
	<property>
	    <name>dfs.namenode.http-address.ns.nn1</name>
	    <value>hadoop01:50070</value>
	</property>
	<!-- nn2的RPC通信地址 -->
	<property>
	    <name>dfs.namenode.rpc-address.ns.nn2</name>
	    <value>hadoop02:9000</value>
	</property>
	<!-- nn2的http通信地址 -->
	<property>
	    <name>dfs.namenode.http-address.ns.nn2</name>
	    <value>hadoop02:50070</value>
	</property>
	<!--指定namenode的元数据在JournalNode上存放的位置,这样,namenode2可以从journalnode集群里的指定位置上获取信息,达到热备效果-->
	<property>
	    <name>dfs.namenode.shared.edits.dir</name>
	    <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns</value>
	</property>
	<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
	<property>
	    <name>dfs.journalnode.edits.dir</name>
	    <value>/home/software/hadoop-2.7.1/tmp/journal</value>
	</property>
	<!-- 开启NameNode故障时自动切换 -->
	<property>
	    <name>dfs.ha.automatic-failover.enabled</name>
	    <value>true</value>
	</property>
	<!-- 配置失败自动切换实现方式 -->
	<property>
	    <name>dfs.client.failover.proxy.provider.ns</name>
	    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<!-- 配置隔离机制 -->
	<property>
	    <name>dfs.ha.fencing.methods</name>
	    <value>sshfence</value>
	</property>
	<!-- 使用隔离机制时需要ssh免登陆 -->
	<property>
	    <name>dfs.ha.fencing.ssh.private-key-files</name>
	    <value>/root/.ssh/id_rsa</value>
	</property>
	<!--配置namenode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
	<property>    
	    <name>dfs.namenode.name.dir</name>    
	    <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/name</value>    
	</property>    
	<!--配置datanode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
	<property>    
	    <name>dfs.datanode.data.dir</name>    
	    <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/data</value>    
	</property>
	<!--配置复本数量-->    
	<property>    
	    <name>dfs.replication</name>    
	    <value>3</value>    
	</property>   
	<!--设置用户的操作权限,false表示关闭权限验证,任何用户都可以操作-->                                                                    
	<property>    
	    <name>dfs.permissions</name>    
	    <value>false</value>    
	</property>  

十三.编辑mapred-site.xml

复制一份mapred-site.xml

<property>    

    <name>mapreduce.framework.name</name>    

    <value>yarn</value>    

</property>

 

十四.编辑yarn-site.xml

<!--配置yarn的高可用-->

<property>

    <name>yarn.resourcemanager.ha.enabled</name>

    <value>true</value>

</property>

<!--指定两个resourcemaneger的名称-->

<property>

    <name>yarn.resourcemanager.ha.rm-ids</name>

    <value>rm1,rm2</value>

</property>

<!--配置rm1的主机-->

<property>

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

    <value>hadoop01</value>

</property>

<!--配置rm2的主机-->

<property>

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

    <value>hadoop03</value>

</property>

<!--开启yarn恢复机制-->

<property>

    <name>yarn.resourcemanager.recovery.enabled</name>

    <value>true</value>

</property>

<!--执行rm恢复机制实现类-->

<property>

    <name>yarn.resourcemanager.store.class</name>

    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>

</property>

<!--配置zookeeper的地址-->

<property>

    <name>yarn.resourcemanager.zk-address</name>

    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

</property>

<!--执行yarn集群的别名-->

<property>

    <name>yarn.resourcemanager.cluster-id</name>

    <value>ns-yarn</value>

</property>

<!-- 指定nodemanager启动时加载server的方式为shuffle server -->

<property>    

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

    <value>mapreduce_shuffle</value>    

</property>  

<!-- 指定resourcemanager地址 -->

<property>

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

    <value>hadoop03</value>

</property>

十五.编辑slaves

一个节点配置完成

 

十六.拷贝到其他节点上

 

十七.配置环境变量 vim/etc/profile

source /etc/profile

 

十八.启动zookeeper

保证zookeeper集群启动,无误

十九.格式化zookeeper:

hdfs zkfc -formatZK   在第一个节点启动

无报错信息   说明配置无误

 

二十.启动JournalNode:

hadoop-daemon.sh start journalnode

需要在三个节点都启动

 

二十一.在第一台节点上格式化NameNode:

hadoop namenode -format    确定第一个为主节点

 

二十二.在第一台节点上启动NameNode:

hadoop-daemon.sh start namenode   能查看到NameNode已经启动

 

二十三.在第二台节点上格式化NameNode:

hdfs namenode -bootstrapStandby    备份NameNode  独立格式化

 

二十四.在第二台节点上启动NameNode:

hadoop-daemon.sh  start namenode

 

二十五.在三台节点上启动DataNode:

hadoop-daemon.sh start datanode  三台一起启动

 

二十六.在第一台节点和第二节点上启动zkfc(FailoverController):

hadoop-daemon.sh start zkfc    设置NameNode的节点启动

1.效果图

在客户端启动:

二十七.在第一个节点上启动Yarn:

start-yarn.sh

之前会出现一个需要输入密码问题的错误,是因为我的免密登录,没有部署成功,导致后期,多次初始化NameNode造成的ID冲突,把根目录下的Tmp目录里面的数据全部清空,重新配置即可

下面这个问题  把对应的进程杀死,即可

实现效果图

二十八.在第三个节点上启动ResourceManager:

yarn-daemon.sh start resourcemanager

 

二十九.启动、关闭

1.start-all.sh 启动服务

2.stop-all.sh  关闭服务

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值