Hadoop集群部署(附集群启停脚本)

Hadoop集群部署(附集群启停脚本),第1张

Hadoop集群部署(附集群启停脚本) 集群部署规划(Hadoop3.1.3) hadoop1hadoop2hadoop3HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARNNodeManager

ResourceManager

NodeManager

NodeManager

(注意:1、NameNode和SecondaryNameNode不要安装在同一台服务器。2、ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台服务器。)

1.配置/etc/hosts集群名称(三台节点)
10.34.80.51 hadoop1
10.34.80.52 hadoop2
10.34.80.53 hadoop3
2.配置ssh免密登录(hadoop1)

   切换到~家目录 cd ~

   显示隐藏文件 ls -al

   进入.ssh,执行下面命令:

ssh-keygen -t rsa

   按3次回车

   将hadoop1的公钥拷贝到hadoop1(自己也需要拷贝) hadoop2 hadoop3

   ssh-copy-id hadoop1

   ssh-copy-id hadoop2

   ssh-copy-id hadoop3

   hadoop2 hadoop3执行上述两步 *** 作

3.编写集群分发脚本(hadoop1)

   cd到/usr/local/bin/目录下,新建文件xsync,增加下面内容:

#1. 判断参数个数
if [ $# -lt 1 ]
then
        echo Not Enough Arguement!
        exit;
fi 

#2. 遍历集群所有机器                 
for host in hadoop1 hadoop2 hadoop3
do        
    echo ==================== $host ====================       
    #3. 遍历所有目录,挨个发送        
    for file in $@         
    do                   
        #4. 判断文件是否存在                  
        if [ -e $file ]                         
            then                                  
                #5. 获取父目录                                  
                pdir=$(cd -P $(dirname $file); pwd)                                 
                #6. 获取当前文件的名称                                  
                fname=$(basename $file)                                  
                ssh $host "mkdir -p $pdir"                                 
                rsync -av $pdir/$fname $host:$pdir                        
            else                  
                echo $file does not exists!
       fi 
    done
done
4.安装hadoop和jdk(hadoop1)

   下载jdk和hadoop安装包,上传到/opt/module/software/下

   执行tar -zxvf hadoop安装包名 -C /opt/module/

   执行tar -zxvf jdk安装包名 -C /opt/module/

5.使用脚本分发到hadoop2、hadoop3

   cd到/opt/module/下,执行命令:

xsync /hadoop-3.1.3
xsync /jdk1.8.0_212
6.配置jdk和hadoop环境变量(hadoop1)

   /etc/profile.d/下新建文件my_env.sh,增加下面内容:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

   使用脚本分发到hadoop2、hadoop3

xsync /etc/profile.d/my_env.sh

   在所有节点上执行命令使环境变量生效:

source /etc/profile.d/my_env.sh
7.hadoop配置文件说明

      hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

      其中自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径下,用户可以根据项目需求重新进行修改配置。

8.修改自定义配置文件(hadoop1)

     配置core-site.xml


    
	
		fs.defaultFS
		hdfs://hadoop1:8020
	
	
	
		hadoop.tmp.dir
		/opt/module/hadoop-3.1.3/data
	
	
	
		hadoop.http.staticuser.user
		root
	

    配置hdfs-site.xml


	
	
		dfs.namenode.http-address
		hadoop1:9870
	
	
	
		dfs.namenode.secondary.http-address
		hadoop3:9868
	

	
		dfs.permissions
		false
	

     配置yarn-site.xml


	
	
		yarn.nodemanager.aux-services
		mapreduce_shuffle
	
	
	
		yarn.resourcemanager.hostname
		hadoop2
	
	
	
		yarn.nodemanager.env-whitelist
		JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
	

    配置mapred-site.xml 


	
	
		mapreduce.framework.name
		yarn
	

9.配置workers(hadoop1)

   切换到目录hadoop3.1.3/etc/hadoop

   vi workers

   hadoop1

   hadoop2

   hadoop3

10.分发到hadoop2、hadoop3

   切换到目录hadoop3.1.3/etc/下,执行命令:

xsync hadoop
11.启动集群(hadoop1)

   (注意:如果集群是第一次启动,需要在hadoop1节点格式化NameNode,格式化NameNode会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

   切到hadoop3.1.3目录执行下面命令:

hdfs namenode -format

    启动集群命令:

sbin/start-dfs.sh

    启动历史服务器命令:

mapred --daemon start historyserver
12.启动yarn(hadoop2)

   切到hadoop3.1.3目录执行下面命令:

sbin/start-yarn.sh
13.查看hadoop集群启动情况

    1、通过jps命令查看

          hadoop1节点:NameNode、NodeManager、DataNode

          hadoop2节点:ResourceManager、NodeManager、DataNode

          hadoop3节点:SecondaryNameNode、NodeManager、DataNode

    2、通过前端界面查看

          访问yarn界面:http://hadoop2:8088/

          访问hdfs界面:http://hadoop1:9870/

14.hadoop集群启停脚本

   cd到/usr/local/bin/目录下,新建hdp.sh

#! /bin/bash
if [ $# -lt 1 ]
then 
	echo "No Args Input..."
	exit ;
fi
case  in
"start")
	echo "==================启动hadoop集群==================="
	
	echo "------------------启动hdfs------------------"
	ssh hadoop1 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
	echo "------------------启动yarn------------------"
	ssh hadoop2 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
;;
"stop")
	echo "==================关闭hadoop集群=================="
	
	echo "------------------关闭yarn------------------"
	ssh hadoop2 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
	echo "------------------关闭hadoop----------------"
	ssh hadoop1 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
	echo "Input Args Error..."
;;
esac

启动hadoop集群:hdp.sh start

停止hadoop集群:hdp.sh stop

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存