NameNode
DataNode
DataNodeSecondaryNameNode
DataNode
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 hadoop32.配置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 done4.安装hadoop和jdk(hadoop1)
下载jdk和hadoop安装包,上传到/opt/module/software/下
执行tar -zxvf hadoop安装包名 -C /opt/module/
执行tar -zxvf jdk安装包名 -C /opt/module/
5.使用脚本分发到hadoop2、hadoop3cd到/opt/module/下,执行命令:
xsync /hadoop-3.1.3 xsync /jdk1.8.0_2126.配置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.sh7.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
9.配置workers(hadoop1)mapreduce.framework.name yarn
切换到目录hadoop3.1.3/etc/hadoop
vi workers
hadoop1
hadoop2
hadoop3
10.分发到hadoop2、hadoop3切换到目录hadoop3.1.3/etc/下,执行命令:
xsync hadoop11.启动集群(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 historyserver12.启动yarn(hadoop2)
切到hadoop3.1.3目录执行下面命令:
sbin/start-yarn.sh13.查看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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)