赞
踩
目录
在真实的企业环境中,服务器集群会使⽤到多台机器,共同配合,来构建⼀个完整的分布式⽂件系统。⽽在这样的分布式⽂件系统中,HDFS相关的守护进程也会分布在不同的机器上,例如:
平台&&软件 | 说明 |
宿主操作系统 | Windows |
虚拟机操作系统 | Centos7 |
虚拟机软件 |
VMWare
|
虚拟机 |
主机名: shulin1, IP地址: 192.168.10.101
主机名: shulin2, IP地址: 192.168.10.102
主机名: shulin3, IP地址: 192.168.10.103
|
SSH工具 | xshll/xftp |
软件包上传路径
|
/usr/local
|
软件安装路径
|
/usr/local
|
JDK
|
X64: jdk-8u191-linux-x64.tar.gz
|
Hadoop
|
X64: hadoop-3.1.1.tar.gz
|
⽤户
| root |
Namenode | Datenode |
SecondaryNameNode
| |
shulin1 | √ | √ | |
shulin2 | √ | √ | |
shulin3 | √ |
- 三台虚拟机都要关闭
- [root@shulin ~]# systemctl stop firewalld #正常情况执行前两步即可,不懂的可以百度一下
- [root@shulin ~]# systemctl disable firewalld
- [root@shulin ~]# systemctl stop NetworkManager
- [root@shulin ~]# systemctl disable NetworkManager
- #最好也把selinux关闭掉,这是linux系统的⼀个安全机制,进⼊⽂件中将SELINUX设置为disabled
- [root@shulin ~]# vi /etc/selinux/config
- .........
- SELINUX=disabled
- .........
- 三台虚拟机均要配置
- [root@shulin1 ~]# vi /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.10.101 shulin1 #添加本机的静态IP和本机的主机名之间的映射关系
- 192.168.10.102 shulin2
- 192.168.10.103 shulin3
- 三台虚拟机均要配置
- # 1. 使⽤rsa加密技术,⽣成公钥和私钥。⼀路回⻋即可
- [root@shulin1 ~]# ssh-keygen -t rsa
- # 2. 使⽤ssh-copy-id命令
- [root@shulin1 /]#cd ~/.ssh
- [root@shulin1 .ssh]# ssh-copy-id root@shulin1
- [root@shulin1 .ssh]# ssh-copy-id root@shulin2
- [root@shulin1 .ssh]# ssh-copy-id root@shulin3
- # 3. 进⾏验证
- [hadoop@shulin1 .ssh]# ssh shulin1
- [hadoop@shulin1 .ssh]# ssh shulin2
- [hadoop@shulin1 .ssh]# ssh shulin3
- # 4. 继续在shulin2和shulin3⽣成公钥和私钥,给三台节点拷⻉。
这一步只配置第一台即可,另外两台直接传过去即可。
请参考hadoop安装之保姆级教程 1.1.1节至1.2.1节的java和hadoop安装及其环境配置。
配置文件地址在 usr/local/hadoop-3.1.1/etc/hadoop 下
- <configuration>
- <!-- 设置namenode节点 -->
- <!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时代默认端
- ⼝ 9820 -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://shulin1:9820</value>
- </property>
- <!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/usr/local/hadoop-3.1.1/tmp</value>
- </property>
- </configuration>
- <configuration>
- <!-- 块的副本数量 -->
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- <!-- secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>shulin2:9868</value>
- </property>
- <!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
- <property>
- <name>dfs.namenode.http-address</name>
- <value>shulin1:9870</value>
- </property>
- </configuration>
- export JAVA_HOME=/usr/local/jdk1.8.0_191
- # Hadoop3中,需要添加如下配置,设置启动集群⻆⾊的⽤户是谁
- export HDFS_NAMENODE_USER=root
- export HDFS_DATANODE_USER=root
- export HDFS_SECONDARYNAMENODE_USER=root
- 将原来的localhost删掉,改为
- shulin1
- shulin2
- shulin3
- # 我们已经完成了⼀个节点的环境配置,其他的节点也需要保持完全相同的配置。我们只需要将shulin1
- 节点的配置拷⻉到其他的节点即可。
- # 分发之前,先检查⾃⼰的节点数据⽂件是否存在
- # 如果之间格式化过集群,那么会在core-site.xml中配置的hadoop.tmp.dir路径下⽣成⽂件,先将其删
- 除
- [root@shulin1 ~]# cd /usr/local
- [root@shulin1 local]# scp -r jdk1.8.0_321/ shulin2:$PWD
- [root@shulin1 local]# scp -r jdk1.8.0_321/ shulin3:$PWD
- [root@shulin1 local]# scp -r hadoop-3.3.1/ shulin2:$PWD
- [root@shulin1 local]# scp -r hadoop-3.3.1/ shulin3:$PWD
- [root@shulin1 local]# scp etc/profile shulin2:/etc/
- [root@shulin1 local]# scp etc/profile shulin2:/etc/
- 我们只在1号机格式就可以
- [root@shulin1 ~]# hdfs namenode -format
- start-dfs.sh # 启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
- stop-dfs.sh # 停⽌HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
-
-
- # hdfs --daemon start 单独启动⼀个进程
- hdfs --daemon start namenode # 只开启NameNode
- hdfs --daemon start secondarynamenode # 只开启SecondaryNameNode
- hdfs --daemon start datanode # 只开启DataNode
- # hdfs --daemon stop 单独停⽌⼀个进程
- hdfs --daemon stop namenode # 只停⽌NameNode
- hdfs --daemon stop secondarynamenode # 只停⽌SecondaryNameNode
- hdfs --daemon stop datanode # 只停⽌DataNode
- # hdfs --workers --daemon start 启动所有的指定进程
- hdfs --workers --daemon start datanode # 开启所有节点上的DataNode
- # hdfs --workers --daemon stop 启动所有的指定进程
- hdfs --workers --daemon stop datanode # 停⽌所有节点上的DataNode
- # shulin1节点
- [root@shulin1 hadoop]# jps
- 13442 NameNode
- 13618 DataNode
- 13868 Jps
- # shulin2节点
- [root@shulin2 ~]# jps
- 10514 SecondaryNameNode
- 10548 Jps
- 10405 DataNode
- # shulin3节点
- [root@shulin3 ~]# jps
- 10931 DataNode
- 11001 Jps
- <configuration>
- <!-- 指定MapReduce作业执⾏时,使⽤YARN进⾏资源调度 -->
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>yarn.app.mapreduce.am.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
- </property>
- <property>
- <name>mapreduce.map.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
- </property>
- <property>
- <name>mapreduce.reduce.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
- </property>
- </configuration>
- <configuration>
- <!-- 设置ResourceManager -->
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>shulin1</value>
- </property>
- <!--配置yarn的shuffle服务-->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
- # 在最后面添加如下:
- export YARN_RESOURCEMANAGER_USER=root
- export YARN_NODEMANAGER_USER=root
- [root@shulin ~]# cd $HADOOP_HOME/etc/
- [root@shulin etc]# scp -r hadoop shulin02:$PWD
- [root@shulin etc]# scp -r hadoop shulin03:$PWD
至此hadoop完全分布式集群以搭建完成,可以打开火狐浏览器输入对应ip地址和端口号即可查看hadoop页面和yarn页面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。