解决Spark读写HBase数据的相关问题

博主在学习并实践厦门大学林子雨老师的《Spark编程基础(Python版)》配套网络教程的过程中,在使用Spark读写HBase数据时遇到了些许问题,此处进行记录。才疏学浅,欢迎指正批评~

版本
Parallels Desktop 16
Ubuntu20.04 虚拟机
Hadoop 3.1.3
Spark 2.4.0 Using Python version 3.7.9
HBase 2.2.2

初步配置Spark时遇到的问题

PySpark目前还不支持python3.8及以上的版本,且Ubuntu20.04自带的Python3的版本是python3.8.5,于是就涉及到需要再安装python3.7的问题。下载等问题此处不再赘述。

注:下载完成后,千万不要盲目修改系统的python3的软指向文件!!!否则可能导致terminal无法打开、linux用户循环登录、终端中任何命令都报错等一系列可怕的事情!!切记。

下载好Python3.7.x及其以下版本后,修改Spark环境配置文件

cd $SPARK_HOME/conf
vim spark-env.sh

采用vim编辑器(使用方法)在该文件的开头加入一行

export PYSPARK_PYTHON=/usr/bin/python3.7 pyspark

同时可以修改系统的环境配置

cd ~
vim ~/.bashrc

在该文件中加入如下修改语句:

export PYSPARK_PYTHON=/usr/bin/python3.7

然后运行source,就可以完成python版本的降级了

source ~/.bashrc

运行$SPARK_HOME/bin/pyspark
如下图:Spark界面

在进行HBase数据读写之前,需要将HBase安装目录下lib中的一些jar包引入到Spark安装目录下。包括所有以hbase开头的jar包,guava-11.0.2.jar,htrace-core4-4.1.0-incubating.jar以及protobuf-java-2.5.0.jar。

cd  $SPARK_HOME/jars 
mkdir  hbase  //创建文件夹存放与hbase相关的jar包
cd  hbase
cp  /usr/local/hbase/lib/hbase*.jar  ./
cp  /usr/local/hbase/lib/guava-11.0.2.jar  ./
cp  $HADOOP_HOME/share/hadoop/common/lib/htrace-core4-4.1.0-incubating.jar  ./
cp  /usr/local/hbase/lib/protobuf-java-2.5.0.jar  ./

注:
1)由于HBase版本原因,课本中的htrace-core-3.1.0-incubating.jar包应更改为htrace-core4-4.1.0-incubating.jar,且位于目录$HADOOP_HOME/share/hadoop/common/lib下
2)guava-11.0.2.jar 为本机版本,可以先进入/usr/local/hbase/lib目录查看版本后,再进行复制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要在Spark读写HBase,你需要进行以下几个步骤。首先,你需要在simple.sbt配置文件中指定HBase的版本号,包括hbase-client、hbase-common和hbase-server的版本号。你可以通过在Linux系统中打开终端并导航到HBase安装目录,然后使用命令"cd /usr/local/hbase"和"ls"来查找这些版本号。\[1\] 接下来,你需要创建一个Python文件,比如SparkOperateHBase.py,然后在文件中添加读取HBase数据的代码。你需要导入必要的库,设置Spark的配置,指定HBase的主机和表名,以及配置HBase相关参数。然后,你可以使用Spark的newAPIHadoopRDD方法来读取HBase数据,并对数据进行操作。最后,你可以将结果打印出来。\[2\] 最后,你需要将支持HBase的jar包导入Spark的jars目录下。你可以使用命令"cp /usr/local/software/hbase/hbase-2.4.9/lib/hbase*.jar /usr/local/software/spark/spark-3.0.3-bin-hadoop2.7/jars"来完成这个步骤。\[3\] 这样,你就可以在Spark读写HBase数据了。 #### 引用[.reference_title] - *1* [大数据-05-Spark读写HBase数据](https://blog.csdn.net/weixin_33670713/article/details/85983819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Spark 读写Hbase](https://blog.csdn.net/jinxing_000/article/details/123706938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值