大数据原生集群 (Hadoop2.X为核心) 本地测试环境搭建四

本篇安装版本

spark-2.1.1-bin-hadoop2.7
zeppelin0.9.0
Flume1.7
sqoop1.4.7
hbase-1.3.1
phoenix4.11


Spark

1、在官网下载解压spark的安装包

2、进入conf文件夹中将配置文件中的spark-defaults.conf.template、spark-env.sh.template和slaves.template末尾的“.template”去掉

在spark-env.sh文件中修改如下配置,这里要提一嘴,我虽然写了hadoopHome,但只是出于习惯才写的,其实spark本身并不需要所有的hadoophome下的文件,打开配置文件后看上面的注释,就可以发现它只需要hadoop的配置文件,而不是所有的,所以不要以为hadoop和spark必须在同一个群节点或者是需要有交集的节点

#JAVA JDK
export JAVA_HOME=/opt/jdk1.8.0_144

#scala JDK
export SCALA_HOME=/opt/scala-2.11.12

#master节点的IP
export SPARK_MASTER_IP=hdp2
export SPARK_MASTER_PORT=7077

#HADOOP_HOME
export HADOOP_HOME=/opt/hadoop-2.7.2

#hadoop配置文件
export HADOOP_CONF_DIR=/opt/hadoop-2.7.2/etc/hadoop/

#明确Spark Master、Worker守护进程的JVM选项,注意修改自己的 zookeeper地址。如果你配置的是单例测试这个可以省略用默认的
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hdp1:2181,hdp2:2181,hdp3:2181 -Dspark.deploy.zookeeper.dir=/spark"

#spark历史服务器的访问端口号,并设置底层日志文件保存在hdfs上,同时指定保留任务数上限,注意如果你是高可用hadoop,那么hdp1:9000应该修改为NN队列名,如果你的spark是单独运行。那么此处路径你可以写一个本地路径,但将意味着访问日志文件不是那么方便。如hadoop是高可用,那么hdp1:9000改成对应的NN队列名
export SPARK_HISTORY_OPTS="-Dspark.yarn.historyServer.address=hdp2:18018 -Dspark.eventLog.enabled=true -Dspark.history.ui.port=18018 -Dspark.history.fs.logDirectory=hdfs://hdp1:9000/spark/applicationHistorylog -Dspark.history.retainedApplications=30"

#计算完成清理任务临时目录,一般on yarn的yarn会清理,但是保险起见配上
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true"

#单个worker资源配置
export SPARK_WORKER_CORES=6
export SPARK_WORKER_MEMORY=6g
#守护进程内存
export SPARK_DAEMON_MEMORY=1g
#单个worker持有的容器数,配置这个一定要确保资源可以均分
#export SPARK_WORKER_INSTANCES=2

#master节点的web页面端口
export SPARK_MASTER_WEBUI_PORT=8080

#worker节点的web页面端口
export SPARK_WORKER_WEBUI_PORT=8081

#关闭REST服务,防止被攻击,一般都是on yarn所以master并不需要自身的REST服务
export SPARK.MASTER.REST.ENABLED=false
#REST服务的端口号
#export SPARK.MASTER.UI.PORT=8082

当然整个spark不止上面这些配置,只是我们自己使用常配的就这几个,有兴趣了解其他配置的可以看官网或者是spark-env常用配置

在spark-defaults.conf中添加如下配置。后期spark任务默认参数就在spark-defaults.conf文件中追加定义

#除了上面env文件中SPARK_HISTORY_OPTS配置的日志相关,你还会在有些公司看到下面的这种单个配置方式,两个文件中的作用不一样,default文件中是为了任务本身去做一些配置,env中是集群服务级别的运行环境
#开启日志聚合
#spark.eventLog.enabled true

#spark的日志服务器地址,主要是yarn会读取这个配置从而跳转
spark.yarn.historyServer.address hdp2:18018

#spark his服务的端口
spark.history.ui.port 18018

#hdfs上的日志聚合地址
spark.eventLog.dir hdfs://hdp1:9000/spark/applicationHistorylog

#his服务上保留多少个任务
spark.history.retainedApplications 30

#spark处理任务日志的逻辑类
spark.history.provider org.apache.spark.deploy.history.FsHistoryProvider

