大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

      版权声明:本文为博主原创文章,转载请标明出处!博客地址:http://blog.csdn.net/qazwsxpcm          https://blog.csdn.net/qazwsxpcm/article/details/78937820        </div>
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
                          <div id="content_views" class="markdown_views">
        <!-- flowchart 箭头图标 勿删 -->
        <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
          <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
        </svg>
        <h2 id="引言"><a name="t0"></a>引言</h2>
    在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试。其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式。至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了。。。 
    整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多。在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来。于是就有了本篇博文。
    其实我在搭建的时候,并不是按部就班的搭建,中间或多或少都更改过不少,试验出来了目前没啥问题的集群搭建。在写本文的时候,开始准备将环境在一台机器上搭建,然后全部传输到其他机器上。但是想了想,这样或许在搭建环境的时候快速,但是对于阅读者来说,不太友好。于是便拆分出来了,单独搭建一个也是可以的。好了,废话就少说了,教程如下。

 
 
  • 1
  • 2
  • 3

目录

一、环境选择

1,集群机器安装图

这次因为是集群搭建,所以在环境配置方面,我使用一张表格来大致描述。集群使用了3台机器,分别是master、slave1、slave2,通过名称命名就可以知道主从关系了。使用的操作系统是CentOS6.8,具体各个机器安装的配置如下表格:
这里写图片描述

具体每个机器的配置就如上图了。需要补充的是,spark这块我没有使用官方自带的spark,而是使用的已经编译好的spark和hive的版本。因为后面在使用hive查询的时候,不想使用hive默认的mr,在hive2.x之后,官方也不建议了。因为使用mr效率实在太低,所以在后面我会将hive的引擎换成spark,而自己又不想重新编译spark ,所以就用这个版本了。如果各位想自行编译,或者出现更高的版本,就没必要一定按照上面的来。还有存放路径这块,没必要一定要使用上面的,可以先在机器上使用 df -h 查看相应的磁盘空间,再来进行部署。

2,配置说明

  • JDK :Hadoop和Spark 依赖的配置,官方建议JDK版本在1.7以上!!!
  • Scala:Spark依赖的配置,建议版本不低于spark的版本。
  • Hadoop: 是一个分布式系统基础架构。
  • Spark: 分布式存储的大数据进行处理的工具。
  • zookeeper:分布式应用程序协调服务,HBase集群需要。
  • HBase: 一个结构化数据的分布式存储系统。
  • Hive: 基于Hadoop的一个数据仓库工具,目前的默认元数据库是mysql。

3,下载地址

官方地址:
Hadoop:
http://www.apache.org/dyn/closer.cgi/hadoop/common

Spark:
http://spark.apache.org/downloads.html

Spark Sql on Hive
http://mirror.bit.edu.cn/apache/spark

Scala:
http://www.scala-lang.org/download

JDK:
http://www.oracle.com/technetwork/java/javase/downloads

HBase
http://mirror.bit.edu.cn/apache/hbase/

Zookeeper
http://mirror.bit.edu.cn/apache/zookeeper/

Hive
http://mirror.bit.edu.cn/apache/hive/

百度云:
链接:https://pan.baidu.com/s/1kUYfDaf 密码:o1ov

二、集群的相关配置

1,主机名更改以及主机和IP做相关映射

1. 更改主机名

说明:更改主机名是为了方便集群管理,不然每个机器的名称都叫localhost也不太好吧! 集群所有的机器都要做这个操作。

输入

 vim /etc/sysconfig/network 
 
 
  • 1

将localhost.localdomain修改为你要更改的名称,每台名称都不一样
例如:

HOSTNAME=master
 
 
  • 1
注: 名称更改了之后输入reboot重启才会生效。

 
 
  • 1
2.做主机和IP的关系映射

修改hosts文件,做关系映射
说明:这个每台机器都做这个配置,具体ip和主机名称以自己的为准。
输入:

vim /etc/hosts
 
 
  • 1

添加

192.169.0.23 master
192.169.0.24 slave1
192.169.0.25 slave2
 
 
  • 1
  • 2
  • 3

