Linux大数据开发centos7中的hadoop开发环境完全分布式搭建

主机名:

shi1
shi2
shi3

Hadoop安装包版本:

hadoop-2.7.5.tar.gz

Hadoop安装位置

/opt/hadoop

环境变量位置

/etc/profile.d/hadoop-etc.sh

1. 解压安装包

tar -zxvf hadoop-2.7.5.tar.gz -C /opt

2. 重命名解压出来的安装包

mv hadoop-2.7.5.tar.gz hadoop

3. 添加Hadoop环境变量

vi /etc/profil.d/hadoop-etc.sh

添加以下内容

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4. 使Hadoop环境变量生效

source /etc/profil.d/hadoop-etc.sh

5. 修改hadoop-env.sh中的 jdk 地址

vi /opt/hadoop/etc/hadoop/hadoop-env.sh

修改
将上边的箭头位置内容修改为下边的内容

export JAVA_HOME=/opt/jdk

6. 在yarn-env.sh中添加数据

vi /opt/hadoop/etc/hadoop/yarn-env.sh

添加以下内容

export JAVA_HOME=/opt/jdk

7. 修改hdfs-site.xml

vi /opt/hadoop/etc/hadoop/hdfs-site.xml

添加以下内容

<configuration>

	<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
		<property>
			<name>dfs.nameservices</name>
			<value>ns1</value>
		</property>

	<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
		<property>
			<name>dfs.ha.namenodes.ns1</name>
			<value>nn1,nn2</value>
		</property>

	<!-- nn1的RPC通信地址 -->
		<property>
			<name>dfs.namenode.rpc-address.ns1.nn1</name>
			<value>shi1:9000</value>
		</property>

	<!-- nn1的http通信地址 -->
		<property>
			<name>dfs.namenode.http-address.ns1.nn1</name>
			<value>shi1:50070</value>
		</property>
		
	<!-- nn2的RPC通信地址 -->
		<property>
			<name>dfs.namenode.rpc-address.ns1.nn2</name>
			<value>shi2:9000</value>
		</property>
		
	<!-- nn2的http通信地址 -->
		<property>
			<name>dfs.namenode.http-address.ns1.nn2</name>
			<value>shi2:50070</value>
		</property>

	<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
		<property>
			<name>dfs.namenode.shared.edits.dir</name>
			<value>qjournal://shi1:8485;shi2:8485;shi3:8485/ns1</value>
		</property>

	<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
		<property>
			<name>dfs.journalnode.edits.dir</name>
			<value>/opt/hadoop-repo/journal</value>
		</property>
		<property> 
			<name>dfs.namenode.name.dir</name> 
			<value>/opt/hadoop-repo/name</value> 
		</property> 
		<property> 
			<name>dfs.datanode.data.dir</name> 
			<value>/opt/hadoop-repo/data</value> 
		</property> 

	<!-- 开启NameNode失败自动切换 -->
		<property>
			<name>dfs.ha.automatic-failover.enabled</name>
			<value>true</value>
		</property>

	<!-- 配置失败自动切换实现方式 -->
		<property>
			<name>dfs.client.failover.proxy.provider.ns1</name>			
			<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
		</property>

	<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
		<property>
			<name>dfs.ha.fencing.methods</name>
			<value>
			   sshfence
			   shell(/bin/true)
			</value>
		</property>

	<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
		<property>
			<name>dfs.ha.fencing.ssh.private-key-files</name>
			<value>/root/.ssh/id_rsa</value>
		</property>

	<!-- 配置sshfence隔离机制超时时间 -->
		<property>
			<name>dfs.ha.fencing.ssh.connect-timeout</name>
			<value>30000</value>
		</property>
 <property>
        <name>dfs.ha.automatic-failover.enabled.ns</name>
        <value>true</value>
    </property>
    
	</configuration>

8. 修改core-site.xml

vi /opt/hadoop/etc/hadoop/core-site.xml

添加以下内容

