centos7下hadoop完全分布式环境搭建

     自己动手搭建了一下hadoop完全分布式,现在做下总结,希望对他人能有所帮助,接触时间不长,如有不足,欢迎指正指正。

 一 相关准备  

    hadoop版本: hadoop-2.7.3

    jdk版本:1.8.0_65

    Linux版本:centos7

    VMware Workstation : 搭建四台虚拟机,一台namenode,三台datanode(其实两台就够用)四台虚拟机需要能相互ping通   

     本文四台主机:s201 s202 s203 s204 其中s201作为namonode,其他三台为datanode

二 搭建hadoop环境   

     1.安装虚拟机镜像    

             安装虚拟机的过程在此省略。先只搭建一台虚拟机,作为namenode,安装好之后克隆三份,克隆的三份将携带本所有配置,集群中所有主机配置完全一致。

             安装之后,修改本机主机名。本文中namedode主机名称为s201。

             vi /etc/hostname   将localhost.domain修改为s201。

             保存退出后重启,输入hostname验证主机名。

             修改 /etc/hosts  将本机ip与主机名映射。

     2. 创建新用户。

             尽量不要用root用户,提高安全性。本文中用户为centos

# useradd centos
# psswd centos

             之后设置新密码。

             登陆centos:  su centos

             centos所在家目录为 /home/centos,进入该目录并创建downloads文件夹。

$ cd ~ && mkdir downloads

            将下载的hadoop和jdk安装包上传到downloads文件夹。

    3. 环境搭建。

            安装JDK,解压jdk-8u65-linux-x64.tar.gz

[centos@s201 /downloads]$tar -zxvf jdk-8u65-linux-x64.tar.gz

            解压完成后会出现jdk1.8.0_65文件夹。创建 /soft 文件夹,作为软件安装目录。使用sudo命令,以管理员身份运行,        需要输入密码。并将soft文件夹的所有权限指定给centos用户。

[centos@s201 /downloads]$ sudo mkdir  /soft

[centos@s201 /downloads]$ sudo chown centos:centos /soft

           将解压后的jdk文件夹移动到/soft下: 

[centos@s201 /soft]$ mv ~/downloads/jdk-1.8.0_65 /soft/

          到soft文件夹下确认移动完成后修改配置文件

[centos@s201 /soft]$ sudo vi /etc/profile

          在末尾处添加如下内容:

export JAVA_HOME=/soft/jdk1.8.0_65
exprot PATH=$PATH:$JAVA_HOME/bin

          保存退出后,输入 sudo source /etc/profile,使配置文件生效。之后验证jdk安装情况,出现以下内容说明jdk配置成功。

[centos@s201 /home/centos]$java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

         解压hadoop

[centos@s201 /home/centos/downloads]$ tar -zxvf hadoop-2.7.3.tar.gz

.......解压过程.......  解压完成后移动

[centos@s201 /home/centos/downloads]$ mv hadoop-2.7.3 /soft/

        配置hadoop环境变量

[centos@s201 /home/centos/downloads]$ vi /etc/profile

在末尾处添加 


export HADOOP_HOME=/soft/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

       保存退出后,输入 sudo source /etc/profile,使配置文件生效。之后验证hadoop安装情况,出现以下内容说明配置成功。

[centos@s201 /home/centos/downloads]$hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /soft/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar

        修改hadoop配置文件,涉及到 hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml那文件位        置: /soft/hadoop/etc/hadoop

        修改hadoop-env.sh  找到export JAVA_HOME 将值改为本地的java_home  即 /soft/jdk1.8.0_65

        修改core-site.xml 的configuration元素

<configuration>
   <!--hadoop访问目录节点nameNode-->
   <property>
	<name>fs.defaultFS</name>
	<value>hdfs://s201/</value>
   </property>
   <!--- 配置新的本地目录 -->
   <property>
	<name>hadoop.tmp.dir</name>
	<value>/home/centos/hadoop</value>
   </property>
</configuration>

      修改hdfs-site.xml 的configuration元素

<configuration>
	<property>  <!--制定副本数量,本文中有三个副本因此是3-->
		<name>dfs.replication</name>
		<value>3</value>
	</property>
