前期准备:

1.安装虚拟机


2.安装CentOS 7(注意这里选择最小安装,稍后还要克隆)

过程:

一:CentOS 7网络配置,克隆子机

二:远程传输

三:创建Hadoop用户

四:配置SSH无密码登录

五:安装JDK

六:安装Hadoop

一:CentOS 7网络配置,克隆子机

在我们实际工作中,Hadoop的集群服务器不是只有一台两台,几十台,上百台也是有可能的,那么每台服务器都自己的IP,IP太多,容易混淆,可以通过设置主机名对服务器进行标识。


hadoop 创建账户 hadoop搭建_Hadoop


1 .博主这里呢创建了一台Hadoop Master 主机,克隆了四台从机(后三位都是有序的IP以免混淆)


我们先配置静态ip,因为每一台配置除了IPADDR需要变动,其余都是一样的,一台一台改太费劲,所以博主这里是配置好固定的,稍后克隆完成后再去追加IPADDR。 记得网关要改本机的




hadoop 创建账户 hadoop搭建_Hadoop_02



克隆步骤: 关闭主机Hadoop Master > 点击选中主机选择虚拟机 > 管理 > 克隆 > 两个下一步 > 创建完整克隆 > 修改名称跟位置(子机名最好有序,后面防止出错) > 完成 > 等待克隆完成之后关闭就可以


设置IP: echo IPADDR=你的IP >> file #等于在你的配置文件中最后一行添加IPADDR


hadoop 创建账户 hadoop搭建_linux_03


重启网络服务: # systemctl restart network / service network restart


检查ip: ping ip


检查网络: ping www.baidu.com (如果网络不通就去设置DNS网络配置编辑/etc/resolv.conf加上的 nameserver 网关 或者 nameserver 8.8.8.8)


OK,静态IP设置成功(剩下从机也是一样)


2.设置主机名及IP映射


IP映射:


新建一个hosts.cfg文件touch hosts.cfg


打开编辑输入如下内容 vi hosts.cfg

#!/bin/bash 
 
  

   echo 192.168.229.134 Master134 >> /etc/hosts 
 
  

   echo 192.168.229.135 Master135 >> /etc/hosts 
 
  

   echo 192.168.229.136 Master136 >> /etc/hosts 
 
  

   echo 192.168.229.137 Master137 >> /etc/hosts 
 
  

   echo 192.168.229.138 Master138 >> /etc/hosts(这里是博主自己的IP序列)


保存后退出Esc+:wq


运行hosts.cfg文件去查看hosts


# bash host.cfg


hadoop 创建账户 hadoop搭建_hadoop 创建账户_04



主机名:


# echo Master >> /etc/hostname #相当于在hostname的文件中最后一行追加主机名


# cat /etc/hostname 发现主机名已经配置好了


然后测试ping一下从机,发现可以ping通,那其他从机的也一样


hadoop 创建账户 hadoop搭建_hadoop 创建账户_05



二:远程传输


我们把刚才创建的hosts文件传输给其他从机这叫做网络复制文件


# scp hosts.cfg root@192.168.229.135:~


hadoop 创建账户 hadoop搭建_linux_06

# echo 主机名 >> 文件路径

hadoop 创建账户 hadoop搭建_集群搭建配置_07

# bash 传输文件

hadoop 创建账户 hadoop搭建_hadoop_08


重启主机 # reboot


其他从机一样,如果想在windows下ping通Hadoop Master话需要编辑C:\Windows\System32\drivers\etc\hosts 在最下面加上ip 主机名


三:创建Hadoop用户


用户:是系统中使用的资源的主题


组:指的是具有相同权限一组的主题


权限:操作的粒度


创建用户:useradd/adduser -m hadoop -G root -s /bin/bash


设置密码 (不重复输入密码)echo hadoop | passwd hadoop --stdinls


设置密码 :passwd hadoop


设置完成之后会发现home文件下面已经有了hadoop用户可以用su 用户名,来切换用户


hadoop 创建账户 hadoop搭建_hadoop_09


为hadoop授予管理员权限,避免以后在操作时,遇到权限不够的问题


# visudo


hadoop 创建账户 hadoop搭建_hadoop 创建账户_10


按ESC键盘,输入英文冒号,然后输入98号,找到root ALL=(ALL) ALL 