#自己使用不需要,在每个公司内会实现一些 implement SparkListener 的类,逗号分割,在任务初始化时调用单参conf对象构造器,干一些事情
#spark.extraListeners xxxx

#sparksql对rdd分区数据写入时的默认行为,这里改成覆写,它不会影响hive语句的行为。不过 rdd集合.write.option("partitionOverwriteMode", "dynamic").save(path) 优先级比它高
spark.sql.sources.partitionOverwriteMode dynamic

#设置为false,允许在交互式或者其他sql场景下通过set命令修改核心参数,这个核心参数比较模糊,一般都是放开的
spark.sql.legacy.setCommandRejectsSparkCoreConfs false

#开启日志滚动,且设置单个文件128M
spark.eventLog.rolling.enabled true
spark.eventLog.rolling.maxFileSize 128m

#spark在hdfs上的资源jar,通常的商用on yarn集群不配置这个,让spark默认在提交任务时将jar打包进task,上传到hdfs运行任务时从task解压,在使用方动态的加一些资源时,可控性比直接从hdfs上拉取高
#spark.yarn.jars hdfs://hdp1:9000/home/hadoop/spark_jars/*.jar

#当前任务的ui端口
spark.ui.port 14040

#任务状态暴露能力,一般不需要另行配置,只有明确的第三方工具确定了,才显示为true
#spark.metrics.appStatusSource.enabled false

随后确保hadoop日志聚合是开启状态,并在hdfs上创建出配置文件中对应的/spark/applicationHistorylog、/home/hadoop/spark_jars目录,并将日志目录的权限修改为777,而spark_jars存放$SPARK_HOME/jars文件夹下的所有jar包

