大数据笔记(四):Hadoop 2.7.7+Scala+Spark 完全分布式集群搭建

本文记录了使用3台物理机部署Hadoop完全分布式集群的过程,所使用系统为Ubuntu16.04 LTS,Hadoop版本为Hadoop 2.7.7。

搭建前的准备

注意:
※ 下载密码:kevin
※ 教程中所有shell命令,如果没有特殊说明,全部都需要单步执行,不能批量粘贴。

免密登录

  1. 新装系统分别设置如下参数
No.姓名计算机名用户名
1(主节点)mastermasterhadoop
2(子节点)slave1slave1hadoop
3(子节点)slava2slave2hadoop

在这里插入图片描述

这里的情况是全新安装的系统,如果有已经安装的系统,可以为3台电脑分别创建hadoop用户并授予su权限加入hadoopGropu即可。

  1. 为3台物理机设置静态IP,方法参考百度。
  2. 检查hostname,以master机器为例,如果hostname不是master,需要修改为master,三台都需要检查。
    $ sudo gedit /etc/hostname
    
  3. 设置Hosts(三台同步操作)
    ifconfig #查看IP
    
    输入以下命令编辑hosts文件
    $ sudo gedit /etc/hosts
    
    在hosts中添加master、slave1、slave2的映射,每条记录一行
    192.168.0.1 master
    192.168.0.2 slave1
    192.168.0.3 slave2
    
    设置完后保存,在三台主机上互相ping,检测是否ping通:
    $ ping slave1 -c 4
    $ ping slave2 -c 4
    $ ping master -c 4
    
  4. 安装SSH并生成密钥对(三台同步)
    $ sudo apt-get install openssh-server #安装SSH
    $ ps -e | grep ssh #查看SSH进程是否启动
    $ ssh localhost #尝试登陆本机
    
    尝试登录本机后,如果出现Welcome to Ubuntu 16.04 LTS ....Last login: xxxxxx即为成功。
    $ ssh-keygen -t rsa #生成密钥对,输入后直接按三次回车,不需要输入密码。
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #密钥追加到认证公钥
    $ cd ~/.ssh #切换到ssh目录
    $ sudo chmod 600 authorized_keys #更改权限为600
    
  5. 分别在两个子节点上获取主节点master的密钥
    $ cd ~/.ssh
    $ scp hadoop@master:~/.ssh/id_rsa.pub ./master_rsa.pub
    $ cat master_rsa.pub >> authorized_keys #将master的密钥增加到子节点的认证公钥
    
    完成后回到master上,测试登陆是否免密:
    $ ssh slave1 #测试登陆节点1
    $ ssh slave2 #测试登陆节点2
    

安装JDK/Hadoop/Spark/Scala

master上,将博客开头的JDK和Hadoop包下载,并使用终端进入所在目录,逐条执行以下命令:

$ cd Downloads #进入下载目录
$ sudo mkdir /usr/lib/jvm   #创建jvm目录
$ sudo tar -zxvf jdk-8u201-linux-x64.tar.gz  -C /usr/lib/jvm #/ 解压java到/usr/lib/jvm目录下
$ sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local  #解压hadoop到/usr/local目录下
$ sudo tar -zxvf spark-2.3.3-bin-hadoop2.7.tgz -C /usr/local #解压spark到/usr/local目录下
$ sudo tar -zxvf scala-2.12.0.tgz -C /usr/local  #解压scala到/usr/local目录下
$ cd /usr/lib/jvm
$ sudo mv jdk1.8.0_201 java #重命名
$ cd /usr/local
$ sudo mv hadoop-2.7.7 hadoop  #重命名
$ sudo mv spark-2.3.3-bin-hadoop2.7 spark
$ sudo mv scala-2.12.0 scala
$ sudo chown -R hadoop ./hadoop  #修改权限

暂时先不配置环境变量。

修改Spark配置文件

  1. spark-env.sh
    $ cd spark/conf
    $ cp spark-env.sh.template spark-env.sh
    $ sudo gedit spark-env.sh
    

修改内容:

export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/lib/jvm/java
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
  1. slaves
    $ cp slaves.template slaves
    $ sudo gedit slaves
    

修改内容:

slave1
slave2

修改Hadoop配置文件

$ cd /usr/local/hadoop/etc/hadoop #进入Hadoop配置文件目录