这里写图片描述
说明:可以在一台机器添加了之后可以使用scp 命令或使用ftp将这个文件copy到 其他机器中。
scp命令示例:

scp -r /etc/hosts root@192.169.0.24:/etc
 
 
  • 1

2,ssh免登录

设置ssh免密码登录是为了操作方便
生成秘钥文件
在每台机器上都执行一遍
首先输入:

ssh-keygen -t rsa -P ''
 
 
  • 1

生成秘钥之后,然后将每台机器/root/.ssh 都存入内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。可以在一台机器上生成,然后复制到其它的机器上。

新建authorized_keys文件
输入 :

 touch  /root/.ssh/authorized_keys
 
 
  • 1

编辑 authorized_keys 并将其他机器上的秘钥拷贝过来

cat /root/.ssh/id_rsa.pub
vim /root/.ssh/authorized_keys
 
 
  • 1
  • 2

将其它机器上的 id_rsa.pub 的内容拷贝到 authorized_keys这个文件中。
第一个机器:
这里写图片描述

第二个机器:
这里写图片描述

第三个机器:
这里写图片描述

最终authorized_keys文件的内容
这里写图片描述

将这个最终的authorized_keys文件copy到其他机器的 /root/.ssh 目录下。使用scp或者ftp都可以。
scp命令示例:

scp -r /root/.ssh/authorized_keys root@192.169.0.24:/root/.ssh
 
 
  • 1

测试免密码登录
输入:

ssh slave1
ssh slave2
 
 
  • 1
  • 2

输入 exit 退出
这里写图片描述

3,防火墙关闭

说明:其实可以不关闭防火墙,进行权限设置,但是为了方便访问,于是便关闭了防火墙。每个机器都做!!!

关闭防火墙的命令
停止防火墙:
service iptables stop
启动防火墙:
service iptables start
重启防火墙:
service iptables restart
永久关闭防火墙:
chkconfig iptables off

4,时间配置

集群上的机器时间要同步,因为我这边的是虚拟机,所以就不用了。
设置集群时间同步可以使用NTP服务。
具体可以参考: http://blog.csdn.net/to_baidu/article/details/52562574

5,快捷键设置(可选)

说明:因为要经常切换各个目录之间,所以为了偷懒,就设置别名了。只需要在linux输入别名,就可以执行别名后面的命令,相当的方便。 例如:我们常用的ll就是 ls -l 的别名。关于别名这块各位可以自行摸索。
输入:

vim ~/.bashrc
 
 
  • 1

添加下面的内容

# Some more ailases
alias chd='cd /opt/hadoop/hadoop2.8'
alias chb='cd /opt/hbase/hbase1.2'
alias chi='cd /opt/hive/hive2.1'
alias czk='cd /opt/zookeeper/zookeeper3.4'
alias csp='cd /opt/spark/spark2.0-hadoop2.4-hive'

alias fhadoop='/opt/hadoop/hadoop2.8/bin/hdfs namenode -format'
alias starthadoop='/opt/hadoop/hadoop2.8/sbin/start-all.sh'
alias stophadoop='/opt/hadoop/hadoop2.8/sbin/stop-all.sh'

alias starthbase='/opt/hbase/hbase1.2/bin/start-hbase.sh'
alias stophbase='/opt/hbase/hbase1.2/bin/stop-hbase.sh'

alias startzk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh start'
alias stopzk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh stop'
alias statuszk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh status'

alias startsp='/opt/spark/spark1.6-hadoop2.4-hive/sbin/start-all.sh'
alias stopsp='/opt/spark/spark1.6-hadoop2.4-hive/sbin/stop-all.sh'
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

这里写图片描述

成功添加之后输入

source ~/.bashrc
 
 
  • 1

然后输入设置的别名就可以执行你所设置的内容了。别名的设置不一定非要按照上面的,如果有更好方式就请使用

6,整体环境变量设置