hadoop fs -mkdir -p /home/hadoop/spark_jars
hadoop fs -mkdir -p /spark/applicationHistorylog
hadoop fs -put /opt/spark-2.1.1/jars/* /home/hadoop/spark_jars
hadoop fs -chmod 777 /spark/applicationHistorylog

在slaves文件中修改集群成员如:

hdp1
hdp2
hdp3

3、将spark分发在服务器集群中

4、在master节点服务器的spark的sbin下使用相关命令启动spark

start-all-sh
start-history-server.sh 

5、编写一个小程序,当我们编译好jar之后,在spark集群中使用时,调用bin目录下的spark-submit命令,格式如下,命令中的“\”是为了不让命令输入时,使用回车之后,直接执行命令,可以达到命令多行输入的效果,后面是解释,要注意我用的是自带的测试jar,该jar随着spark版本不同自身不同,大家自己注意一下

bin/spark-submit  \   调用的命令
--class   org.apache.spark.examples.SparkPi  \  使用jar包中的那个类
--master spark://hdp1:7077  \   spark集群Master的地址,spark在这一点上比较奇葩,你在那台节点上运行的启动集群命令那台节点就很大概率是master节点,如是本地模式这个命令参数值为local就可以,不过一般本地的话都是在开发用的不会上机器
examples/jars/spark-examples_2.11-2.1.2.jar \  jar包路径,路径用自己的我这个路径是相对路径,这个配置写在倒数第二个
10  jar包运行时要传入参数,一般这个配置就是写到最后的

以上命令是最省略版的,如有需要可以去查询其他的参数,不过一般常用的格式如下

spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
--queue thequeue \
examples/jars/spark-examples*.jar \
10

对于master参数,在实际使用时都是在yarn上执行,而并非直接使用spark自己的master调度。如果你想访问spark的iu页面,可以在浏览器中访问master节点的8080端口,而不是7077,历史服务器是你在那台节点上启动的spark历史服务就是那台

上面的配置用的是spark on yarn,本身其实一个节点配置单例就够了,能够保证任务提交节点有spark上下文资源提交到yarn,以及启动日志服务器,executor进程相关的资源配置往小设置即可。但如果你要搭建spark on master的测试环境,除了合理设置上面各项服务配置之外,还要在spark-defaults.conf文件中设置spark.local.dir,这是woker节点的工作路径,和yarn的yarn.nodemanager.local-dirs一个意思,以及在spark-env.sh中设置SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true",使得spark自动维护工作路径的空间

zeppelin

这个软件是一个可视化代码工具,支持很多的服务,在安装上属于开箱即用,apache下的一个软件,对于代码开发阶段的调试相关事宜来说贼方便,总体来讲轻度使用足够,不过它也有bash相关的使用执行器,出来不长时间,所以用的时候有些版本需要自己调试,我本地用0.9.0的。

开发上不太友好的就是没代码提示,所以你可以用其他工具写完代码或者sql放上去起到验证运行的作用,比如hive,原先本地用的hue,但是除了有代码提示之外,在使用上真的是一言难尽,相比之下被zeppelin甩了几条街,至于代码提示都有AI能一步到位给你答案了,干嘛非要自己写,所以也无伤大雅了。不过要是实在需要,我也有hue的搭建手册–》hue安装

本篇使用zeppelin整合hive、spark、flink,其他的如果有需要可以在官网上查看对应执行器的配置方式,比如后面的Hbase、presto(jdbc)这些,当然由于zeppelin没有代码提示,所以自己准备好写代码的工具。

需要注意的是,zeppelin和后面几篇安装手册中会提到的jupyter是一个类型的东西,都是提供可视化代码交互的软件,但是它们的面向用户群体不太一样,zeppelin它会使用所处服务器的环境资源,比如SPARK_HOME等,所以在搭建时要注意是否需要将部署节点配置一个环境资源,比如hadoop的部署文件,但是它向用户开放了页面调整关键配置的能力,来适应不同的任务需求,多个任务你可以配置多个执行器,不过这个软件使用上有时需要自己微调或者适应一下,会有点小毛病,不过能力上影响不大,希望后续的版本会好些吧,总体上需要用户编程和运维能力都具备。而jupyter它完全依赖所处服务器的环境和python代码中的编写内容,用户可以只关注编程,而其他运维相关的交给管理环境的人员。两者各有千秋,不过有意思的是两者在调用其他架构的时候,如果涉及到释放资源的话,必须显示调用对应架构的释放方法,不然使用的资源会保持占有。

1、官网下载,不要盲目的下载最新版,先下载0.9.0,本博客此部分内容书写时最新版是0.11.2,但是这个版本使用时有问题,后面说,上传到spark所在服务器,或者在安装服务器下准备一个spark,解压到自定义的安装目录即可,官网:https://zeppelin.apache.org有一个要注意的关键点是你的JavaJDK需要8-151+的版本,才能正常运行zeppelin

2、进入zeppelin的conf目录下,将原来的模板配置文件释放出来

cd conf/
mv zeppelin-site.xml.template zeppelin-site.xml

初步配置,只需要修改配置文件中的服务监听地址和端口号即可,一定要把服务监听地址改成0.0.0.0,要不然访问不了服务,默认是172.0.0.1

<property>
  <name>zeppelin.server.addr</name>
  <value>0.0.0.0</value>
  <description>Server binding address. If you cannot connect to your web browser on WSL or Windows, change 127.0.0.1 to 0.0.0.0. It, however, causes security issues when you open your machine to the public</description>
</property>

<property>
  <name>zeppelin.server.port</name>
  <value>8090</value>
  <description>Server port.</description>
</property>

3、该软件启动初步启动很简单,此时你可以使用如下命令尝试启动,并访问端口即可,比如我配置的是8090,初次启动会生成运行目录和日志目录,日志不报错的话就OK

bin/zeppelin-daemon.sh start

在这里插入图片描述
4、现在开始配置它与其他组件关联之前,需要修改一些配置文件,当然本次只配置和hive、spark、flink整合,如需其他的,可以自己去官网上看

释放zeppelin-env.sh.template文件,并添加如下内容

#Java的HOME
export JAVA_HOME=/opt/jdk1.8.0_411

#spark的HOME
export SPARK_HOME=/opt/spark-2.1.1

#Flink的HOME
export FLINK_HOME=/opt/flink-1.7.2

#hive的配置文件
export HIVE_CONF_DIR=/opt/hive-1.2.1/conf

#hadoop的配置文件
export HADOOP_CONF_DIR=/opt/hadoop-2.7.2/etc/hadoop

#python的类库,用spark包里面的
export PYSPARK_PYTHON=/opt/spark-2.1.1/python

#spark的master-ip
export SPARK_MASTER_IP=hdp2
export SPARK_LOCAL_IP=hdp2

这一步看情况可选,释放shiro.ini.template文件,修改users的内容,这个文件是修改登录用户的,默认情况下zeppelin不需要配置用户权限,底层也会使用一个固定的用户跑代码,不过这可能对后面其他框架整合使用造成影响,所以最好是配置上,注意目前只需要修改一条就行,其他的别动

[users]
# 释放第一行表示启用用户配置,并配置管理员账户
# 账户名 = 密码, 最后一个admin是固定管理员规则,不要动
admin = admin, admin

你要是下载的比我用的0.9.0还老的版本,看一下zeppelin-site.xml有没有下面这个配置,需要设置为false

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>false</value>
  <description>Anonymous user allowed by default</description>
</property>

!!!!随后将hdfs上的/tmp路径权限全部打开为777,不然后期使用要对不同用户按情况单独授权

5、这一步开始配置hive的连接,将hive的site文件拷贝,放到zeppelin的conf下

cp /opt/hive-1.2.1/conf/hive-site.xml ./conf

运行命令重启zeppelin服务,并且创建一个继承jdbc的zeppelin执行器,注意因为上一步让zeppelin启用了用户,因此现在打开web需要手动登录

bin/zeppelin-daemon.sh restart

正常访问服务后,点击interpreter
在这里插入图片描述
点击创建
在这里插入图片描述
随后按照提示填写如下配置
在这里插入图片描述
在这里插入图片描述

default.url	jdbc:hive2://hdp2:10000
default.driver	org.apache.hive.jdbc.HiveDriver

在这里插入图片描述
上面这三个依赖jar,跟着你用的hadoop、hive、mysql-driver走,别瞎写

org.apache.hive:hive-jdbc:1.2.1
org.apache.hadoop:hadoop-common:2.7.2
mysql:mysql-connector-java:5.1.38

保存之后刚配置的执行器会下载依赖,确保你的hive元数据服务和hiveserver2是启动的后需要等一会,直到准备指示灯变绿就行
在这里插入图片描述
随后新建一个记事本,名字同样自定义,执行器选择你刚刚创建的
在这里插入图片描述
在这里插入图片描述
随后在代码记事本中写一个sql测试一些正常运行即可,这里顺带解释一下如果你要在一个记事本中调用其他的执行器,你可以在代码的开头写 %myhive 这种配置
在这里插入图片描述
6、这一步开始配置spark的连接,zeppelin默认准备了一些spark可以用的执行器,比如%spark 、 %sql 、%dep 、 %pyspark 、%ipyspark 、 %r这些,你可以自己另行配置,也可以复用修改,本博客选择修改自带的,在修改的时候其他都可以默认,但是!!!!一定一定要把用的资源调度器设置为yarn,如下图

在这里插入图片描述

至于为什么要一定要是yarn,这里给大家解释一下,99%的商用平台类大数据集群解决方案,在整合spark的时候,都是采用一个持久化程序的方式和yarn去交互,这个持久化程序里面核心一般是YarnClient的JavaSDK或者yarn的http协议,用后者的少,以此来完成任务的提交、监控、追踪等,总的来说就是面向用户有一个收集行为的程序,服务端内嵌在架构中一个公司自己改造的响应服务。

而zeppelin它的底层用的持久化程序,偶尔的抽风,应该是本身做的有瑕疵,导致抽风的时候,提交代码会提示你没有激活的driver,这种时候你就需要手动把yarn上的在运行任务kill掉就行了,而如果你用默认的local,则找不到这个driver,只能重启服务,巨坑爹。

配置好之后,就可以新建一个代码笔记本,执行下面的代码,测试一下能不能跑的通。

//这个是表明在本记事本中声明可使用的执行器,自带的默认是%spark,点击记事本右上角有个齿轮图标就可以看到当前记事本,能用那些执行器
%spark

// 程序的%spark是SparkSession类型的对象,你可以直接调用名为spark的指针使用,并且zeppelin还额外准备了sc(SparkContext)和sqlContext (HiveContext or SqlContext) 也是直接用就行,不能直接new。不过要注意sqlContext 使用上有点小问题很难用,所以涉及到sql的直接用内嵌的spark对象或者单独用一个代码块引入sql
import spark.implicits._

sc.parallelize(List("1","2","3","4")).toDF("tt").registerTempTable("bank")

spark.sql("select * from bank").show()

在这里插入图片描述
除了spark,zepplien还带了spark-submit的执行器,可以直接调用

7、这一步开始配置flink的连接,zeppelin对flink的支持也是开箱即用的,你只需要配置和spark那样修改自带的flink执行器就行,flink的搭建方式在后面的篇章中

FLINK_HOME		Flink集群目录
HADOOP_CONF_DIR		Hadoop配置文件目录
HIVE_CONF_DIR		HIVE配置文件目录
Flink.execution.mode		Flink执行模式,可以选择本地、远程和yarn

-----下面二个配置一般不用,因为一般都是跑在yarn上
Flink.execution.remote.host		远程模式主机host,仅适用于remote模式
Flink.execution.remote.port	8081	执行JobManager端口,仅适用于remote模式

在这里插入图片描述
之后就可以运行自带的flink测试代码
在这里插入图片描述
在这里插入图片描述

Flume

flume本身是一个日志收集系统,它的运行很灵活,所以不需要刻意去区分是否是集群,因为它自身不止可以启动多个agent,还有着很灵活的不同agent的传输方式,以及其他的如负载均衡、容错

1、将apache-flume-1.7.0-bin.tar.gz上传到linux的/opt目录下并解压

2、解压apache-flume-1.7.0-bin.tar.gz

tar -zxvf apache-flume-1.7.0-bin.tar.gz

3、修改apache-flume-1.7.0-bin的名称为flume,名字可自定义

mv apache-flume-1.7.0-bin flume

4、将flume/conf下的flume-env.sh.template文件修改为flume-env.sh,并配置flume-env.sh文件,修改JAVA_HOME

mv flume-env.sh.template flume-env.sh
vi flume-env.sh

最后编写一个自己的agent配置运行一下,不报错则安装成功

Sqoop

安装Sqoop的前提是已经具备Java和Hadoop的环境。此外一定要是1.4.7版本!!!我下面的安装用的1.4.6的,大家搭建的时候自己换一下,这是因为1.4.7是最后一个稳定版本,往后的版本是sqoop尝试底层架构调整,但是失败了,导致后面的版本不完善,有重大bug,并且现在sqoop已经停止更新了

1、下载安装包,下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/

2、 上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz到虚拟机中

3、 解压sqoop安装包到指定目录,如:
tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/

4、修改配置文件

Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。

首先重命名配置文件
mv sqoop-env-template.sh sqoop-env.sh<

修改配置文件
vim sqoop-env.sh

在该配置文件中,以下软件如未安装可以不改,只改以安装的,但是改了也不会影响运行

export HADOOP_COMMON_HOME=/opt/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/hadoop-2.7.2
export HIVE_HOME=/opt/hive-1.2.1
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.10
export ZOOCFGDIR=/opt/zookeeper-3.4.10/conf
export HBASE_HOME=/opt/hbase-1.3.1

5、拷贝JDBC驱动
拷贝jdbc驱动到sqoop的lib目录下,这里要注意的是jdbc的驱动要看你数据库用的那个版本的,一般mysql下载之后会带的

cp mysql-connector-java-5.1.27-bin.jar /opt/sqoop-1.4.6/lib/

6、验证Sqoop
我们可以通过命令的方式来验证sqoop配置是否正确:

bin/sqoop help

出现一些Warning警告(警告信息已省略),警告大致的意思就是上面那些应用没有安装所以没有找到之类的不过不影响sqoop的运行,之后会伴随着帮助命令的输出,如下:

Available commands:
  codegen            Generate code to interact with database records
  create-hive-table     Import a table definition into Hive
  eval               Evaluate a SQL statement and display the results
  export             Export an HDFS directory to a database table
  help               List available commands
  import             Import a table from a database to HDFS
  import-all-tables     Import tables from a database to HDFS
  import-mainframe    Import datasets from a mainframe server to HDFS
  job                Work with saved jobs
  list-databases        List available databases on a server
  list-tables           List available tables in a database
  merge              Merge results of incremental imports
  metastore           Run a standalone Sqoop metastore
  version            Display version information

下面测试Sqoop是否能够成功连接数据库

bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3306/ --username root --password 000000

出现类似如下输出,其实就是大家连接的那个数据库的信息,则安装成功:

information_schema
metastore
mysql
oozie
performance_schema

Hbase

一、HBase的解压
解压HBase到指定目录,可自定义:
tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt

二、修改HBase对应的配置文件。
1)HBase-env.sh修改内容:

export JAVA_HOME=/opt/module/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/var/Hadoop/pids

2)hbase-site.xml修改内容:
修改这个文件的时候有一个雷点,如果你的hadoop是高可用的,那么hbase.rootdir的值有另外配置的方式

<configuration>
	<!--hbase数据在hdfs中保存的路径-->
	<property>     
		<name>hbase.rootdir</name>     
		<value>hdfs://hdp1:9000/hbase</value>   
	</property>

	<property>   
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>

   <!--hbase主节点的端口0.98后的新变动,之前版本没有.port,默认端口为60000 -->
	<property>
		<name>hbase.master.port</name>
		<value>16000</value>
	</property>

	<!--zookeeper集群,不写端口默认,默认是2181,你可以在这里一起制定,也可以用下面的配置制定-->
	<property>   
		<name>hbase.zookeeper.quorum</name>
	     <value>hdp1,hdp2,hdp3</value>
	</property>
	
	<!-- zookeeper 的端口号,可以不配默认2181 -->
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    
	<!-- zookeeper运行数据路径-->
	<property>   
		<name>hbase.zookeeper.property.dataDir</name>
	    <value>/opt/zookeeper-3.4.10/zkData</value>
	</property>
</configuration>

3)regionservers集群成员配置:

hdp1
hdp2
hdp3

4)软连接hadoop配置文件到hbase,这种方式不推荐,一来麻烦,二来容易出错

ln -s /opt/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/hbase/conf/core-site.xml
 ln -s /opt/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/hbase/conf/hdfs-site.xml

提示:如果集群上配置了hadoop的home环境变量,就不用做软连接的操作了,而且最好是去配置hadoop的home,当然可以直接将hadoop的配置文件放在hbase的配置文件目录下,不过都不如直接配置hadoop的环境变量方便

三、用scp将HBase远程发送到其他集群节点

四、HBase服务的启动
前提:在启动Hbase之前,确保hadoop和zookeeper都已经启动

1.第一种启动方式,分开启动,master的位置比较直观

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException异常。
修复提示:

a、同步时间服务

b、属性:hbase.master.maxclockskew设置更大的值(hbase-site.xml中增加下面内容)

<property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
 </property>

2.第二种启动方式 推荐!!各节点位置有hbase自己决定

bin/start-hbase.sh

对应的停止服务

bin/stop-hbase.sh

五、查看HBase页面

启动成功后,可以通过“host:port”的方式来访问HBase管理页面,例如:http://hdp2:16010

Phoenix-SQL化hbase窗口

官方网址: http://phoenix.apache.org/index.html
一、上传安装包包,并解压到/opt/改名为phoenix

tar -zxvf /opt/apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz
mv apache-phoenix-4.14.1-HBase-1.3-bin phoenix

二、我们要在phoenix目录下,找到并复制server和client这俩个包拷贝到各个节点的hbase/lib,拷贝之前最好先用管道找一下

phoenix-4.14.1-HBase-1.3-server.jar
phoenix-4.14.1-HBase-1.3-client.jar

三、在root权限下给/etc/profile添加如下内容

export PHOENIX_HOME=/opt/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin

四、删除bin目录下自带的hbase-site.xml,将hbase的配置文件hbase-site.xml拷贝到bin下

最后启动,但是要注意启动顺序,先启动Zookeeper,Hadoop,Hbase、后启动Phoenix,Phoenix的启动方式如下

bin/sqlline.py hadoop102,hadoop102,hadoop103:2181

关闭的时候也要注意按启动顺便倒着关!!!

第一篇https://blog.csdn.net/dudadudadd/article/details/109647930

第二篇https://blog.csdn.net/dudadudadd/article/details/109659923

第三篇https://blog.csdn.net/dudadudadd/article/details/109679296

第五篇https://blog.csdn.net/dudadudadd/article/details/109726023

第六篇https://blog.csdn.net/dudadudadd/article/details/109744195

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值