Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤

时间:2024-03-30 15:28:30

Hadoop集群搭建及网络ip配置@TOC

1、hadoop运行环境配置

此处需要三台虚拟机,以为HDFS的NameNode、SecondaryNameNode和Yarn的ResourceManager比较耗费资源,现实开发中也是不会配置在同一台服务器,电脑内存最好8G或以上,不然就算虚拟机开启的是命令界面到时候启动集群后也会卡

  1. 虚拟机网络设置为NAT模式
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    重新启动系统。
    [[email protected] ~]# sync
    [[email protected] ~]# reboot
  2. 克隆虚拟机
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    点击下一步后会显示如下
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
    然后启动虚拟机
  3. 修改网络ip
    (1) 在终端命令窗口中输入
	[[email protected] /]#vim /etc/udev/rules.d/70-persistent-net.rules

进入如下页面删除eth0行,将eth1修改为eth0,同时复制物理ip地址
Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
(2)修改ip地址

	[[email protected] /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改前
Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
(注意ip地址应和虚拟机中的网络地址前三个数一样,否则会导致连不了网,后面那个就不能同)
Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
修改后
Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
(3)执行以下命令**网络

		[[email protected] /]# service network restart

Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
(4)如果报错,重启虚拟机

		[[email protected] /]# reboot
  1. 修改主机名
    (1)进入Linux系统查看本机的主机名。通过hostname命令查看。
		[[email protected] /]# hostname

(2)如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/sysconfig/network文件。

[[email protected]~]# vi /etc/sysconfig/network

(3)打开此文件后,可以看到主机名。修改此主机名为我们想要修改的主机名
修改文件中主机名称
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= hadoop101
注意:主机名称不要有“_”下划线
(4)保存退出
(5)打开/etc/hosts

[[email protected] ~]# vim /etc/hosts

添加如下内容(IP地址和主机名应和自己配置的对应)
192.168.61.101 hadoop101
192.168.61.102 hadoop102
192.168.61.103 hadoop103
(6)并重启设备重启后查看主机名,已经修改成功

  1. 关闭防火墙
    (1)查看防火墙开机启动状态
[[email protected] ~]# chkconfig iptables --list

(2)关闭防火墙

[[email protected] ~]# chkconfig iptables off
  1. 在opt目录下创建文件
    (1)创建master用户
    在root用户里面执行如下操作
[[email protected] opt]# adduser master
[[email protected] opt]# passwd master

更改用户 test 的密码 。
新的 密码:
无效的密码: 它没有包含足够的不同字符
无效的密码: 是回文
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
(2)设置master用户具有root权限

[[email protected] master]# vi /etc/sudoers

找到下面一行,在root下面添加一行,如下所示:
#Allow root to run any commands anywhere
root ALL=(ALL) ALL
masterALL=(ALL) ALL
修改完毕,现在可以用master帐号登录,然后用命令 su - ,即可获得root权限进行操作。
(3)在/opt目录下创建文件夹
a.在root用户下创建module、software文件夹

[[email protected] opt]# mkdir module
[[email protected] opt]# mkdir softwar

b.修改module、software文件夹的所有者

[[email protected] opt]# chown master:master module
[[email protected] opt]# chown master:master sofrware
  1. 安装jdk
    (1)卸载现有jdk
    查询是否安装java软件:
    [[email protected] opt]# rpm -qa|grep java
    如果安装的版本低于1.7,卸载该jdk:
    [[email protected] opt]# rpm -e 软件包
    (2)自行下载一个jdk和hadoop
    [[email protected]]# ls
    hadoop-2.7.2.tar.gz jdk-8u144-linux-x64.tar.gz
    (3)解压jdk到/opt/module目录下
[[email protected]]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

(4)配置jdk环境变量
a.先获取jdk路径:
[[email protected] jdk1.8.0_144]# pwd
/opt/module/jdk1.8.0_144

b.打开/etc/profile文件:
[[email protected] jdk1.8.0_144]# vi /etc/profile
在profie文件末尾添加jdk路径:
##JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=PATH:PATH:JAVA_HOME/bin
保存后退出:
:wq

c.让修改后的文件生效:
[[email protected] jdk1.8.0_144]# source /etc/profile

d.测试jdk安装成功
[[email protected] jdk1.8.0_144]# java -version
java version “1.8.0_144”
(如果java -version不可以用就重启)

  1. 安装Hadoop
    (1)进入到Hadoop安装包路径下:

[[email protected] ~]# cd /opt/software/

(2)解压安装文件到/opt/module下面
[[email protected] software]# tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/

(3)在/opt/module/hadoop-2.7.2/etc/hadoop路径下配置hadoop-env.sh
a) Linux系统中获取jdk的安装路径:
[[email protected] jdk1.8.0_144]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144
b) 修改hadoop-env.sh文件中JAVA_HOME 路径:
[[email protected] hadoop]# vi hadoop-env.sh
修改JAVA_HOME如下
export JAVA_HOME=/opt/module/jdk1.8.0_144