本节涉及slaves hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 6个文件的修改。

  1. slaves
    $ sudo gedit slaves
    
    删除localhost,增加:
    slave1
    slave2
    
  2. hadoop-env.sh
    $ sudo gedit hadoop-env.sh
    
    修改JAVA_HOME:
    export JAVA_HOME=/usr/lib/jvm/java
    
  3. core-site.xml
    $ sudo gedit core-site.xml
    
    修改configuration节:
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
      </property>
      <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
      </property>
    </configuration>
    
  4. hdfs-site.xml
    $ sudo gedit hdfs-site.xml
    
    <configuration>
        <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>master:50090</value>
        </property>
        <property>
          <name>dfs.replication</name>
          <!-- 集群冗余副本数量 -->
          <value>2</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>/usr/local/hadoop/hdfs/name</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>/usr/local/hadoop/hdfs/data</value>
        </property>
    </configuration>
    
  5. mapred-site.xml
    $ cp mapred-site.xml.template mapred-site.xml #复制模板,生成xml
    $ sudo gedit mapred-site.xml #	打开
    
    修改配置节:
    <configuration>
     <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.address</name>
        <value>master:19888</value>
      </property>
    </configuration>
    
  6. yarn-site.xml
    $ sudo gedit yarn-site.xml
    
    修改配置节:
    <configuration>
         <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</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>
    </configuration>
    
  7. 配置完成后,使用master将整个hadoop、Java、Spark和Scala发送到两个子节点:
    $ scp -r /usr/local/hadoop hadoop@slave1:/usr/local
    $ scp -r /usr/local/hadoop hadoop@slave2:/usr/local
    $ scp -r /usr/local/spark hadoop@slave1:/usr/local
    $ scp -r /usr/local/spark hadoop@slave2:/usr/local
    $ scp -r /usr/local/scala hadoop@slave1:/usr/local
    $ scp -r /usr/local/scala hadoop@slave2:/usr/local
    $ scp -r /usr/lib/jvm hadoop@slave1:/usr/lib
    $ scp -r /usr/lib/jvm hadoop@slave2:/usr/lib
    
  8. 在集群所有机器上分别配置hadoop、Java、Spark和Scala的环境变量,所有机器
    $ cd ~
    $ sudo gedit ~/.bashrc
    

将下列内容追加到文件尾部:

#JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#Spark
export SPARK_HOME=/usr/local/spark
export PATH="$SPARK_HOME/bin:$PATH"

#Scala
export SCALA_HOME=/usr/local/scala

刷新环境变量

$ source ~/.bashrc
  1. 在所有机器上检查hadoop、Java、Spark和Scala环境,查看是否安装成功。
    $ java -version    #查看Java版本
    $ hadoop version   #查看hadoop版本
    $ scala            #查看Scala环境
    $ spark-shell      #查看Spark环境
    