在 /etc/profile 这个配置文件要添加很多的环境配置,这里就先将整体的环境配置列举出来,各位在配置环境变量的以自己的为准!!! 可以先配置好环境变量之后,在传输到其他机器上去。
我这里先将这些配置都传输到其他的机器上了,并且都source了,所以下文中这个配置文件的操作实际是没做的。具体情况以自己的为准。

#Java Config
export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
# Scala Config
export SCALA_HOME=/opt/scala/scala2.12
# Spark Config
export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
# Zookeeper Config
export ZK_HOME=/opt/zookeeper/zookeeper3.4
# HBase Config
export HBASE_HOME=/opt/hbase/hbase1.2
# Hadoop Config 
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
# Hive Config
export HIVE_HOME=/opt/hive/hive2.1
export HIVE_CONF_DIR=${HIVE_HOME}/conf

export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:$PATH
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

二、Hadoop的环境搭建

事先说明,这些配置可以在一台机器上配置,然后复制到其他机器上就行了。复制之后注意使这些配置文件生效。

1,JDK配置

说明: 一般CentOS自带了openjdk,但是hadoop集群使用的是oracle官方的jdk,所以先行卸载CentOS的jdk,然后再安装在oracle下载好的JDK。
首先输入 java -version
查看是否安装了JDK,如果安装了,但版本不适合的话,就卸载
这里写图片描述

输入
rpm -qa | grep java
查看信息
这里写图片描述
然后输入:
rpm -e –nodeps “你要卸载JDK的信息”
如: rpm -e –nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
这里写图片描述

确认没有了之后,解压下载下来的JDK

tar  -xvf   jdk-8u144-linux-x64.tar.gz
 
 
  • 1

移动到opt/java文件夹中,没有就新建,然后将文件夹重命名为jdk1.8。

mv  jdk1.8.0_144 /opt/java
mv  jdk1.8.0_144  jdk1.8
 
 
  • 1
  • 2

然后编辑 profile 文件,添加如下配置
输入:

vim /etc/profile
 
 
  • 1

添加:

export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
 
 
  • 1
  • 2
  • 3
  • 4

添加成功之后,输入

source /etc/profile
java  -version 
 
 
  • 1
  • 2

查看是否配置成功

2,hadoop配置

3.2.1 文件准备

将下载下来的Hadoop的配置文件进行解压
在linux上输入:

 tar  -xvf   hadoop-2.8.2.tar.gz
 
 
  • 1

然后将解压之后的文件夹移动到opt/hadoop文件夹下,没有该文件夹就新建,然后将文件夹重命名为hadoop2.8。
在linux上输入移动文件夹命令:

mv  hadoop-2.8.2 /opt/hadoop
mv  hadoop-2.8.2 hadoop2.8
 
 
  • 1
  • 2
3.2.2 环境配置

编辑 /etc/profile 文件
输入:

vim /etc/profile
 
 
  • 1

添加:

export HADOOP_HOME=/opt/hadoop/hadoop2.8 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
 
 
  • 1
  • 2
  • 3
  • 4

输入:

source  /etc/profile
 
 
  • 1

使配置生效

3.2.3 修改配置文件

修改 core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml 等这些配置文件
在linux输入进入该目录的命令:

cd /opt/hadoop/hadoop2.8/etc/hadoop
 
 
  • 1
3.2.3.1 修改 core-site.xml

hadoop的存放路径可以自行更改。开始我以为这些文件夹需要手动创建,后来实践了,如果不手动创建,会自动创建的,所以就去掉了手动创建目录的步骤。
输入:

vim core-site.xml
 
 
  • 1

<configuration>节点内加入配置:

 <configuration>
<property>
    <name>hadoop.temp.dir</name>
    <value>file:/root/hadoop/tmp</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
<!-- eclipse连接hive 的配置-->
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
 </property>
 <property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
</configuration>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

这里写图片描述

说明: fs.defaultFS 是缺省文件的名称, 最早使用的是 fs.default.name,后来在最新官方文档中查到该方法已经弃用了。于是边改成这个了。ps:感觉也没啥区别。

3.2.3.2 修改 hadoop-env.sh

