1、hadoop安装及其文件结构

Hadoop安装

    安装过程亲测有效,在安装过程中根据自己的喜好和实际环境更改部分内容即可。

1.安装jdk
        a)下载jdk-8u65-linux-x64.tar.gz
		b)tar开
			$>su centos ; cd ~
			$>mkdir downloads
			$>cp /mnt/hdfs/downloads/bigdata/jdk-8u65-linux-x64.tar.gz  ~/downlooads
			$>tar -xzvf jdk-8u65-linux-x64.tar.gz
		
		c)创建/soft文件夹(根目录下创建)
			$>sudo mkdir /soft
			$>sudo chown centos:centos /soft
	
		d)移动tar开的文件到/soft下
			$>mv ~/downloads/jdk-1.8.0_65 /soft/
		
		e)创建符号连接
		
			#符号连接分为软连接和硬链接,硬链接与原文件有着相同的inode号,可以理解成是对原文件的一份复制,但是这个复制出来
			#的文件与原文件有相同的inode号。当删除原文件时,建立的硬链接的文件依然存在。
			#软连接就是建立了一个新文件。文件当中存储的内容可以认为是原文件的一个指针。
			#硬链接只能链接到文件,软链接可以链接到文件和文件夹。
			#这里使用链接的方法是为了切换三种模式的方便。就相当于用一个指针不断的切换指向,而整个系统后面的内容不需要调整
			
			$>ln -s /soft/jdk-1.8.0_65 /soft/jdk
		f)验证jdk安装是否成功
			$>cd /soft/jdk/bin
			$>./java -version
2.centos配置环境变量
    1.编辑/etc/profile
		$>sudo nano /etc/profile
		...
		export JAVA_HOME=/soft/jdk
		exprot PATH=$PATH:$JAVA_HOME/bin
	2.使环境变量即刻生效
		$>source /etc/profile
	3.进入任意目录下,测试是否ok
		$>cd ~
		$>java -version
3.安装hadoop
    1.安装hadoop
		a)下载hadoop-2.7.3.tar.gz
		b)tar开
			$>su centos ; cd ~
			$>cp /mnt/hdfs/downloads/bigdata/hadoop-2.7.3.tar.gz ~/downloads
			$>tar -xzvf hadoop-2.7.3.tar.gz
		c)无
		d)移动tar开的文件到/soft下
			$>mv ~/downloads/hadoop-2.7.3 /soft/
		e)创建符号连接
			$>ln -s /soft/hadoop-2.7.3 /soft/hadoop
		f)验证jdk安装是否成功
			$>cd /soft/hadoop/bin
			$>./hadoop version
	
	2.配置hadoop环境变量
		$>sudo nano /etc/profile
		...
		export JAVA_HOME=/soft/jdk
		exprot PATH=$PATH:$JAVA_HOME/bin

		export HADOOP_HOME=/soft/hadoop
		export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
	
	3.生效
		$>source /etc/profile
4.配置hadoop

    hadoop三种模式,分别是本地模式(local)、伪分布模式(pseudo)、全分布(full)。

  • 本地模式。指的是最初始的模式,配置文件均为空的。
  • 伪分布模式。用一台主机模拟多台主机。hadoop的守护程序在本地计算机上运行,模拟集群环境,并且是相互独立的Java进程。在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
  • 完全分布式。真实的集群环境。
4.1 配置伪分布模式

根据前文配置路径进行

        a)进入/soft/etc/hadoop目录
		b)编辑core-site.xml
			<?xml version="1.0"?>
			<configuration>
				<property>
					<name>fs.defaultFS</name>
					<value>hdfs://localhost/</value>
				</property>
			</configuration>
		c)编辑hdfs-site.xml
			<?xml version="1.0"?>
			<configuration>
				<property>
					<name>dfs.replication</name>
					<value>1</value>
				</property>
			</configuration>
		d)编辑mapred-site.xml
			注意:cp mapred-site.xml.template mapred-site.xml
			<?xml version="1.0"?>
			<configuration>
				<property>
					<name>mapreduce.framework.name</name>
					<value>yarn</value>
				</property>
			</configuration>
		e)编辑yarn-site.xml
			<?xml version="1.0"?>
			<configuration>
				<property>
					<name>yarn.resourcemanager.hostname</name>
					<value>localhost</value>
				</property>
				<property>
					<name>yarn.nodemanager.aux-services</name>
					<value>mapreduce_shuffle</value>
				</property>
			</configuration>
         f)配置SSH
			1)检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
				$yum list installed | grep ssh

			2)检查是否启动了sshd进程
				$>ps -Af | grep sshd
			
			3)在client侧生成公私秘钥对。
				$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
			
			4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)

			5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
				$>cd ~/.ssh
				$>cat id_rsa.pub >> authorized_keys
			
			6)修改authorized_keys的权限为644.
				$>chmod 644 authorized_keys
			
			7)测试
				$>ssh localhost