启动集群(master上操作)

  1. 在master上格式化NameNode。(只在master上执行,且只执行一次)
    $ hadoop namenode -format
    
  2. 启动:
    $ cd /usr/local/hadoop/sbin #Hadoop的执行目录
    $ start-all.sh #启动
    
    如果启动成功,此时master终端输入jps可以看到NameNode和SecondaryNameNode等进程,slave有DataNode等进程。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建大数据环境需要以下步骤: 1. 安装HadoopHadoop是一个分布式计算框架,用于处理大规模数据集。安装Hadoop需要下载Hadoop软件包,并进行配置。 2. 安装Hive:Hive是一个数据仓库工具,用于在Hadoop上进行数据分析和查询。安装Hive需要下载Hive软件包,并进行配置。 3. 安装SparkSpark是一个快速的大数据处理框架,用于在Hadoop上进行数据处理和分析。安装Spark需要下载Spark软件包,并进行配置。 4. 安装Zookeeper:Zookeeper是一个分布式协调服务,用于管理Hadoop集群中的节点。安装Zookeeper需要下载Zookeeper软件包,并进行配置。 5. 安装HBase:HBase是一个分布式的NoSQL数据库,用于存储和管理大规模数据。安装HBase需要下载HBase软件包,并进行配置。 以上是搭建大数据环境的基本步骤,需要根据实际情况进行具体的配置和调整。 ### 回答2: 随着互联网技术的不断发展,越来越多的数据被产生和需要处理,因此,搭建大数据环境成为了一项非常重要的工作。目前,Hadoop、Hive、Spark、Zookeeper、Hbase等大数据技术成为了最为重要的技术。下面,我们来详细介绍这些技术的大数据环境搭建。 1. Hadoop的安装 Hadoop是一个开源的分布式文件系统和数据处理框架,可以处理大规模数据的存储和处理。Hadoop的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hadoop的二进制包; 3)解压Hadoop的二进制包,并配置环境变量; 4)修改Hadoop的相关配置文件; 5)启动Hadoop。 2. Hive的安装 Hive是一个基于Hadoop的数据仓库工具,提供了类似于SQL的查询语言,可以用于大规模数据仓库的创建和查询。Hive的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hive的二进制包; 3)解压Hive的二进制包,并配置环境变量; 4)修改Hive的相关配置文件; 5)启动Hive。 3. Spark的安装 Spark是一个快速而通用的大数据处理引擎,可以执行大规模数据处理任务,并支持分布式计算。Spark的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Spark的二进制包; 3)解压Spark的二进制包,并配置环境变量; 4)修改Spark的相关配置文件; 5)启动Spark。 4. Zookeeper的安装 Zookeeper是一个高性能分布式应用程序协调服务,可以用于协调和同步大规模集群中的应用程序。Zookeeper的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Zookeeper的二进制包; 3)解压Zookeeper的二进制包,并配置环境变量; 4)修改Zookeeper的相关配置文件; 5)启动Zookeeper。 5. Hbase的安装 Hbase是一个基于Hadoop分布式非关系型数据库,提供了类似于Google的Bigtable的基于列的存储方式。Hbase的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hbase的二进制包; 3)解压Hbase的二进制包,并配置环境变量; 4)修改Hbase的相关配置文件; 5)启动Hbase。 在完成上述大数据技术的安装后,我们还需在使用时将它们进行整合,以达到更加高效的数据处理和管理。这些技术之间的整合一般都需要配置相关的XML文件和环境变量,具体操作可根据实际情况去修改和设置。小编建议,初学者应该多参考一些大佬的经验,互联网上有很多大牛分享了上述技术的搭建方法,读者可以多花些时间去学习和了解。 ### 回答3: 随着现代信息技术的不断发展,大数据的应用越来越广泛。作为目前大数据环境的主流组件,Hadoop、Hive、Spark、Zookeeper和HBase都是大数据领域的重要工具。为了能够更好地进行大数据分析和处理,需要对这些工具进行合理的搭建和配置。 1. Hadoop的搭建 Hadoop是一个分布式存储和计算的框架,搭建Hadoop需要安装JAVA环境,并下载相应的Hadoop压缩包。将Hadoop解压到本地目录,在安装文件中设置JAVA_HOME和HADOOP_HOME环境变量。启动Hadoop需要先启动NameNode和DataNode,然后启动JobTracker和TaskTracker。搭建好Hadoop后,还需要使用HDFS命令行或Hadoop API进行文件的上传、下载、删除等基本操作。 2. Hive的搭建 Hive是一个基于Hadoop的数据仓库工具,可以将结构化数据映射到Hadoop的存储系统中。Hive搭建需要先安装JAVA环境和Hadoop,然后下载并解压Hive压缩包。将Hive和Hadoop的配置文件进行关联,启动Hive服务时需要启动Metastore和HiveServer2服务。搭建完成后,可以使用HiveQL语句进行数据的查询、插入、删除等操作。 3. Spark的搭建 Spark是一个快速通用的大数据计算引擎,可用于数据分析、机器学习等场景。Spark搭建需要安装JAVA和Scala等相关组件,并下载Spark压缩包。将Spark解压到本地目录后,设置SPARK_HOME环境变量以及Hadoop和YARN的配置相关参数。启动Spark服务时需要先启动Master和Slave节点。搭建完成后,可以使用Spark Shell和Spark SQL进行数据处理和分析。 4. Zookeeper的搭建 Zookeeper是一个分布式的协调服务,可以用于管理各类分布式应用程序的配置和信息。将Zookeeper下载并解压到本地目录,设置ZOOKEEPER_HOME环境变量,并修改Zoo.cfg配置文件中的端口号、数据目录等相关参数。启动Zookeeper服务时需要先启动一个Leader和多个Follower。搭建完成后,可以使用ZooKeeper API对Zookeeper的节点进行管理和配置。 5. HBase的搭建 HBase是一个列存储数据库,可以在Hadoop上提供实时读写服务。HBase搭建需要安装JAVA环境、Hadoop和Zookeeper,并下载HBase压缩包。将HBase解压到本地目录,并进行相关配置,比如修改HBase-site.xml配置文件的参数、设置HBASE_HOME环境变量等。启动HBase服务前需要先启动Zookeeper服务。搭建完成后,可以使用Java API或HBase Shell进行数据的读写操作。 综上所述,搭建大数据环境需要先安装基础的JAVA环境和相关组件,然后根据各个工具的安装包进行相应的配置和启动,最后进行测试和调试。在搭建过程中需要注意版本、路径等问题,避免出现配置错误。经过搭建和调试后,可以使用这些工具进行海量数据的分析和处理,为企业的决策提供有力的支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值