这个要做,不知道为什么相对路径不识别,于是就使用绝对路径。

export   JAVA_HOME=${JAVA_HOME}
 
 
  • 1

修改为:

export   JAVA_HOME=/opt/java/jdk1.8
 
 
  • 1

注:修改为自己JDK的路径
这里写图片描述

3.2.2.3 修改 hdfs-site.xml

下面的hdfs的存放路径,可以根据自己机器更改。
<configuration>节点内加入配置:

 <property>
    <name>dfs:replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/root/hadoop/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/root/hadoop/data</value>
  </property>    
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

这里写图片描述

3.5.2.4 修改mapred-site.xml

执行mapreduce的运行框架配置。ps:感觉这个配置没啥用,可能我没用mr吧。
如果没有 mapred-site.xml 该文件,就复制mapred-site.xml.template文件并重命名为mapred-site.xml。
修改这个新建的mapred-site.xml文件,在<configuration>节点内加入配置:

<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>
 
 
  • 1
  • 2
  • 3
  • 4
3.5.2.5 修改yarn-site.xml文件

yarn 资源调度的配置,集群的话这个配置是必须的。
修改/opt/hadoop/hadoop2.8/etc/hadoop/yarn-site.xml文件,
<configuration>节点内加入配置

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
   </property>
   <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8182</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

这里写图片描述

说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。

3.5.2.6 修改slaves

设置主从的配置。如果不设置这个,集群就无法得知主从了。如果是单机模式,就没必要配置了。
修改/opt/hadoop/hadoop2.8/etc/hadoop/slaves文件
更改为

slave1 
slave2
 
 
  • 1
  • 2

这些配置参考Hadoop官方文档。
Hadoop官方配置文件具体说明: http://hadoop.apache.org/docs/r2.8.3/

在一台机器上(最好是master)做完这些配置之后,我们使用scp命令将这些配置传输到其他机器上。
输入:
jdk环境传输

scp -r /opt/java root@slave1:/opt
scp -r /opt/java root@slave2:/opt
 
 
  • 1
  • 2

hadoop环境传输

scp -r /opt/hadoop root@slave1:/opt
scp -r /opt/hadoop root@slave2:/opt
 
 
  • 1
  • 2

传输之后,便在主节点启动集群。
在启动hadoop之前,需要初始化,这个只需要在master上初始化就可以了。

3,hadoop启动

:启动hadoop之前确保防火墙关闭,各个机器时间通过,ssh免登录都没问题。
初始化hadoop
切换到/opt/hadoop/hadoop2.8/bin目录下输入

./hdfs  namenode  -format
 
 
  • 1

初始化成功之后,切换到/opt/hadoop/hadoop2.8/sbin
启动hadoop 的hdfs和yarn
输入:

start-dfs.sh
start-yarn.sh
 
 
  • 1
  • 2

第一次登录会询问是否连接,输入yes ,然后输入密码就可以了
启动成功之后,可以使用jps命令在各个机器上查看是否成功
可以在浏览器输入: ip+50070 和8088端口查看
这里写图片描述

这里写图片描述

若如图显示,则启动成功。
若失败,检查jps是否成功启动,防火墙是否都关闭。都确认没问题之后,还是无法打开界面,请查看日志,再来找原因。

四、Spark的环境配置

说明:其实spark的相关配置,我在大数据学习系列之六 —– Hadoop+Spark环境搭建 http://www.panchengming.com/2017/12/19/pancm63/ 应该已经说的很详细了,虽然是单机环境。其实集群也就增加个slave配置,其他的暂时好像没什么了。所以就简单的贴下配置。

1,Scala配置

和JDK配置几乎一样

4.1.1 文件准备

将下载好的Scala文件解压
输入

tar -xvf scala-2.12.2.tgz
 
 
  • 1

然后移动到/opt/scala 里面
并且重命名为scala2.1
输入

mv  scala-2.12.2  /opt/scala
mv scala-2.12.2 scala2.12
 
 
  • 1
  • 2
4.1.2 环境配置

编辑 /etc/profile 文件
输入:

