- 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试。其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式。至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了。。。
- 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多。在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来。于是就有了本篇博文。
- 其实我在搭建的时候,并不是按部就班的搭建,中间或多或少都更改过不少,试验出来了目前没啥问题的集群搭建。在写本文的时候,开始准备将环境在一台机器上搭建,然后全部传输到其他机器上。但是想了想,这样或许在搭建环境的时候快速,但是对于阅读者来说,不太友好。于是便拆分出来了,单独搭建一个也是可以的。好了,废话就少说了,教程如下。
[TOC]
这次因为是集群搭建,所以在环境配置方面,我使用一张表格来大致描述。集群使用了 3 台机器,分别是 master、slave1、slave2,通过名称命名就可以知道主从关系了。使用的操作系统是 CentOS6.8,具体各个机器安装的配置如下表格:
具体每个机器的配置就如上图了。需要补充的是,spark 这块我没有使用官方自带的 spark,而是使用的已经编译好的 spark 和 hive 的版本。因为后面在使用 hive 查询的时候,不想使用 hive 默认的 mr,在 hive2.x 之后,官方也不建议了。因为使用 mr 效率实在太低,所以在后面我会将 hive 的引擎换成 spark,而自己又不想重新编译 spark ,所以就用这个版本了。如果各位想自行编译,或者出现更高的版本,就没必要一定按照上面的来。还有存放路径这块,没必要一定要使用上面的,可以先在机器上使用 df -h 查看相应的磁盘空间,再来进行部署。
官方地址: 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
说明: 更改主机名是为了方便集群管理,不然每个机器的名称都叫 localhost 也不太好吧! 集群所有的机器都要做这个操作。
输入
- vim / etc / sysconfig / network
将 localhost.localdomain 修改为你要更改的名称,每台名称都不一样 例如:
HOSTNAME=master
- 注: 名称更改了之后输入reboot重启才会生效。
修改 hosts 文件,做关系映射 说明: 这个每台机器都做这个配置,具体 ip 和主机名称以自己的为准。 输入:
vim /etc/hosts
添加
- 192.169.0.23 master
- 192.169.0.24 slave1
- 192.169.0.25 slave2
说明: 可以在一台机器添加了之后可以使用 scp 命令或使用 ftp 将这个文件 copy 到 其他机器中。 scp 命令示例:
- scp - r / etc / hosts root@192.169.0.24 : /etc/
设置 ssh 免密码登录是为了操作方便 生成秘钥文件 在每台机器上都执行一遍 首先输入:
- ssh - keygen - t rsa - P ''
生成秘钥之后,然后将每台机器 / root/.ssh 都存入内容相同的文件,文件名称叫 authorized_keys,文件内容是我们刚才为 3 台机器生成的公钥。可以在一台机器上生成,然后复制到其它的机器上。
新建 authorized_keys 文件 输入 :
- touch / root / .ssh / authorized_keys
编辑 authorized_keys 并将其他机器上的秘钥拷贝过来
- cat /root/.ssh/id_rsa.pub
- vim /root/.ssh/authorized_keys
将其它机器上的 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
测试免密码登录 输入:
- ssh slave1
- ssh slave2
输入 exit 退出
说明: 其实可以不关闭防火墙,进行权限设置,但是为了方便访问,于是便关闭了防火墙。每个机器都做!!!
关闭防火墙的命令 停止防火墙: service iptables stop 启动防火墙: service iptables start 重启防火墙: service iptables restart 永久关闭防火墙: chkconfig iptables off
集群上的机器时间要同步,因为我这边的是虚拟机,所以就不用了。 设置集群时间同步可以使用 NTP 服务。 具体可以参考: http://blog.csdn.net/to_baidu/article/details/52562574
说明: 因为要经常切换各个目录之间,所以为了偷懒,就设置别名了。只需要在 linux 输入别名,就可以执行别名后面的命令,相当的方便。 例如: 我们常用的 ll 就是 ls -l 的别名。关于别名这块各位可以自行摸索。 输入:
vim ~/.bashrc
添加下面的内容
- # 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'
成功添加之后输入
source ~/.bashrc
然后输入设置的别名就可以执行你所设置的内容了。别名的设置不一定非要按照上面的,如果有更好方式就请使用
在 /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
事先说明,这些配置可以在一台机器上配置,然后复制到其他机器上就行了。复制之后注意使这些配置文件生效。
说明: 一般 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
移动到 opt/java 文件夹中,没有就新建,然后将文件夹重命名为 jdk1.8。
- mv jdk1.8.0_144 /opt/java
- mv jdk1.8.0_144 jdk1.8
然后编辑 profile 文件,添加如下配置 输入:
vim /etc/profile
添加:
- 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/
添加成功之后,输入
- source /etc/profile
- java -version
查看是否配置成功
将下载下来的 Hadoop 的配置文件进行解压 在 linux 上输入:
- tar - xvf hadoop - 2.8.2.tar.gz
然后将解压之后的文件夹移动到 opt/hadoop 文件夹下,没有该文件夹就新建,然后将文件夹重命名为 hadoop2.8。 在 linux 上输入移动文件夹命令:
- mv hadoop-2.8.2 /opt/hadoop
- mv hadoop-2.8.2 hadoop2.8
编辑 /etc/profile 文件 输入:
vim /etc/profile
添加:
- 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
输入:
- source / etc / profile
使配置生效
修改 core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml 等这些配置文件 在 linux 输入进入该目录的命令:
- cd / opt / hadoop / hadoop2.8 / etc / hadoop
hadoop 的存放路径可以自行更改。开始我以为这些文件夹需要手动创建,后来实践了,如果不手动创建,会自动创建的,所以就去掉了手动创建目录的步骤。 输入:
vim core-site.xml
在 <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>
说明: fs.defaultFS 是缺省文件的名称, 最早使用的是 fs.default.name,后来在最新官方文档中查到该方法已经弃用了。于是边改成这个了。ps:感觉也没啥区别。
这个要做,不知道为什么相对路径不识别,于是就使用绝对路径。 将
- export JAVA_HOME=${JAVA_HOME}
修改为:
- export JAVA_HOME = /opt/java / jdk1.8
注: 修改为自己 JDK 的路径
下面的 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>
执行 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>
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>
说明:yarn.nodemanager.vmem-check-enabled 这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。
设置主从的配置。如果不设置这个,集群就无法得知主从了。如果是单机模式,就没必要配置了。 修改 / opt/hadoop/hadoop2.8/etc/hadoop/slaves 文件 更改为
slave2
slave1
这些配置参考 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/
hadoop 环境传输
- scp - r / opt / hadoop root@slave1: /opt
- scp -r /opt / hadoop root@slave2: /opt/
传输之后,便在主节点启动集群。 在启动 hadoop 之前,需要初始化,这个只需要在 master 上初始化就可以了。
注: 启动 hadoop 之前确保防火墙关闭,各个机器时间通过,ssh 免登录都没问题。 初始化 hadoop 切换到 / opt/hadoop/hadoop2.8/bin 目录下输入
- . / hdfs namenode - format
初始化成功之后,切换到 / opt/hadoop/hadoop2.8/sbin 启动 hadoop 的 hdfs 和 yarn 输入:
- start-dfs.sh
- start-yarn.sh
第一次登录会询问是否连接,输入 yes ,然后输入密码就可以了 启动成功之后,可以使用 jps 命令在各个机器上查看是否成功 可以在浏览器输入: ip+50070 和 8088 端口查看
若如图显示,则启动成功。 若失败,检查 jps 是否成功启动,防火墙是否都关闭。都确认没问题之后,还是无法打开界面,请查看日志,再来找原因。
说明: 其实 spark 的相关配置,我在 大数据学习系列之六 ----- Hadoop+Spark 环境搭建 http://www.panchengming.com/2017/12/19/pancm63/ 应该已经说的很详细了,虽然是单机环境。其实集群也就增加个 slave 配置,其他的暂时好像没什么了。所以就简单的贴下配置。
和 JDK 配置几乎一样
将下载好的 Scala 文件解压 输入
- tar - xvf scala - 2.12.2.tgz
然后移动到 / opt/scala 里面 并且重命名为 scala2.1 输入
- mv scala-2.12.2 /opt/scala
- mv scala-2.12.2 scala2.12
编辑 /etc/profile 文件 输入:
- export SCALA_HOME=/opt/scala/scala2.12
- export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:$PATH
输入:
- source / etc / profile
使配置生效 输入 scala -version 查看是否安装成功
将下载好的 Spark 文件解压 输入
- tar - xvf spark - 1.6.3 - bin - hadoop2.4 - without - hive.tgz
然后移动到 / 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
编辑 /etc/profile 文件 输入:
- export SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
- export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH
输入:
- source / etc / profile
使配置生效
切换目录 输入:
- cd / opt / spark / spark1.6 - hadoop2.4 - hive / conf
在 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
注: 上面的路径以自己的为准,SPARK_MASTER_IP 为主机,SPARK_EXECUTOR_MEMORY 为设置的运行内存。
slaves 分布式文件 在 conf 目录下,修改 slaves 文件,如果没有 slaves 该文件,就复制 slaves .template 文件并重命名为 slaves 。 修改这个新建的 slaves 文件,加入配置:
slave2
slave1
在一台机器上 (最好是 master) 做完这些配置之后,我们使用 scp 命令将这些配置传输到其他机器上。 输入: scala 环境传输
- scp - r / opt / scala root@slave1: /opt
- scp -r /opt / scala root@slave2: /opt/
spark 环境传输
- scp - r / opt / spark root@slave1: /opt
- scp -r /opt / spark root@slave2: /opt/
传输之后,便在主节点启动集群。
说明: 要先启动 Hadoop 切换到 Spark 目录下 输入:
- cd / opt / spark / spark2.2 / sbin
然后启动 Spark 输入:
start-all.sh
启动成功之后,可以使用 jps 命令在各个机器上查看是否成功。 可以在浏览器输入: ip+8080 端口查看
若成功显示这个界面,则表示 Spark 成功启动。
因为 HBase 做集群,所以就需要 zookeeper 了。 zookeeper 在很多环境搭建上,都会有他的身影,如 kafka、storm 等,这里就不多说了。
将下载下来的 Zookeeper 的配置文件进行解压 在 linux 上输入:
- tar - xvf zookeeper - 3.4.10.tar.gz
然后移动到 / opt/zookeeper 里面,没有就新建,然后将文件夹重命名为 zookeeper3.4 输入
- mv zookeeper-3.4.10 /opt/zookeeper
- mv zookeeper-3.4.10 zookeeper3.4
编辑 /etc/profile 文件 输入:
- export ZK_HOME=/opt/zookeeper/zookeeper3.4
- export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH
输入:
- source / etc / profile
使配置生效
在集群的服务器上都创建这些目录
- mkdir /opt/zookeeper/data
- mkdir /opt/zookeeper/dataLog
并且在 / opt/zookeeper/data 目录下创建 myid 文件 输入:
touch myid
创建成功之后,更改 myid 文件。 我这边为了方便,将 master、slave1、slave2 的 myid 文件内容改为 1,2,3
切换到 / 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
说明: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/
因为 zookeeper 是选举制,它的主从关系并不是像 hadoop 那样指定的,具体可以看官方的文档说明。 成功配置 zookeeper 之后,在每台机器上启动 zookeeper。 切换到 zookeeper 目录下
- cd / opt / zookeeper / zookeeper3.4 / bin
输入:
zkServer.sh start
成功启动之后 查看状态输入:
- zkServer.sh status
可以查看各个机器上 zookeeper 的 leader 和 follower
将下载下来的 HBase 的配置文件进行解压 在 linux 上输入:
- tar - xvf hbase - 1.2.6 - bin.tar.gz
然后移动到 / opt/hbase 文件夹里面,并重命名为 hbase1.2 输入
- mv hbase-1.2.6 /opt/hbase
- mv hbase1.2 /opt/hbase
编辑 /etc/profile 文件 输入:
- export HBASE_HOME=/opt/hbase/hbase1.2
- export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH
输入:
- source / etc / profile
使配置生效 输入 hbase version 查看版本
切换到 /opt/hbase/hbase-1.2.6/conf 下
编辑 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
说明: 配置的路径以自己的为准。HBASE_MANAGES_ZK=false 是不启用 HBase 自带的 Zookeeper 集群。
编辑 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>
说明: hbase.rootdir:这个目录是 region server 的共享目录,用来持久化 Hbase 。hbase.cluster.distributed :Hbase 的运行模式。false 是单机模式,true 是分布式模式。若为 false,Hbase 和 Zookeeper 会运行在同一个 JVM 里面。
指定 hbase 的主从,和 hadoop 的 slaves 文件配置一样 将文件修改为
slave2
slave1
注: 上面的为集群的主机名称
在一台机器上 (最好是 master) 做完这些配置之后,我们使用 scp 命令将这些配置传输到其他机器上。 输入: hbase 环境传输
- scp - r / opt / hbaseroot@slave1: /opt
- scp -r /opt / hbase root@slave2: /opt/
传输之后,便在主节点启动集群。
在成功启动 Hadoop、zookeeper 之后 切换到 HBase 目录下
- cd / opt / hbase / hbase1.2 / bin
输入:
start-hbase.sh
启动成功之后,可以使用 jps 命令在各个机器上查看是否成功 可以在浏览器输入: ip+16010 端口查看
若成功显示该界面,则启动成功。
因为 hive 安装使用不需要集群,只需在一台机器上安装使用就可以了,之前在我的 大数据学习系列之四 ----- Hadoop+Hive 环境搭建图文详解 (单机) http://www.panchengming.com/2017/12/16/pancm61/ 里面已经讲解的很详细,所以本文就不在描述了。
环境搭建参考: http://blog.csdn.net/pucao_cug/article/details/72773564 环境配置参考的官方文档。
到此,本教程就结束了,谢谢阅读!
来源: https://www.cnblogs.com/xuwujing/p/8150109.html