准备工作

1) 首先查看本机IP地址

      ipconfig

记住自己本机的IP地址 在配置虚拟机师IP地址时避免重复

2) 查看虚拟机的网关和子网IP

打开VMware Workstation,依次点击编辑-->虚拟网络编辑器 出现以下界面,选中VMnet8 再点击NAT设置


HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉

标题

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3)记住自己的这两个参数配置虚拟机IP时要用到

HDFS重启jn时造成nn挂掉_主机名_02

2.2 安装CentOS

[安装CentOS 6.8](https://jingyan.baidu.com/article/1e5468f978d376484961b7be.html)

VM,jdk(1.8)和CenOS6.8安装包

链接:https://pan.baidu.com/s/1VL04Iibobo2n3RH8zbfycQ 密码:se33

 

2.3 虚拟机网络模式设置为NAT

1)选中自己创建的虚拟机右击-->设置

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_03

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.4 克隆虚拟机

1)克隆虚拟机

选中自己创建的虚拟机右键-->管理-->克隆

HDFS重启jn时造成nn挂掉_主机名_04

 

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_05

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_06

 

HDFS重启jn时造成nn挂掉_hadoop_07

HDFS重启jn时造成nn挂掉_主机名_08

等待克隆完成

2.5 修改ip、主机名和映射

 

HDFS重启jn时造成nn挂掉_IP_09

我选中的是hadoop03这台虚拟机但是主机名是Hadoop02 这是因为hadoop103是从hadoop102拷贝过来的所以拷贝的两天虚拟机主机名和IP都需要修改,hadoop102只需要修改IP,现在我用hadoop103为例修改主机名和设置静态IP地址。

登陆进去后右击-->在终端中打开

HDFS重启jn时造成nn挂掉_主机名_10

在终端中输入 :vim /etc/udev/rules.d/70-persistent-net.rules

修改前:

HDFS重启jn时造成nn挂掉_hadoop_11

修改后: 将NAME修改为eth0 将ATTR(address) 的值复制出来等会用于配置静态IP 保存退出(:wq)

HDFS重启jn时造成nn挂掉_IP_12

在终端中输入 :vim /etc/sysconfig/network-scripts/ifcfg-eth0

HDFS重启jn时造成nn挂掉_主机名_13

1:将之前ATTR(address) 的值粘贴上去

2:将BOOTPROTO的值修改为static

3:添加之前查看的子网IP(192.168.1.0)下的IP(192.168.1.102 Ps:这是自己分配的 不要跟window系统IP一致)

4:填写之前查看的网购IP

5:填写之前查看的网关IP

修改完成后保存并退出

在终端中输入 让修改的配置生效 :service network restart

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_14

如果失败重启虚拟机(可以修改完主机名后在重启)

在终端中输入 :reboot

修改主机名: vim /etc/sysconfig/network

HDFS重启jn时造成nn挂掉_IP_15

测试是否能上网: ping www.baidu.com(记得重启虚拟机)

配置主机名和IP的映射关系(根据自己需要多少配置 几个虚拟机中都需要配置)

在终端中输入:vi /etc/hosts(主机名和IP一定要对应好 )

HDFS重启jn时造成nn挂掉_主机名_16

2.6 关闭防火墙

查看防火墙开机启动状态

chkconfig iptables --list 

关闭防火墙

chkconfig iptables off

(注意:每克隆一台虚拟机都要做2.5-2.6步骤)

2.7 安装jdk

进入/opt目录 :cd /opt

创建两个文件夹

mkdir module

mkdir software

用Xftp工具将jdk、Hadoop-2.7.2.tar.gz导入到opt目录下面的software文件夹下面

 

 

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_17

在linux系统下的opt目录中查看软件包是否导入成功

cd /opt/software/ 
ll

HDFS重启jn时造成nn挂掉_主机名_18

解压jdk到/opt/module目录下 :tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt/module/

开始配置jdk环境变量

cd /opt/module/jdk1.8.0_151/
pwd
记住jdk路径:/opt/module/jdk1.8.0_151 (最后粘贴在一个文档中)
打开/etc/profile文件配置jdk: cd /etc/profile 
按一下A键进入编辑状态
在文件最后加上 :
#JAVA-HOME
 export JAVA_HOME=/opt/module/jdk1.8.0_151
 export PATH=$PATH:$JAVA_HOME/bin

HDFS重启jn时造成nn挂掉_IP_19

保存并退出

让修改后的文件生效:source  /etc/profile

测试jdk是否安装成功 :java -version

HDFS重启jn时造成nn挂掉_IP_20

如果java –version可以用就不用重启) 在终端输入

 sync

 reboot

2.8 安装Hadoop

进入到Hadoop安装包路径下 : cd /opt/software/

解压安装文件到/opt/module下面 :tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/

查看是否解压成功

HDFS重启jn时造成nn挂掉_IP_21

 

输入以下命令进入hadoop配置文件中配置hadoop中的hadoop-env.sh

cd /opt/module/hadoop-2.7.2/etc/hadoop
vim hadoop-env.sh

HDFS重启jn时造成nn挂掉_IP_22

填上jdk的安装路径

