Hadoop集群环境搭建—3台

Hadoop集群环境搭建

一、网络配置

1.准备CentOS7.7操作系统
2.完整克隆创建好的虚拟机
	以如下方式命名:hadoop01,hadoop02,hadoop03
3.检查网络ip是否存在,如果不存在,需要关闭NetworkManager
	systemctl  stop  NetworkManager  (临时)

	systemctl  disable  NetworkManager (永久)                                                                                                                                                                                                                                                                                                
4.修改ip地址 (其它均按照此方法配置)
	vim /etc/sysconfig/network-scripts/ifcfg-ens33

	DEVICE=eth0

	TYPE=Ethernet

	ONBOOT=yes

	BOOTPROTO=static

	IPADDR=192.168.100.101/102/103

	GATEWAY=192.168.100.2

	NETMASK=255.255.255.0

	DNS1=8.8.8.8 
5.修改主机名(其它2台同样按照此方法修改)
	临时修改:hostnamectl set-hostname   			  hadoop01,hadoop02 ,hadoop03

	su – 切换
6.修改hosts文件
	vim  /etc/hosts

	192.168.10.101  hadoop01

	192.168.10.102  hadoop02

	192.168.10.103  hadoop03
7.关闭所有主机01-03的防火墙及selinux
	临时:	systemctl  stop firewalld

	永久:	systemctl  disable  firewalld 

	selinux:

	getenforce: 查看selinux的状态

	setenforce 0 临时修改状态为警告

	vim /etc/selinux/config  :  enforcing  ->  disabled  (永久关闭)
8.相同内容的文件可以采用scp命令
	在hadoop01上使用scp命令将配置文件拷贝到其他服务器上 

	你所在机器,比如01 发文件 给 02

	**scp  /etc/hosts  用户@ip/主机名 : 路径**

	复制文件夹加参数:  scp  **-r**  /etc/hosts  用户@ip/主机名 : 路径
9. 配置ssh免密码登录
先在**hadoop01和hadoop02**主节点上生成一对密钥,需要在主节点生成秘钥下发到其它机器上(主节点需要通过	ssh协议启动子节点)

	ssh-keygen  (-t rsa) 

	(三个回车)

	把公钥复制到其余机器上

	ssh-copy-id  hadoop01

	ssh-copy-id  hadoop02

	ssh-copy-id  hadoop03

注意:下发公钥能实现hadoop01或02机器免密码访问其它几台主机,但不代表其它机器也可以免密码访问01

10. 集群角色分配(3台)
hadoop01	NameNode、DataNode、NodeManager、SecondaryNameNode

hadoop02	ResourceManager、DataNode、NodeManager

hadoop03	DataNode、NodeManager

二、 集群搭建

1.安装上传工具rz
	使用yum 安装,工具在centos系统盘中 yum  install  lrz* -y
2.上传文件相关文件到hadoop01
	JDK1.8.0_xx (java development toolkit 开发工具包)

	hadoop2.10.0.tar.gz
3. 解压文件到指定目录
tar -zxvf  jdk1.8.0_xx -C  /usr/local

 tar  -zxvf  hadoop-2.10.0  -C /hadoop (hadoop目录需要在根目录下自己创建)

	在hadoop01上执行拷贝jdk,下发到其它机器上

	scp -r /usr/local/jdk1.8.0_xx  root@hadoop02: /usr/local/

	scp -r /usr/local/jdk1.8.0_xx  root@hadoop03: /usr/local/

	在hadoop01上执行拷贝hadoop,下发到其它机器上

	scp -r /hadoop/hadoop-2.10.0  root@hadoop02: /hadoop

	scp -r /hadoop/hadoop-2.10.0  root@hadoop03: /hadoop
4. 配置系统的profile文件(同伪分布式)
  1)Java环境变量,不要加空格

		vim编辑器输入shell命令: 

		输入括号里的,   **( :r! )**     后面就是终端中输入的命令

		export JAVA_HOME=/usr/local/jdk1.8.0_xx