(4)将hadoop添加到环境变量
获取hadoop安装路径:
[[email protected] hadoop101 hadoop-2.7.2]# pwd
/opt/module/hadoop-2.7.2
打开/etc/profile文件:
[[email protected] hadoop101 hadoop-2.7.2]# vi /etc/profile
在profie文件末尾添加jdk路径:(shitf+g)

##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

保存后退出:
:wq
让修改后的文件生效:
[[email protected] hadoop101 hadoop-2.7.2]# source /etc/profile
重启(如果hadoop命令不能用再重启):
[[email protected] hadoop101 hadoop-2.7.2]# reboot
修改/opt目录下的所有文件所有者为master
[[email protected] opt]# chown master:master -R /opt/
切换到atguigu用户
[[email protected] opt]# su master#一般不会用root
安装三台虚拟机都一致为以上这样的步骤

2、完全分布式部署

  1. SSH无密码登录(为了集群之间通信)
    (1)基本语法
    ssh 另一台电脑的ip地址
    (2)无**配置
    进入到我的home目录
    [[email protected] opt]$ cd ~/.ssh
    生成公钥和私钥:
    [[email protected] .ssh]$ ssh-****** -t rsa
    然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

    将公钥拷贝到要免密登录的目标机器上

[[email protected] .ssh]$ ssh-copy-id hadoop102
[[email protected] .ssh]$ ssh-copy-id hadoop103
按照以上的这些步骤配置ResourceManager所在的虚拟机无密登录另外两台,
其中NameNode所在的虚拟机还要切换到root账户配置一次(此处是hadoop101要切换root账户配置)
  1. 集群规划
    Linux(centos6.5)系统网络ip配置及hadoop完全分布式集群部署详细步骤
  2. 配置文件
    (1)core-site.xml
[[email protected] hadoop]$ vi core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
   <property>
   	<name>fs.defaultFS</name>
       <value>hdfs://hadoop101:9000</value>
   </property>
   
   <!-- 指定hadoop运行时产生文件的存储目录 -->
   <property>
   	<name>hadoop.tmp.dir</name>
   	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
   </property>

(2)Hdfs

[[email protected] hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(3)hdfs-site.xml

<configuration>	
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>

	<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop103:50090</value>#注意此处为secondaryNameNode的主机地址
    </property>
</configuration>

(4)slaves(告诉namenode有几个节点)

[[email protected] hadoop]$ vi slaves
hadoop101
hadoop102
hadoop103

(5)yarn-env.sh

[[email protected] hadoop]$ vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(6)yarn-site.xml

[[email protected] hadoop]$ vi yarn-site.xml

<configuration>

	<!-- reducer获取数据的方式 -->
	<property>
		 <name>yarn.nodemanager.aux-services</name>
		 <value>mapreduce_shuffle</value>
	</property>

	<!-- 指定YARN的ResourceManager的地址 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop102</value>#注意此处为resourcemanager的主机
	</property>
</configuration>

(7)mapred-env.sh

[[email protected] hadoop]$ vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(8)(对mapred-site.xml.template重新命名为) mapred-site.xml

[[email protected] hadoop]$ mv mapred-site.xml.template mapred-site.xml
[[email protected] hadoop]$ vi mapred-site.xml

(9)mapred-site.xml

[[email protected] hadoop]$ vi mapred-site.xml
<configuration>
	<!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

每台机器都是如上配置几个文件

3、集群启动及测试

如果集群是第一次启动,需要格式化namenode

[[email protected] hadoop-2.7.2]$ bin/hdfs namenode -format
  1. 启动HDFS并查看
[[email protected] hadoop-2.7.2]$ sbin/start-dfs.sh
[[email protected] hadoop-2.7.2]$ jps  #查看节点
4166 NameNode
4482 Jps
4263 DataNode

[[email protected] hadoop-2.7.2]$ jps
3218 DataNode
3288 Jps

[[email protected] hadoop-2.7.2]$ jps
3221 DataNode
3283 SecondaryNameNode
3364 Jps

  1. 启动yarn
[[email protected] hadoop-2.7.2]$ sbin/start-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器
不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

以上是完全分布式的部署