export SCALA_HOME=/opt/scala/scala2.12
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:$PATH
 
 
  • 1
  • 2

输入:

source  /etc/profile
 
 
  • 1

使配置生效
输入 scala -version 查看是否安装成功

2,Spark配置

4.2.1,文件准备

将下载好的Spark文件解压
输入

tar -xvf spark-1.6.3-bin-hadoop2.4-without-hive.tgz
 
 
  • 1

然后移动到/opt/spark 里面,并重命名
输入

mv  spark-1.6.3-bin-hadoop2.4-without-hive  /opt/spark
mv  spark-1.6.3-bin-hadoop2.4-without-hive  spark1.6-hadoop2.4-hive
 
 
  • 1
  • 2
4.2.2,环境配置

编辑 /etc/profile 文件
输入:

export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH
 
 
  • 1
  • 2

输入:

source  /etc/profile
 
 
  • 1

使配置生效

4.2.3,更改配置文件

切换目录
输入:

cd /opt/spark/spark1.6-hadoop2.4-hive/conf
 
 
  • 1
4.2.3.1 修改 spark-env.sh

在conf目录下,修改spark-env.sh文件,如果没有 spark-env.sh 该文件,就复制spark-env.sh.template文件并重命名为spark-env.sh。
修改这个新建的spark-env.sh文件,加入配置:

export SCALA_HOME=/opt/scala/scala2.1    
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8    
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  
export SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
export SPARK_MASTER_IP=master    
export SPARK_EXECUTOR_MEMORY=4G
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

:上面的路径以自己的为准,SPARK_MASTER_IP为主机,SPARK_EXECUTOR_MEMORY为设置的运行内存。

4.2.3.2 修改slaves

slaves 分布式文件
在conf目录下,修改slaves文件,如果没有 slaves 该文件,就复制slaves .template文件并重命名为slaves 。
修改这个新建的slaves 文件,加入配置:

slave1 
slave2
 
 
  • 1
  • 2

在一台机器上(最好是master)做完这些配置之后,我们使用scp命令将这些配置传输到其他机器上。
输入:
scala环境传输

scp -r /opt/scala root@slave1:/opt
scp -r /opt/scala root@slave2:/opt
 
 
  • 1
  • 2

spark环境传输

scp -r /opt/spark root@slave1:/opt
scp -r /opt/spark root@slave2:/opt
 
 
  • 1
  • 2

传输之后,便在主节点启动集群。

3,spark启动

说明:要先启动Hadoop
切换到Spark目录下
输入:

cd /opt/spark/spark2.2/sbin
 
 
  • 1

然后启动Spark
输入:

 start-all.sh
 
 
  • 1

启动成功之后,可以使用jps命令在各个机器上查看是否成功。
可以在浏览器输入: ip+8080 端口查看

这里写图片描述
若成功显示这个界面,则表示Spark成功启动。

五、Zookeeper的环境配置

因为HBase做集群,所以就需要zookeeper了。
zookeeper 在很多环境搭建上,都会有他的身影,如kafka、storm等,这里就不多说了。

1,文件准备

将下载下来的Zookeeper 的配置文件进行解压
在linux上输入:

 tar  -xvf   zookeeper-3.4.10.tar.gz
 
 
  • 1

然后移动到/opt/zookeeper里面,没有就新建,然后将文件夹重命名为zookeeper3.4
输入

mv  zookeeper-3.4.10  /opt/zookeeper
mv  zookeeper-3.4.10  zookeeper3.4
 
 
  • 1
  • 2

2,环境配置

编辑 /etc/profile 文件
输入:

export  ZK_HOME=/opt/zookeeper/zookeeper3.4 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH
 
 
  • 1
  • 2

输入:

source  /etc/profile
 
 
  • 1

使配置生效

3,修改配置文件

5.3.1 创建文件和目录

在集群的服务器上都创建这些目录

mkdir   /opt/zookeeper/data  
mkdir   /opt/zookeeper/dataLog
 
 
  • 1
  • 2

