Vmware 搭建基础大数据环境

注:使用VMware+Centos7

安装步骤

  1. 安装Centos7虚拟机,参考网上教程,安装时网络模式选择NAT方式

  2. 虚拟机左上方,编辑-》虚拟网络编辑器,选择VMnet8NAT模式,设置子网IP以及子网掩码,按心情配置即可,随后在DHCP设置中将起始IP地址和结束IP地址根据配置的子网IP和子网掩码进行填写即可(使用DHCP方式的话,不用在系统中设置静态IP,不过要把DHCP的租用时间尽可能的设置长一点,保证IP短时间不会改变),点击确定。


    Vmware 搭建基础大数据环境_第1张图片
    enter image description here
  3. 假设安装好了一台虚拟机,即可利用VMware提供的克隆功能,克隆出剩余的几台机器,不用再单独安装,十分方便,具体操作,右键已经安装的虚拟机->管理->克隆,至此已经有了以下虚拟机(命名随意):


    Vmware 搭建基础大数据环境_第2张图片
    enter image description here
  4. 打开四台虚拟机,首先是系统配置,添加epel源,更新,添加hadoop用户,添加sudo权限
    #sudo su 用root登陆或者切换为root账户
    yum install epel-release
    yum update -y
    yum install git curl vim wget -y
    useradd hadoop -s /bin/bash -d /home/hadoop -m -G wheel
    passwd hadoop

  5. 配置hosts, 演示所用四台虚拟机的IP地址分别为:

    • master: 192.168.175.5
    • slave1: 192.168.175.6
    • slave2: 192.168.175.4
    • client: 192.168.175.7

    首先要修改每个机器的机器名:
    vim /etc/sysconfig/network
    添加 "HOSTNAME=master",其余三台机器类似,分别添加"HOSTNAME=机器名",之后在每台机器上执行
    echo " 192.168.175.5 master 192.168.175.6 slave1 192.168.175.4 slave2 192.168.175.7 client " >> /etc/hosts

  6. 添加SSH信任,免密登录(master上操作)
    su hadoop
    #切换为hadoop用户
    ssh-keygen -t rsa
    #生成用户级公密钥
    #按3下回车,完成密钥生成
    #开启ssh服务(四台机器都要开启,不然没法连过去)
    service sshd start
    #关闭防火墙
    service iptables stop
    #配置信任公钥
    cd ~/.ssh
    cp id_rsa.pub authorized_keys
    chmod 400 authorized_keys
    #添加服务器的服务端公钥
    ssh master ssh node1 ssh node2
    #可以不用登陆,只要出现提示第一次连接添加密钥那一步,输入yes,就可以退出
    #建立信任关系
    #第一次scp需要输入其余服务器hadoop账户的密码
    scp -r ~/.ssh slave1:~
    scp -r ~/.ssh slave2:~
    scp -r ~/.ssh client:~
    #最后切换回root权限
    exit(至此,四台机器之间可ssh免密登录,随意切换)

  7. 接下来安装所需软件 JDK1.8、scala2.11.11、Spark2.2.0、Hadoop 2.7.4
    首先下载对应包,在root用户的家目录下执行
    mkdir soft
    cd soft
    wget 相应包文件链接
    或者为了方便, 直接用本机下载,完事scp到虚拟机上
    接着把soft整个目录copy到slave1 和slave2机器上,client不需要,client只是我们模拟提交代码的客户端机器。
    以下操作master、slave1、slave2都需要进行

    • 安装JDK
      mkdir -p /usr/local/java
      tar zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java

    • 安装Scala
      tar zxvf scala-2.11.11.tgz -C /opt
      ln -s /opt/scala-2.11.11 /usr/local/scala

    • 安装hadoop
      tar zxvf hadoop-2.7.4.tar.gz -C /opt
      ln -s /opt/hadoop-2.7.4 /usr/local/hadoop

    • 安装Spark
      tar zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt
      ln -s /opt/spark-2.2.0-bin-hadoop2.7 /usr/local/spark
      chown hadoop:hadoop /opt -R

  8. 配置环境变量
    执行
    vim /etc/bashrc 在末尾添加:
    #JDK
    export JAVA_HOME="/usr/local/java/jdk1.8.0_151"
    export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
    export PATH="$PATH:$JAVA_HOME/bin"
    #scala
    export SCALA_HOME="/usr/local/scala"
    export PATH="$PATH:$SCALA_HOME/bin"
    #hadoop
    xport HADOOP_HOME="/usr/local/hadoop"
    export HADOOP_CONF_DIR="$HADOOP_HOME/etc/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"
    #spark
    export SPARK_HOME="/usr/local/spark"
    export PATH="$PATH:$SPARK_HOME/bin"
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    之后执行
    source /etc/bashrc
    查看jdk版本
    java -version
    注意有些系统会自带openjdk,这时执行上述命令会显示openjdk的版本,修改系统默认jdk:
    cd /usr/bin
    ln -s -f /usr/local/java/jdk1.8.0_151/jre/bin/java
    ln -s -f /usr/local/java/jdk1.8.0_151/bin/javac
    查看scala版本
    scala -version
    查看hadoop版本
    hadoop version

  9. Hadoop分布式配置
    分布式模式需要修改hadoop 中的5个配置文件:slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。

    • slaves
      文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点既作为 NameNode 也作为 DataNode。
      这里我们让 Master 节点仅作为 NameNode 使用,slave1和slave2作为DataNode
      cd /usr/local/hadoop/etc/hadoop
      echo "slave1 slave2" > /usr/local/hadoop/etc/hadoop/slaves
    • core-site.xml

      <-- 指定HDFS namenode 的通信地址 -->

      fs.defaultFS
      hdfs://master:8020

      <-- 指定hadoop运行时产生文件的存储路径 -->

      hadoop.tmp.dir
      file:/usr/local/hadoop/tmp

    • hdfs-site.xml

      <-- 设置hdfs副本数量 -->

      dfs.replication
      2

      <-- 设置namenode存放的路径 -->

      dfs.namenode.name.dir
      file:/usr/local/hadoop/tmp/dfs/name

      <-- 设置datanode存放的路径 -->

      dfs.datanode.data.dir
      file:/usr/local/hadoop/tmp/dfs/data

    • mapred-site.xml
      执行
      mv /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
      打开mapred-site.xml


      mapreduce.framework.name
      yarn

    • yarn-site.xml

      <-- 设置 resourcemanager 在哪个节点-->

      yarn.resourcemanager.hostname
      master

      <-- reducer取数据的方式是mapreduce_shuffle -->

      yarn.nodemanager.aux-services
      mapreduce_shuffle

  10. 配置同步
    su hadoop
    scp -r /usr/local/hadoop/etc/hadoop/* slave1:/usr/local/hadoop/etc/hadoop
    scp -r /usr/local/hadoop/etc/hadoop/* slave2:/usr/local/hadoop/etc/hadoop

  11. 启动Hadoop(master)
    hadoop namenode -format
    start-dfs.sh
    start-yarn.sh
    mr-jobhistory-daemon.sh start historyserver
    使用jps查看状态
    jps

  • http://master:50070 查看 hadoop 集群情况
  • http://master:19888 查看 JobHistory 中的任务执行历史信息
  • http://slave1:8042 可以查看 slave1中 NodeManager 运行状态
  • http://slave2:8042 可以查看 slave2中 NodeManager 运行状态
  1. 常见错误
    hadoop web50070端口界面打开之后没有找到dataNode,显示数量为0,,这时候检查一下自己的防火墙,centos7默认用的是firewall,把防火墙关掉。
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动

你可能感兴趣的:(Vmware 搭建基础大数据环境)