保存并退出

将hadoop添加到环境变量
获取hadoop安装路径
cd /opt/module/hadoop-2.7.2/
pwd
记住这个路径:/opt/module/hadoop-2.7.2
打开/etc/profile文件:vi /etc/profile
在文件最后加上 :
#HADOOP_HOME
 export HADOOP_HOME=/opt/module/hadoop-2.7.2
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin

HDFS重启jn时造成nn挂掉_主机名_23

保存并退出

让修改后的文件生效:source /etc/profile

测试hadoop环境是否配置成功 :hadoop

HDFS重启jn时造成nn挂掉_IP_24

 如果hadoop命令不能用再重启

sync

reboot

Hadoop运行模式

3.1 SSH无密码登录

进入到我的root目录(如何是普通用户请进入/home 目录下自己的目录)

生成公钥和私钥:ssh-keygen -t rsa 

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

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

 

ssh-copy-id 192.168.1.102
ssh-copy-id 192.168.1.103
ssh-copy-id 192.168.1.104

3.2 编写集群分发脚本xsync

在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行。
cd /usr/local/bin
touch xsync
vi xsync
脚本内容如下:
#!/bin/bash
 #1 获取输入参数个数,如果没有参数,直接退出
 pcount=$#
 if((pcount==0)); then
 echo no args;
 exit;
 fi#2 获取文件名称
 p1=$1
 fname=`basename $p1`
 echo fname=$fname#3 获取上级目录到绝对路径
 pdir=`cd -P $(dirname $p1); pwd`
 echo pdir=$pdir#4 获取当前用户名称
 user=`whoami`#5 循环
 for((host=101; host<105; host++)); do
         #echo $pdir/$fname $user@hadoop$host:$pdir


        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

保存并退出

HDFS重启jn时造成nn挂掉_IP_25

修改脚本 xsync 具有执行权限 (r-4,w-2,x-1)

chmod 777 xsync

HDFS重启jn时造成nn挂掉_hadoop_26

 

3.3编写分发脚本xcall

在/usr/local/bin目录下创建xcall文件 ,文件内容如下 :
#!/bin/bash
 pcount=$#
 if((pcount==0));then
         echo no args;
         exit;
 fiecho -------------localhost----------
 $@
 for((host=101; host<=108; host++)); do
         echo ---------hadoop$host---------
         ssh Hadoop$host $@
 done修改脚本 xcall 具有执行权限
chmod 777 xcall
3.4配置集群
( 最后一个是hadoop104) 
 
hadoop102 
hadoop103   
HDFS
NameNode DataNode
DataNode
SecondaryNameNode DataNode
YARN
ResourceManager NodeManager
NodeManager
NodeManager
 
修改配置文件
这些配置文件所在目录:/opt/module/hadoop-2.7.2/etc/hadoop
 (1)core-site.xml(文件名)
    添加以下内容:
   <!-- 指定HDFS中NameNode的地址 -->
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop102:8020</value>
     </property>
     <!-- 指定hadoop运行时产生文件的存储目录 -->
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/opt/module/hadoop-2.7.2/data/tmp</value>
     </property>(2)Hdfs
 hadoop-env.sh(文件名)
添加以下内容:
         export JAVA_HOME=/opt/module/jdk1.7.0_79
hdfs-site.xml (文件名)
添加以下内容:
   <configuration>    
     <property>
         <name>dfs.replication</name>
         <value>3</value>
     </property>
     <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>hadoop104:50090</value>
     </property>
 </configuration>slaves (文件名)
添加以下内容:
hadoop102
 hadoop103
 hadoop104(3)配置yarn
 yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_151
yarn-site.xml
<configuration>
 <!-- Site specific YARN configuration properties -->
 <!-- reducer获取数据的方式 -->
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property><!-- 指定YARN的ResourceManager的地址 -->
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>hadoop102</value>
     </property>
     </configuration>(4)配置mapreduce
mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_151
mapred-site.xml
<configuration>
 <!-- 指定mr运行在yarn上 -->
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
     </configuration>在集群上分发以上所有文件
cd /opt/module/hadoop-2.7.2/etc/hadoop
xsync /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/slaves

3.5集群启动及测试

如果集群是第一次启动,需要格式化namenode(在/opt/module/hadoop-2.7.2下输入)

bin/hdfs namenode -format

启动HDFS: start-dfs.sh

启动yarn :start-yarn.sh

HDFS重启jn时造成nn挂掉_hadoop_27

集群搭建成功

wordcount例子运行

在集群上创建一个文件夹:

hadoop fs -mkdir -p /user/test/input

创建一个输入文件 :vi input.txt

HDFS重启jn时造成nn挂掉_hadoop_28

上传文件致集群:

hadoop fs -put input.txt /user/test/input

运行例子

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/test/input /user/test/out

下载结果: hadoop fs -get /user/test/out/part-r-00000

HDFS重启jn时造成nn挂掉_HDFS重启jn时造成nn挂掉_29

(由于本人也不是一次就搭建成功在这个过程中也多次出现错误,如果此文中存在错误欢迎留言指正,以及你在照此外搭建过程中出现错误也可以留言讨论)