<configuration>

	<!-- 指定hdfs的nameservice为ns1 -->
		<property>
			<name>fs.defaultFS</name>
			<value>hdfs://ns1</value>
		</property>

	<!-- 指定hadoop临时目录 -->
		<property>
			<name>hadoop.tmp.dir</name>
			<value>/opt/hadoop-repo/tmp</value>
		</property>

	<!-- 指定zookeeper地址 -->
		<property>
			<name>ha.zookeeper.quorum</name>
			<value>shi1:2181,shi2:2181,shi3:2181</value>
		</property>

</configuration>

9. 复制mapred-site.xml.template并重命名为mapred-site.xml然后修改mapred-site.xml

cp /opt/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/etc/hadoop/mapred-site.xml
vi /opt/hadoop/etc/hadoop/mapred-site.xml

添加以下内容

<configuration>

<!-- mr依赖的框架名称 yarn-->
                <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                </property>

<!-- 会在hdfs的根目录下面创建一个history的文件夹,存放历史任务的相关运行情况--> 
                <property>
                        <name>yarn.app.mapreduce.am.staging-dir</name>
                        <value>/history</value>
                </property>

<!-- map和reduce的日志级别--> 
                <property>
                        <name>mapreduce.map.log.level</name>
                        <value>INFO</value>
                </property>
                <property>
                        <name>mapreduce.reduce.log.level</name>
                        <value>INFO</value>
                </property>    

</configuration>

10. 修改yarn-site.xml

vi /opt/hadoop/etc/hadoop/yarn-site.xml

添加以下内容

<configuration>

	<!-- 开启RM高可靠 -->
		<property>
		   <name>yarn.resourcemanager.ha.enabled</name>
		   <value>true</value>
		</property>

	<!-- 指定RM的cluster id -->
		<property>
		   <name>yarn.resourcemanager.cluster-id</name>
		   <value>yrc</value>
		</property>

	<!-- 指定RM的名字 -->
		<property>
		   <name>yarn.resourcemanager.ha.rm-ids</name>
		   <value>rm1,rm2</value>
		</property>

	<!-- 分别指定RM的地址 -->
		<property>
		   <name>yarn.resourcemanager.hostname.rm1</name>
		   <value>shi2</value>
		</property>
		<property>
		   <name>yarn.resourcemanager.hostname.rm2</name>
		   <value>shi3</value>
		</property>

	<!-- 指定zk集群地址 -->
		<property>
		   <name>yarn.resourcemanager.zk-address</name>
		   <value>shi1:2181,shi2:2181,shi3:2181</value>
		</property>
		<property>
		   <name>yarn.nodemanager.aux-services</name>
		   <value>mapreduce_shuffle</value>
		</property>

</configuration>

11. 修改配置hdfs中的从节点

vi /opt/hadoop/etc/hadoop/slaves

原有的全部删除,然后修改为以下内容

shi2
shi3

12. 同步hadoop到集群其他机器

scp -r /opt/hadoop/ lky02:/opt/
scp -r /opt/hadoop/ lky03:/opt/

13. 同步hadoop-repo到集群其他机器

 scp -r /opt/hadoop-repo/ lky02:/opt/
scp -r /opt/hadoop-repo/ lky03:/opt/

14. 同步hadoop环境变量到集群其他机器

scp -r /etc/profile.d/hadoop-etc.sh lky02:/etc/profile.d/
scp -r /etc/profile.d/hadoop-etc.sh lky03:/etc/profile.d/

15. 在第二、三台机器上执行命令使Hadoop环境变量生效

source /etc/profile.d/hadoop-etc.sh

16. 三台机器都启动zk服务

zkServer.sh start

17. 三台机器上都启动journalnode

hadoop-daemon.sh start journalnode

在这里插入图片描述

18. 在第一台机器上执行格式化

hdfs namenode -format

19. 同步hadoop-repo到其他机器上

scp -r /opt/hadoop-repo/ lky02:/opt/
scp -r /opt/hadoop-repo/ lky03:/opt/

20. 在第一台机器上格式化zkfc

hdfs zkfc -formatZK

21. 启动Hadoop

在lky01上面执行start-dfs.sh

在lky02上面执行start-yarn.sh

在lky03上面执行yarn-daemon.sh start resourcemanager

22. 服务验证

在物理机或VM上用浏览器访问hadoop web服务:http://ip:50070
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38774450/article/details/109020654