2)hadoop环境变量

		export HADOOP_HOME=/hadoop/hadoop-2.10.0

		export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

		**#刷新配置文件**

		source /etc/profile         (刷新前检查是否有问题)

		**注意:配制完成后使用scp 命令发送给其它2台主机**
5.修改Hadoop相关配置文件(6个)
	1)  hadoop-env.sh

		export JAVA_HOME=/usr/local/jdk1.8.0_xx

	2)  core-site.xml

		<configuration>

				<property>

    				<name>fs.defaultFS</name>

    				<value>hdfs://hadoop01:9000</value>  

				</property>

			 <property>

    				<name>hadoop.tmp.dir</name>

   				 <value>/hadoop/hadoop-2.10.0/data</value>

				</property>

		</configuration> 

	3) hdfs-site.xml

		<configuration>

			<property>

    			<name>dfs.replication</name>

    			<value>3</value>

			</property>

		</configuration>

	4) mapred-site.xml   

		<configuration>

			<property>

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

					<value>yarn</value>

			</property>

		</configuration>

	5) yarn-site.xml

		<configuration>

			<property>

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

    			<value>hadoop02</value>

			</property>

			<property>

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

    			<value>mapreduce_shuffle</value>

		 </property>

		</configuration> 

	6) 修改slaves配置文件  (配置子节点所在的位置) 

			hadoop01

			hadoop02

			hadoop03
6. 将配置好的hadoop拷贝到其他服务器上
在所有的节点的根目录上创建一个hadoop目录

mkdir /hadoop

在hadoop01上执行拷贝命令

scp -r / hadoop /hadoop-2.10.0/etc/hadoop   hadoop02:/hadoop/hadoop-2.10.0/etc 

scp -r / hadoop /hadoop-2.10.0/etc/hadoop   hadoop03:/ hadoop /hadoop-2.10.0/etc 
7. 初始化HDFS,即格式化NameNode
在NameNode所在的那一台机器上执行格式化即可hadoop01

格式化一次即可(在NamaNode所在的机器)

格式化命令:**hdfs  namenode -format**
8. 启动HDFS
在hadoop01上启动HDFS

sbin/start-dfs.sh	

(在本机上启动NameNode,读取slaves文件,然后通过ssh将所有的DataNode启动,然后启动                SecondaryNameNode )	

查看jps进程:

hadoop01 应该有 namenode 和datanode,secondarynamenode

hadoop02  03 应该有datanode
9. 启动YARN
sbin/start-yarn.sh

查看jps进程

hadoop02 应该有 resourceManager,datanode,nodemanager

hadoop01 应该多了一个nodeManager进程

hadoop03 应该有datanode,nodemanager
10. 查看节点运行情况及管理界面
查看hdfs节点命令:  hdfs  dfsadmin -report



hdfs的管理界,http://hadoop01:50070,查看如下datanode节点

hadoop02:50010 (192.168.100.103:50010)

hadoop03:50010 (192.168.100.104:50010)

yarn的管理界面,http://hadoop02:8088,查看如下NodeManager节点

hadoop01:8042

hadoop03:8042
用于单独启动某个进程的命令

sbin/hadoop-daemon.sh start datanode

sbin/yarn-daemon.sh start nodemanager
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集群规划: 主机名 IP 安装的软件 运行的进程 weekend01 192.168.1.201 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend02 192.168.1.202 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend03 192.168.1.203 jdk、hadoop ResourceManager weekend04 192.168.1.204 jdk、hadoop ResourceManager weekend05 192.168.1.205 jdk、hadoopzookeeper DataNodeNodeManager、JournalNode、QuorumPeerMain weekend06 192.168.1.206 jdk、hadoopzookeeper DataNodeNodeManager、JournalNode、QuorumPeerMain weekend07 192.168.1.207 jdk、hadoopzookeeper DataNodeNodeManager、JournalNode、QuorumPeerMain 说明: 1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务 仅同步active namenode的状态,以便能够在它失败时快速进行切换。 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据 信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态 2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个 是Standby,状态由zookeeper进行协调

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值