4.2配置完全分布式

0.修改主机名<hosts是解析文件完成ip到主机名的映射>

1./etc/hostname
	s201
2./etc/hosts
	127.0.0.1 localhost
	192.168.231.201 s201
	192.168.231.202 s202
	192.168.231.203 s203
	192.168.231.204 s204

1.克隆主机,修改主机名和Ip地址,主机名和IP地址可以根据自己实际情况自己就可以。几台机子搞好后要ping一下是不是通的才可以啊。

    0.将虚拟机的网络连接方式改为桥接模式,这样每台主机相当于一台真实主机。
    1.克隆3台client(centos7)
		右键centos-7-->管理->克隆-> ... -> 完整克隆
	2.启动client
	3.启用客户机共享文件夹。
	4.修改hostname和ip地址文件
		[/etc/hostname]
		s202

		[/etc/sysconfig/network-scripts/ifcfg-ethxxxx]
		...
		IPADDR=192.168.xxx.xxx

	5.重启网络服务
		$>sudo service network restart
	
	6.修改/etc/resolv.conf文件
		nameserver 192.168.231.2
	
	7.其余几台重复以上3 ~ 6过程.

2.准备完全分布式主机的ssh

这里的ssh是当前用户名下的ssh,对于一些需要root权限的命令还需要建立root权限的ssh。方法与这个相同,只不过在操作时把用户切换成root用户就可。

    1.删除所有主机上的/home/centos/.ssh/*
	#前面配伪分布的时候生成了ssh的
	
	2.在s201主机上生成密钥对
	#这里是把s201当成了master
	$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

	3.将s201的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。并放置/home/centos/.ssh/authorized_keys
	#这样就把公钥发给了每一台slaves,master拿着私钥就可以免密登录任何一台主机了。	
		$>scp id_rsa.pub centos@s201:/home/centos/.ssh/authorized_keys
		$>scp id_rsa.pub centos@s202:/home/centos/.ssh/authorized_keys
		$>scp id_rsa.pub centos@s203:/home/centos/.ssh/authorized_keys
		$>scp id_rsa.pub centos@s204:/home/centos/.ssh/authorized_keys

3.配置完全分布式(${hadoop_home}/etc/hadoop/)

1.	   [core-site.xml]
		<?xml version="1.0" encoding="UTF-8"?>
		<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
		<configuration>
				<property>
						<name>fs.defaultFS</name>
						<value>hdfs://s201/</value>
				</property>
		</configuration>

		[hdfs-site.xml]
		<?xml version="1.0" encoding="UTF-8"?>
		<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
		<configuration>
				<property>
						<name>dfs.replication</name>
						<value>3</value>
				</property>
		</configuration>
		
		[mapred-site.xml]
			不变
		
		[yarn-site.xml]
		<?xml version="1.0"?>
		<configuration>
				<property>
						<name>yarn.resourcemanager.hostname</name>
						<value>s201</value>
				</property>
				<property>
						<name>yarn.nodemanager.aux-services</name>
						<value>mapreduce_shuffle</value>
				</property>
		</configuration>
	2.    [slaves]<etc/full>
			s202
			s203
			s204
	3.
			etc/full/[hadoop-env.sh]<centos的坑,不是必须配的>
			...
			export JAVA_HOME=/soft/jdk
			...
	4.分发配置
		
		$>cd /soft/hadoop/etc/
		$>scp -r full centos@s202:/soft/hadoop/etc/
		$>scp -r full centos@s203:/soft/hadoop/etc/
		$>scp -r full centos@s204:/soft/hadoop/etc/

    到现在完全的分布式已经配好了,我们现在来梳理一下现在我们系统上的文件结构。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值