输入英文字母“i”,进入插入模式,复制一份粘贴到下一行,把root改为新创建的用户hadoop,然后再次输入ESC,输入英文冒号,输入wq,保存退出 


四:配置SSH无密码登录


1.查看是否安装了SSH


集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,执行如下命令进行检验:使用hadoop用户登录


# rpm -qa | grep ssh



hadoop 创建账户 hadoop搭建_hadoop_11



2.配置SSH无密码登录  


目的:从主机到从机,无需输入密码


操作步骤:  切换到hadoop用户的主题目录下的.ssh文件,如果没有.ssh文件请先执行一次ssh localhost


# cd ~/.ssh


# ssh-keygen -t rsa 生成秘钥



hadoop 创建账户 hadoop搭建_linux_12



在Master主机中进行远程拷贝


# scp authorized_keys hadoop@Master135:~/.ssh/


hadoop 创建账户 hadoop搭建_集群搭建配置_13

然后到Master135上看文件下面有没有传输的文件



hadoop 创建账户 hadoop搭建_linux_14



测试:在主机Master中使用ssh Master135登录从机Master135


hadoop 创建账户 hadoop搭建_hadoop_15


五:安装JDK


hadoop 创建账户 hadoop搭建_hadoop 创建账户_16



下载完成之后上传到hadoop下创建一个software文件存放,因为博主已经在主机上安装过JDK了,所以我们在从机上安装,把主机下载好的jdk传输到从机上


[hadoop@Master software]$ scp jdk-8u152-linux-x64.tar.gz hadoop@Master135:~/software/



hadoop 创建账户 hadoop搭建_linux_17



然后我们可以在从机上看到传输的jdk


hadoop 创建账户 hadoop搭建_linux_18

使用解压命令进行解压:tar zxvf jdk-8u152-linux-x64.tar.gz

hadoop 创建账户 hadoop搭建_Hadoop_19


配置环境变量:


[hadoop@master135 software]$ vi ~/.bashrc 

 

  export JAVA_HOME=/home/hadoop/software/jdk1.8 

 

  export PATH=$PATH:$JAVA_HOME/bin 

 

  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

hadoop 创建账户 hadoop搭建_Hadoop_20


重新加载bashrc文件,让环境变量立即生效,然后查看环境是否配置成功


# source ~/.bashrc 

 

  # echo $JAVA_HOME 

 

  # java -version


hadoop 创建账户 hadoop搭建_linux_21


六:安装Hadoop


1.Hadoop简介


Hadoop 是一个开源的可运行于大规模集群上的分布式并行编程框架,其最核心的设计包括:MapReduce 和 HDFS。基于 Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。


HDFS :Hadoop Distributed File System 的缩写,Hadoop中的分布式文件系统,它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。


MapResuce :MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。


官网: http://hadoop.apache.org/releases.html



hadoop 创建账户 hadoop搭建_集群搭建配置_22



因为博主已经在主机上安装过Hadoop了,所以我们在从机上安装,把主机下载好的Hadoop传输到从机上


# scp hadoop-2.7.5.tar.gz hadoop@Master135:~/software/



hadoop 创建账户 hadoop搭建_linux_23



hadoop 创建账户 hadoop搭建_hadoop 创建账户_24


解压:tar zxvf hadoop-2.7.5.tar.gz


hadoop 创建账户 hadoop搭建_Hadoop_25


配置环境变量


编辑 # vi ~/.bashrc


# Hadoop Environment Variables
  export HADOOP_HOME=/home/hadoop/software/hadoop2.7 ##hadoop解压目录 
  export HADOOP_INSTALL=$HADOOP_HOME 
  export HADOOP_MAPRED_HOME=$HADOOP_HOME 
  export HADOOP_COMMON_HOME=$HADOOP_HOME 
  export HADOOP_HDFS_HOME=$HADOOP_HOME 
  export YARN_HOME=$HADOOP_HOME 
  export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
  export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin



hadoop 创建账户 hadoop搭建_Hadoop_26


在PATH后面追加Hadoop的环境变量


# $HADOOP_HOME/sbin:$HADOOP_HOME/bin



hadoop 创建账户 hadoop搭建_集群搭建配置_27



重新加载 bashrc 文件,使配置的 hadoop 环境变量立即生效


# source ~/.bashrc


检查环境变量是否配置成功


# echo $PATH


# hadoop version



hadoop 创建账户 hadoop搭建_linux_28



至此Hadoop安装完成,环境变量配置成功。