美文网首页我爱编程
Vmware 搭建基础大数据环境

Vmware 搭建基础大数据环境

作者: 三丶七 | 来源:发表于2018-03-13 11:45 被阅读0次
    注:使用VMware+Centos7

    安装步骤

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

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


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


      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
        <configuration>
        <-- 指定HDFS namenode 的通信地址 -->
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
        </property>
        <-- 指定hadoop运行时产生文件的存储路径 -->
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        </property>
        </configuration>
      • hdfs-site.xml
        <configuration>
        <-- 设置hdfs副本数量 -->
        <property>
        <name>dfs.replication</name>
        <value>2</value>
        </property>
        <-- 设置namenode存放的路径 -->
        <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <-- 设置datanode存放的路径 -->
        <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
        </configuration>
      • mapred-site.xml
        执行
        mv /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
        打开mapred-site.xml
        <configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
        </configuration>
      • yarn-site.xml
        <configuration>
        <-- 设置 resourcemanager 在哪个节点-->
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
        </property>
        <-- reducer取数据的方式是mapreduce_shuffle -->
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        </configuration>
    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

    1. 常见错误
      hadoop web50070端口界面打开之后没有找到dataNode,显示数量为0,,这时候检查一下自己的防火墙,centos7默认用的是firewall,把防火墙关掉。
      systemctl stop firewalld.service #停止firewall
      systemctl disable firewalld.service #禁止firewall开机启动

    相关文章

      网友评论

        本文标题:Vmware 搭建基础大数据环境

        本文链接:https://www.haomeiwen.com/subject/epxzfftx.html