CentOS 7搭建hadoop环境

寻找网上的博客教程,折腾了许久,出一篇自己成功搭建hadoop环境的文章,用来记录自己的探索,同时为大家伙少走弯路提供捷径

一、在虚拟机中安装CentOS 7并克隆两台机子

至此机器准备完成


二、查看ip地址

请查看:CentOS7 入赘虚拟机后,如何查看 ip 地址?

三、修改静态ip地址

在VM中菜单栏里,编辑->虚拟网络编辑器(用于查看子网ip以及子网掩码)

进入虚拟机,输入命令

cd /etc/sysconfig/network-scripts

编辑网络配置

vi ifcfg-ens33

在VM虚拟机选项菜单栏,中找到编辑->虚拟网络编辑器,按下图操作

按esc键,输入:wq,保存退出

记住:三台都需要设置

设置完成了之后可以相互ping一下ip

ping有什么作用? 可以验证两台机子之间是否可以通信

如下图所示:

我用第一台机子ping克隆的一台机子(192.168.112.137)

出现如下图所示就代表可以通信

如果不成功则会出现以下情形:


四、修改主机名

为什么要修改主机名,主机名可以代替ip地址,在我们进行计算机之间的通信的时候可以直接使用主机名,而不用去写ip

为每台机子设置主机名:hostnamectl set-hostname 你想设置的主机名称

在原来的机子上面修改配置文件:vi /etc/hosts

为每台机子都这样设置:

使用scp命令发送配置文件hosts到对应的机子上面:

scp /etc/hosts 目的机用户名@目的机名称:/etc/hosts

例如我的机子就该这样:

scp /etc/hosts root@chone1:/etc/hosts

对克隆的其他计算机都要发送hosts文件

完成之后,那么可以ping 计算机名称了

例如:

成功!

记住三台机子都互相测试一下哟


五、装java环境

有两种方式:自己从官网下载jdk,传到linux计算机,在进行解压安装等

那么我采用直接使用linux的yum命令安装,因为方便、快捷、省事儿

linux用yum命令下东西的时候速度非常慢,就是因为linux中centos7是默认国外源的,所以我们需要换成国内的源,这里推荐使用阿里源

以下是更换yum成阿里源的操作步骤:

  1. 第一次使用yum,输入命令:yum list,如果出现此界面,那么就要配置下国内的dns

配置dns如下,在/etc/resolv.conf中添加nameserver 114.114.114.114

按下esc , :wq保存退出

直到输入yum list出现类似于这样一个列表,就可以进行下面的操作啦

  1. 看看自己有没有安装wget rpm -qa|grep "wget"

  1. 如果没有安装,现场安装:yum -y install wget

  2. 备份镜像源(放置更换过程中出错):mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

  3. 从网络上下载yum源配置文件:sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  4. 清理后生成缓存

yum clean all
yum makecache

到此成功更换yum的源为阿里云

从源中搜索可安装jdk

yum search jdk

安装jdk1.8.0

yum install java-1.8.0-openjdk.x86_64

当然也可以安装其他版本的,1.8比较稳定

安装好了之后环境变量也自动配置好了

可以使用java -version来测试

到此成功安装jdk


六、配置SSH免密码登录

有什么作用?当用一台计算机用户登录另一台计算机时,每次登录都必须输入密码,在hadoop中,需要成千上万次登录,那么如果每次都需要输入密码的话,速度太慢了,而且折磨人

  1. 进入.ssh目录:cd ~/.ssh

  2. 生成ssh秘钥:ssh-keygen -t rsa 一直回车,只需要第一台计算机这样生成秘钥即可

  3. 到此生成了两个文件:

    id_rsa和id_rsa.pub

    在第一台计算机上执行:cp id_rsa.pub authorized_keys
    生成副本

    修改文件权限:

    chmod 644 authorized_keys
    
  4. 测试一下本机无密码登录

    sudo service sshd restart
    ssh master
    

    以下情况则代表登录成功:

  5. 测试第一台计算机与其他计算机无密码登录

向其他计算机发送秘钥:

scp /root/.ssh/authorized_keys 目的机用户名@目的机名称:/root/.ssh
  1. 测试能否无密码登录其他计算机

ok,到此成功配置SSH免密码登录


七、安装hadoop

手动下载hadoop官方压缩包:http://hadoop.apache.org/releases.html

挑选一个版本,下载二进制文件

这儿我下载的2.9.2版本

使用一个Windows客户端软件,点击下载:WinSCP(可将Windows上的文件传输到linux)

上传后解压,将解压文件夹移动到/opt/hadoop

tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 /opt/hadoop

进入/opt/hadoop/hadoop2.9.2/etc/hadoop/目录

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

查看该目录下的文件

编辑hadoop-env.sh和yarn-env.sh

将JAVA_HOME配置好,如何查看yum命令安装的jdk路径?

配置一下hadoop环境变量

vi /etc/profile

在末尾添加

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使配置文件生效

source /etc/profile


八、配置文件

进入到/opt/hadoop/hadoop2.9.4/etc/hadoop/目录

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

查看目录下所有文件:

注:mapred-site.xml原本是不存在的,由mapred-site.xml.template复制而来

往文件的标签内存放这些属性:

core-site.xml

  <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
  </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>
  </property>

效果如下:

hdfs-site.xml

      <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/dfs/data</value>
      </property>

mapred-site.xml

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
  </property>

yarn-site.xml

   <!-- Site specific YARN configuration properties -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
      </property>
      <property>
    <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
      </property>

编辑slaves文件,在里面添加克隆计算机的名字

例如:

利用scp将配置好的hadoop发送到各个计算机

scp -r /opt/hadoop 目的机用户名@目的机名称:/opt/hadoop

若发现权限不够,可以先发送到计算机的其他位置,再移动到/opt/hadoop文件夹下


九、集群群起

在第一台计算机上初始化(如果已经初始化一次,那么以后就尽量不要初始化)

bin/hdfs namenode -format

关闭防火墙:

systemctl stop firewalld.service

群起:

sbin/start-all.sh

此时可用jps命令查看是否已经启动


十、检验

在Windows宿主机上,打开浏览器,输入

http://你的第一台计算机名或者ip:8088

比如我的可以输入:

http://192.168.112.136:8088
或者
http://master:8088

出现如下界面:

如果许久没有出现这个界面,检查一下第一台计算机的防火墙是不是没关

service firewalld status

在地址栏输入时,将端口号改成50070,出现:

hadoop环境搭建成功!

总结

  1. 准备虚拟机(至少三台)
  2. 查看ip
  3. 修改为静态ip
  4. 修改主机名
  5. 配置java环境
  6. 配置ssh免密登录
  7. 安装hadoop
  8. 配置hadoop环境变量
  9. 配置hadoop文件
  10. 群起
  11. 检验
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