</configuration>

      修改mapred-site.xml 的configuration元素

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

     修改yarn-site.xml 的configuration元素

<configuration>

<!-- Site specific YARN configuration properties -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>s201</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

    创建符号连接   

[centos@s201 /soft/hadoop/etc/hadoop]$ ln -s /soft/hadoop-2.7.3 /soft/hadoop

    配置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

       至此,s201的hadoop已经搭建完成。

三 搭建其他三台主机

     1 在vm界面将s201克隆三份。

     2  三台主机分别修改主机名为s202 s203 s204

     3 修改三台主机的ip地址,克隆后的主机ip与s201相同,需要手动修改.

     4 修改四台主机的hosts文件,将四台主机的ip与主机名映射配置进去。

     5 修改s201的slaves文件,位于/soft/hadoop/etc/hadoop

[centos@s201 /soft/hadoop/etc/hadoop]$ vi slaves

添加以下内容,配置datanode主机
s202
s203
s204

     6 在s201上分发slaves文件

[centos@s201 /soft/hadoop/etc/hadoop]scp slaves centos@s202:/soft/hadoop-2.7.3/etc/hadoop
[centos@s201 /soft/hadoop/etc/hadoop]scp slaves centos@s203:/soft/hadoop-2.7.3/etc/hadoop
[centos@s201 /soft/hadoop/etc/hadoop]scp slaves centos@s204:/soft/hadoop-2.7.3/etc/hadoop
 

    7 配置完全分布的ssh

	1.删除所有主机上的/home/centos/.ssh/*

	2.在s201主机上生成密钥对
		$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

	3.将s201的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。
	  并放置/home/centos/.ssh/authorized_keys
		$>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

    8 关闭防火墙,四台主机都关

$>sudo systemctl stop firewalld.service		//停止防火墙
$>sudo chkconfig firewalld off				//"开启自启"禁用



补充防火墙其他指令:
centos防火墙操作
		[cnetos 6.5之前的版本]
		$>sudo service firewalld stop		//停止服务
		$>sudo service firewalld start		//启动服务
		$>sudo service firewalld status		//查看状态

		[centos7]
		$>sudo systemctl enable firewalld.service	//"开机启动"启用
		$>sudo systemctl disable firewalld.service	//"开机自启"禁用
		$>sudo systemctl start firewalld.service	//启动防火墙
		$>sudo systemctl stop firewalld.service		//停止防火墙
		$>sudo systemctl status firewalld.service	//查看防火墙状态

		[开机自启]
		$>sudo chkconfig firewalld	on				//"开启自启"启用
		$>sudo chkconfig firewalld	off				//"开启自启"禁用

    9 启动hadoop 在s201上依次执行 hdfs namenode -format (第一次启动需要格式化)  start-dfs.sh 和 start-yarn.sh 完成后输入jps可看到如下结果

[centos@s201 /soft/hadoop/etc/hadoop]$jps
6805 Jps
5558 SecondaryNameNode
5721 ResourceManager
5341 NameNode

        在其他三台机器上输入jps,可以看到如下结果

[centos@s202 /soft/hadoop/etc/hadoop]$jps
5301 NodeManager
5174 DataNode
6079 Jps
[centos@s203 /home/centos]$jps
6053 Jps
5079 NodeManager
4952 DataNode
[centos@s204 /home/centos]$jps
5027 DataNode
6151 Jps
5162 NodeManager

     在s201上启动了NameNode,ResourceManager,SecondaryNameNode,在其他三台主机上启动了DataNode和         NodeManager,说明集群已经启动成功。

     10 查看webUI  访问s201的50070端口,可见如下界面

        启动了namenode和三个datanode,至此,hadoop完全分布式已经搭建完成,相关日志,可查看                                   ${HADOOP_HOME}/logs

四 伪分布式的搭建

    伪分布式在性质上等同于完全分布式,只不过都是在一台机器上运行,只有一个节点。

    大部分步骤同上,只是配置文件不同,不需要修改slaves文件

		伪分布模式。
		a)进入${HADOOP_HOME}/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>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值