hadoop完全分布式搭建

完全分布式搭建

一、集群规划—>不同的守护进程运行那些结点:

Linux01Linux02Linux03
HDFSDataNodeDataNodeDataNode
NameNodeSecondaryNameNode
YarnNamemanagerNodemanagerNodemanager
RecourceManager
HistroryHistroryServer

二、基本环境准备

CentOS 6.5
hadoop-2.7.6
jdk1.8

1、配置IP和映射主机名(如果是克隆出来的注意修改mac信息)
// 检查主机名
$ cat /etc/sysconfig/network
// 检查IP和DNS网关,配置静态IP
$ cat /etc/sysconfig/network-scripts/ifcfg-etn0
// 检查主机映射
$ cat /etc/hosts      					-->Linux
C:\Windows\System32\drivers\etc\hosts	-->Windows

2、关闭防火墙及安全子系统
# service iptables stop
chkconfig iptables off
// 检查
# service iptables status
// 会显示有iptables:Firewall is not running
# chkconfig --list | grep iptables
// 关闭Linux子系统
# vi /etc/sysconfig/selinux
// 为了提高性能,可以考虑将启动方式调整为不带桌面
sudo vi /etc/inittab
id:3:initdefault:
3、创建相同的普通用户名和密码,配置sudo权限
$ tail -10 /etcpasswd
(1)、查看是否存在用户普通用户,没有就创建,稍后要保证3台账号密码相同
# useradd hadoop
# passed hadoop			// # echo 123456 | passwd --stdin hadoop

配置hadoop的sudo权限

4、安装jdk
  1. 卸载自带jdk
# rpm -qa | grep jdk
# rpm --nodeps javaversion
  1. 在 /opt 下创建并修改权限
# mkdir /opt/modules /opt/software
# chmod -R 777 modules/software
  1. 安装
解压jdk到modules
$ tar -zxvf /opt/software/jdk-version /opt/modules/
配置环境变量
$ sudo vi /etc/profile # 添加一下内容

export JAVA_HOME = /opt/modules/jdk-version
export PATH = P A T H : PATH: PATH:JAVA_HOME/bin

生效配置:

$ source /etc/profile

检查Java环境变量

$ java -version

三、配置NTP

把Linux01作为整个集群的时间同步服务器
集群中所有其他服务器都来这台服务器Linux01同步时间

1、检查每台服务器所在的时区
$ date -R

如果不是 +0800 ,就要通过下面命令调整

# rm -rf /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、安装ntp服务
# rpm -qa | grep ntp			// 查看ntp软件是否已安装

如果没有执行下面命令:

yum -y install ntp
3、 修改ntp的配置文件(第一台learn01.bigdata.com)
# vi /etc/ntp.conf
4、同步服务器时间(Linux01.ibeifeng.com)
# ntpdate cn.pool.ntp.org  // 操作这一步关闭ntp服务
5、启动ntp服务(默认开始)(Linux01.ibeifeng.com)
# service ntpd start
# chkconfig ntpd on
# chkconfig --list | grep nepd
# ntpdate ipaddres # 测试
6、如果另外两台的ntp的进程开启,那么需要关闭(对其他两台进行操作)
# service --status-all | grep ntpd		// 查看ntpd服务时候开启
#chkconfig --list | grep ntpd			// 查看ntpd服务随开机启动

如果服务可能开启,执行下面命令

# service ntpd stop
# chkfonfig ntpd off
7、第2、3台向第一台同步时间
# ntpdate Linux01.ibeifneg.com
8、制定周期性时间同步计划任务(PC2、PC3定时向PC1手动同步时间)
# crontb -e

【注意】如果趋势无法向第一台同步时间,请在交互窗口(可以同时设置3台时间)执行手动设置时间

# date -s

四、配置SSH免密钥登录

切换为普通用户hadoop使用普通用户操作;使用ssh登录的时候不需要用户名密码:

$ sbin /start-dfs.sh