并且在/opt/zookeeper/data目录下创建myid文件
输入:

touch  myid
 
 
  • 1

创建成功之后,更改myid文件。
我这边为了方便,将master、slave1、slave2的myid文件内容改为1,2,3
这里写图片描述

5.3.2 新建zoo.cfg

切换到/opt/zookeeper/zookeeper3.4/conf 目录下
如果没有 zoo.cfg 该文件,就复制zoo_sample.cfg文件并重命名为zoo.cfg。
修改这个新建的zoo.cfg文件

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述

说明:client port,顾名思义,就是客户端连接zookeeper服务的端口。这是一个TCP port。dataLogDir里是放到的顺序日志(WAL)。而dataDir里放的是内存数据结构的snapshot,便于快速恢复。为了达到性能最大化,一般建议把dataDir和dataLogDir分到不同的磁盘上,这样就可以充分利用磁盘顺序写的特性。dataDir和dataLogDir需要自己创建,目录可以自己制定,对应即可。server.1中的这个1需要和master这个机器上的dataDir目录中的myid文件中的数值对应。server.2中的这个2需要和slave1这个机器上的dataDir目录中的myid文件中的数值对应。server.3中的这个3需要和slave2这个机器上的dataDir目录中的myid文件中的数值对应。当然,数值你可以随便用,只要对应即可。2888和3888的端口号也可以随便用,因为在不同机器上,用成一样也无所谓。
1.tickTime:CS通信心跳数
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
3.syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5

依旧将zookeeper传输到其他的机器上,记得更改 /opt/zookeeper/data 下的myid,这个不能一致。
输入:

scp -r /opt/zookeeper root@slave1:/opt
scp -r /opt/zookeeper root@slave2:/opt
 
 
  • 1
  • 2

4,启动zookeeper

因为zookeeper是选举制,它的主从关系并不是像hadoop那样指定的,具体可以看官方的文档说明。
成功配置zookeeper之后,在每台机器上启动zookeeper。
切换到zookeeper目录下

cd /opt/zookeeper/zookeeper3.4/bin
 
 
  • 1

输入:

zkServer.sh start
 
 
  • 1

成功启动之后
查看状态输入:

 zkServer.sh status
 
 
  • 1

可以查看各个机器上zookeeper的leader和follower
这里写图片描述

六、HBase的环境配置

1,文件准备

将下载下来的HBase的配置文件进行解压
在linux上输入:

 tar  -xvf   hbase-1.2.6-bin.tar.gz
 
 
  • 1

然后移动到/opt/hbase 文件夹里面,并重命名为 hbase1.2
输入

mv  hbase-1.2.6  /opt/hbase
mv  hbase1.2  /opt/hbase
 
 
  • 1
  • 2

2,环境配置

编辑 /etc/profile 文件
输入:

export HBASE_HOME=/opt/hbase/hbase1.2
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH
 
 
  • 1
  • 2

输入:

source  /etc/profile
 
 
  • 1

使配置生效
输入
hbase version
查看版本
这里写图片描述

3,修改配置文件

切换到 /opt/hbase/hbase-1.2.6/conf 下

6.3.1 修改hbase-env.sh

编辑 hbase-env.sh 文件,添加以下配置

export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HBASE_HOME=/opt/hbase/hbase1.2
export HBASE_CLASSPATH=/opt/hadoop/hadoop2.8/etc/hadoop
export HBASE_PID_DIR=/root/hbase/pids
export HBASE_MANAGES_ZK=false
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这里写图片描述
说明:配置的路径以自己的为准。HBASE_MANAGES_ZK=false 是不启用HBase自带的Zookeeper集群。

6.3.2 修改 hbase-site.xml

编辑hbase-site.xml 文件,在<configuration>添加如下配置

<property>
 <name>hbase.rootdir</name>
 <value>hdfs://master:9000/hbase</value>
 <description>The directory shared byregion servers.</description>
</property>
 <!-- hbase端口 -->
<property>
 <name>hbase.zookeeper.property.clientPort</name>
 <value>2181</value>
