先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
docker-compose -f on-yarn/docker-compose-manul.yml -p spark down
启动集群
docker-compose -f on-yarn/docker-compose-manul.yml -p spark start
启动hadoop
docker exec -it spark-master-1 sh /opt/start-hadoop.sh
#### 自动方式
创建集群
docker-compose -f on-yarn/docker-compose-auto.yml -p spark up -d
停止集群
docker-compose -f on-yarn/docker-compose-auto.yml -p spark stop
启动集群
docker-compose -f on-yarn/docker-compose-auto.yml -p spark start
删除集群
docker-compose -f on-yarn/docker-compose-auto.yml -p spark down
## spark on yarn with hive(derby server)模式
### 构建on-yarn-hive镜像
docker build -t my/spark-hadoop-hive:3.1.2 -f on-yarn-hive/Dockerfile .
### 启动on-yarn-hive集群
#### 手动方式
创建集群
docker-compose -f on-yarn-hive/docker-compose-manul.yml -p spark up -d
启动hadoop
docker exec -it spark-master-1 sh /opt/start-hadoop.sh
启动hive
docker exec -it spark-master-1 sh /opt/start-hive.sh
停止集群
docker-compose -f on-yarn-hive/docker-compose-manul.yml -p spark stop
删除集群
docker-compose -f on-yarn-hive/docker-compose-manul.yml -p spark down
启动集群
docker-compose -f on-yarn-hive/docker-compose-manul.yml -p spark start
启动hadoop
docker exec -it spark-master-1 sh /opt/start-hadoop.sh
启动hive
docker exec -it spark-master-1 sh /opt/start-hive.sh
#### 自动方式
创建集群
docker-compose -f on-yarn-hive/docker-compose-auto.yml -p spark up -d
停止集群
docker-compose -f on-yarn-hive/docker-compose-auto.yml -p spark stop
启动集群
docker-compose -f on-yarn-hive/docker-compose-auto.yml -p spark start
删除集群
docker-compose -f on-yarn-hive/docker-compose-auto.yml -p spark down
## 常用示例
### spark执行sh脚本
spark-shell --master yarn << EOF
// 脚本内容
// 示例
val data = Array(1,2,3,4,5)
val distData = sc.parallelize(data)
val sum = distData.reduce((a,b)=>a+b)
println("Sum: "+sum)
EOF
### Java远程提交Yarn任务
* 进入master容器,创建demo表,命令 `hive -e "create table demo(name string)"`
* 创建maven项目,将core-site.xml yarn-site.xml hdfs-site.xml hive-site.xml等文件拷贝到src/main/resources
* 将 local-spark-worker1 和 local-spark-master 指向本地虚拟网络适配器的IP地址
例如,我用的是windows系统,则使用SwitchHosts软件,修改上述hostname指向的IP地址,其中192.168.138.1是虚拟网络适配器的IP
192.168.138.1 local-spark-worker1
192.168.138.1 local-spark-master
上传spark依赖jar包
hdfs dfs -mkdir -p /spark/jars
hdfs dfs -put -f /opt/bitnami/spark/jars/* /spark/jars
#### maven部分依赖
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-yarn_2.12</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
#### java代码
>
> 以cluster模式提交spark-sql;浏览器输入http://localhost:9870打开hdfs管理界面,创建目录/user/my,进入该目录并上传spark-sql-cluster.jar
>
>
>
package org.demo.spark;
import org.apache.spark.SparkConf;
import org.apache.spark.deploy.yarn.Client;
import org.apache.spark.deploy.yarn.ClientArguments;
import org.junit.jupiter.api.Test;
public class SparkOnYarnTest {
@Test
public void yarnApiSubmit() {
// prepare arguments to be passed to
// org.apache.spark.deploy.yarn.Client object
String[] args = new String[] {
"--jar","hdfs:///user/my/spark-sql-cluster.jar",
"--class", "org.apache.spark.sql.hive.cluster.SparkSqlCliClusterDriver",
"--arg", "spark-internal",
"--arg", "-e",
"--arg", "\\\"insert into demo(name) values('zhangsan')\\\""
};
// identify that you will be using Spark as YARN mode
// System.setProperty(“SPARK_YARN_MODE”, “true”);
// create an instance of SparkConf object
String appName = "Yarn Client Remote App";
SparkConf sparkConf = new SparkConf();
sparkConf.setMaster("yarn");
sparkConf.setAppName(appName);
sparkConf.set("spark.submit.deployMode", "cluster");
sparkConf.set("spark.yarn.jars", "hdfs:///spark/jars/\*.jar");
sparkConf.set("spark.hadoop.yarn.resourcemanager.hostname", "local-spark-master");
sparkConf.set("spark.hadoop.yarn.resourcemanager.address", "local-spark-master:8032");
sparkConf.set("spark.hadoop.yarn.resourcemanager.scheduler.address", "local-spark-master:8030");
// create ClientArguments, which will be passed to Client
ClientArguments cArgs = new ClientArguments(args);
// create an instance of yarn Client client
Client client = new Client(cArgs, sparkConf, null);
// submit Spark job to YARN
client.run();
}
}
## 参考资料
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/ea488b185f1e348aa1adcd8aa9209db0.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-vYUTGuTe-1713280700771)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**