每个节点都需要操作:

$ ssh -keygen

分发公钥(要向三台都发送)

$ ssh-copy-id PC1名
$ ssh-copy-id PC2名
$ ssh-copy-id PC3名

测试:

$ ssh PC2名

测试失败,先删除.ssh目录,重新做一遍:

$ rm -r ~/.ssh

五、安装hadoop

1、上传到服务器并解压hadoop的安装 包(.tar.gz)
$ tar -zxvf /opt/software/hadoop-version -C /opt/modules/
2、删除${HADOOP_HOME}/share/doc
$ rm -rf doc/
3、配置Java环境支持在${HADOOP_HOME}/etc/hadoop在hadoop-env.sh yarn-env.sh中配置JAVA_HOME=/opt/modules/jdk-version
4、core-site.xml
<!--  指定第一台作为NameNode  -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://linux01.ibeifeng.com:8020</value>
	</property>

	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/modules/hadoop-2.7.6/data</value>
	</property>
5、hdfs-site.xml
<!-- 分布式副本数设置为3 -->
	<property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
	
	<!-- secondarynamenode主机名 -->
	<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>linux02.ibeifeng.com:50090</value>
    </property>

	<!-- namenode的web访问主机名:端口号 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>linux01.ibeifeng.com:50070</value>
	</property>
	
	<!-- 关闭权限检查用户或用户组 -->
	<property>
        <name>dfs.permissions.enabled</name>
		
        <value>false</value>
    </property>
6、mapred-site.xml
<!-- 指定mapreducer向yarn提交 -->
	<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
	
	<property>
        <name>mapreduce.jobhistory.address</name>
        <value>linux01.ibeifeng.com:10020</value>
    </property>
	
	<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>linux01.ibeifeng.com:19888</value>
    </property>
7、yarn-site.xml
<!-- 指定哪个节点作为resourcemanager -->
	<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>linux03.ibeifeng.com</value>
    </property>
	
	<!-- 在mapreducer过程中启用shuffle -->
	<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
	
	<!-- 启用日志聚合 -->
	<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
	
	<!-- 日志保存时间 -->
	<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>
8、配置slaves

这里是引用

【注意事项】:

  1. slaves中配置集群所有的主机名;
  2. 所有节点上的配置文件内容都是一样的;
  3. 要按照集群规划配置所属进程;
  4. 配置普通用户,所有节点,有相同的账号密码。

分发

将Linux01的hadoop分发给其他两台虚拟机:

scp -r 把要复制的目录 其他主机:复制到的目录

五、格式化Namenode

在NameNode所在的服务器bigdata01上,进行格式化${HADOOP_HOME}/bin

$ bin/hdfs namenode -formart

【注意】:

  1. 先将PC1的hadoop配置目录分发到PC2和PC3
  2. 保证三台配置的内容一致
  3. 先确保三台没有格式化信息
  4. 最后格式化

六、启动进程

在PC1上使用如下启动HDFS

$ sbin/start-dfs.sh

在PC3上使用如下命令:

$ sbin/start-yarn.sh

在PC1上启动历史服务:

$ sbin/mr-jobhistory-deamon.sh start historyserver

停止进程:
在PC1上使用如下命令:

$ sbin/stop-dfs.sh

在PC3上使用入校命令停止YARN

$ sbin/stop-yarn.sh

【注意】:
修改任何配置文件,请先停止所有进程,修改完成,让后重新启动。

七、检查启动是否正常

3台上jps查看进程,参考之前的集群规划

PC1
			            DataNode
						NodeManager
						jsp
						NameNode
PC2
			            DataNode
						NodeManager
						jsp
					   NodeManager
					   SecondaryNameNode
PC3
			            DataNode
						NodeManager
						jsp
						ResourceManager

测试:
需求:根据省份统计日志中网站PV

  1. 字段长度大于30才为有效记录
  2. url不为空为有效记录
  3. provinceId不为空为有效记录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值