</property>
<!-- 超时时间 -->
<property>
 <name>zookeeper.session.timeout</name>
 <value>120000</value>
</property>
<!--防止服务器时间不同步出错 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>150000</value>
</property>
<!-- 集群主机配置 -->
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>master,slave1,slave2</value>
</property>
<!--   路径存放 -->
<property>
 <name>hbase.tmp.dir</name>
 <value>/root/hbase/tmp</value>
</property>
<!-- true表示分布式 -->
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
</property>
  <!-- 指定master -->
  <property>
    <name>hbase.master</name>
    <value>master:60000</value>
  </property>

</configuration>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

这里写图片描述
说明:hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase 。hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。

6.3.3 修改regionservers

指定hbase的主从,和hadoop的slaves文件配置一样
将文件修改为

slave1 
slave2
 
 
  • 1
  • 2

这里写图片描述
:上面的为集群的主机名称

在一台机器上(最好是master)做完这些配置之后,我们使用scp命令将这些配置传输到其他机器上。
输入:
hbase环境传输

scp -r /opt/hbaseroot@slave1:/opt
scp -r /opt/hbase root@slave2:/opt
 
 
  • 1
  • 2

传输之后,便在主节点启动集群。

4,启动hbase

在成功启动Hadoop、zookeeper之后
切换到HBase目录下

cd /opt/hbase/hbase1.2/bin
 
 
  • 1

输入:

start-hbase.sh
 
 
  • 1

启动成功之后,可以使用jps命令在各个机器上查看是否成功
可以在浏览器输入: ip+16010 端口查看
这里写图片描述

若成功显示该界面,则启动成功。

七、Hive的环境安装配置

因为hive安装使用不需要集群,只需在一台机器上安装使用就可以了,之前在我的
大数据学习系列之四 —– Hadoop+Hive环境搭建图文详解(单机) http://www.panchengming.com/2017/12/16/pancm61/ 里面已经讲解的很详细,所以本文就不在描述了。

八、其他

环境搭建参考: http://blog.csdn.net/pucao_cug/article/details/72773564
环境配置参考的官方文档。

到此,本教程就结束了,谢谢阅读!

版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm    
个人博客出处:http://www.panchengming.com
原创不易,转载请标明出处,谢谢!
转载地址:https://blog.csdn.net/qazwsxpcm/article/details/78937820

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建大数据环境需要以下步骤: 1. 安装HadoopHadoop是一个分布式计算框架,用于处理大规模数据集。安装Hadoop需要下载Hadoop软件包,并进行配置。 2. 安装HiveHive是一个数据仓库工具,用于在Hadoop上进行数据分析和查询。安装Hive需要下载Hive软件包,并进行配置。 3. 安装SparkSpark是一个快速的大数据处理框架,用于在Hadoop上进行数据处理和分析。安装Spark需要下载Spark软件包,并进行配置。 4. 安装ZookeeperZookeeper是一个分布式协调服务,用于管理Hadoop集群中的节点。安装Zookeeper需要下载Zookeeper软件包,并进行配置。 5. 安装HBaseHBase是一个分布式的NoSQL数据库,用于存储和管理大规模数据。安装HBase需要下载HBase软件包,并进行配置。 以上是搭建大数据环境的基本步骤,需要根据实际情况进行具体的配置和调整。 ### 回答2: 随着互联网技术的不断发展,越来越多的数据被产生和需要处理,因此,搭建大数据环境成为了一项非常重要的工作。目前,HadoopHiveSparkZookeeperHbase大数据技术成为了最为重要的技术。下面,我们来详细介绍这些技术的大数据环境搭建。 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: 随着现代信息技术的不断发展,大数据的应用越来越广泛。作为目前大数据环境的主流组件,HadoopHiveSparkZookeeperHBase都是大数据领域的重要工具。为了能够更好地进行大数据分析和处理,需要对这些工具进行合理的搭建和配置。 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压缩包。将HiveHadoop的配置文件进行关联,启动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环境、HadoopZookeeper,并下载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、付费专栏及课程。

余额充值