Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zongxr/bigdata-competition
全国大数据竞赛三等奖解决方案,省赛二等奖解决方案。一键安装大数据环境脚本,自动部署集群环境,包括zookeeper、hadoop、mysql、hive、spark以及一些基础环境。已通过实际服务器测试,效果极佳,仅需要输入密码等少量人为干预。解放安装部署配置所需人力。并添加若干scala案例,结合spark用以进行数据准备。
https://github.com/zongxr/bigdata-competition
bigdata hadoop hdfs hive mysql scala shell spark wordcount zookeeper
Last synced: 1 day ago
JSON representation
全国大数据竞赛三等奖解决方案,省赛二等奖解决方案。一键安装大数据环境脚本,自动部署集群环境,包括zookeeper、hadoop、mysql、hive、spark以及一些基础环境。已通过实际服务器测试,效果极佳,仅需要输入密码等少量人为干预。解放安装部署配置所需人力。并添加若干scala案例,结合spark用以进行数据准备。
- Host: GitHub
- URL: https://github.com/zongxr/bigdata-competition
- Owner: ZongXR
- License: gpl-3.0
- Created: 2021-10-30T03:04:00.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-20T07:22:58.000Z (almost 3 years ago)
- Last Synced: 2024-01-06T13:23:54.490Z (11 months ago)
- Topics: bigdata, hadoop, hdfs, hive, mysql, scala, shell, spark, wordcount, zookeeper
- Language: Scala
- Homepage:
- Size: 9.03 MB
- Stars: 23
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
全国大数据竞赛
关于此项目
为什么做了这么一个项目?
这是全国大数据竞赛的题目,因为部分初学者对于安装配置大数据集群环境感到苦恼,所以做了这么一个解放人力的自动化脚本。能够省去安装过程中的诸多麻烦。这个项目有什么用
使用它能一键自动安装大数据集群环境,自动给你配置环境变量,自动给你配置hosts,自动给你配置免密登录,自动给你做其他配置,非常方便。从基础环境搭建,到zookeeper,再到hadoop,再到mysql,再到hive,再到spark,一键完成,自动部署。使用方法
- 使用此镜像,安装好集群环境,记录下各个节点的ip
- 将master.sh放入主节点的/home/xxx目录下;将slave.sh放入从节点的/home/xxx目录下;将start-master.sh放入主节点/home/xxx目录下;将start-slave.sh放入从节点/home/xxx目录下;将hadoop目录放入主节点/home/xxx路径下;将hive目录放入主节点/home/xxx路径下。xxx可自定义
对于从节点执行以下代码
sed -i 's/\r$//' ./*.sh
chmod +x ./*.sh
source ./slave.sh
对于主节点执行以下代码,其中master.sh的参数为各个从节点的ip
sed -i 's/\r$//' ./*.sh
chmod +x ./*.sh
source ./master.sh 192.168.137.242 192.168.137.190 192.168.137.178
安装完毕后,刷新环境变量
source /etc/profile
安装完毕后,对于从节点执行以下代码
./start-slave.sh
安装完毕后,对于主节点执行以下代码
./start-master.sh
运行com.spark.test.WordCount
或者使用maven打jar包,将jar包上传至master节点。通过以下命令运行
spark-submit --class com.spark.test.WordCount ./WordCount-1.0-SNAPSHOT.jar 你的文件路径
怎么算部署成功了?
所有节点运行jps
命令,与下表后台任务对照,对照一致则成功。主节点
任务名由谁启动
Jpsjava
QuorumPeerMainzookeeper
NameNodehadoop
SecondaryNameNodehadoop
ResourceManagerhadoop
Masterspark
从节点
任务名由谁启动
Jpsjava
QuorumPeerMainzookeeper
DataNodehadoop
NodeManagerhadoop
RunJarhive
Workerspark
更新日志
版本更新内容更新日期
0.0.1.0配置主从节点hosts文件;配置主节点免密登录;配置主从节点防火墙2021年10月31日
0.0.2.0配置时区同步服务;配置jdk2021年10月31日
0.1.0.0配置安装zookeeper;添加启动脚本2021年10月31日
0.1.1.0配置安装hadoop2021年11月1日
0.1.2.0从节点配置安装mysql2021年11月2日
0.1.3.0安装hive2021年11月5日
0.1.4.0配置并启动Hive2021年11月6日
0.1.5.0hive连接mysql提供jdbc;安装配置scala2021年11月7日
0.1.6.0修复若干bug;安装配置spark2021年11月7日
0.1.7.0修复bug;spark启动失败2021年11月13日
0.1.8.0修复bug;spark不显示web管理界面2021年11月14日
0.1.9.0设置主机名为不同名称2021年11月15日
1.0.0.0scala版本改为2.11.112021年11月16日
1.1.0.0添加WordCount的Spark任务2021年11月17日
1.2.0.0通过RDD的方式执行WordCount任务2021年11月17日
1.3.0.0通过DataFrame的方式执行WordCount任务2021年11月17日
1.3.1.0优化执行方式;添加hadoop-client依赖2021年11月17日
1.4.0.0添加电信基站案例2021年11月20日
1.4.1.0禁用hdfs权限,dfs.permissions设置false2021年11月20日
1.5.0.0添加JsonFile案例2021年11月21日
1.6.0.0添加Dataset案例2021年11月22日
1.7.0.0完善手机基站案例2021年11月28日
1.8.0.0补充淘宝行为记录案例2021年11月30日
1.8.1.0新增淘宝数据案例的DataFrame实现2021年11月30日
1.9.0.0WordCount案例分别使用RDD, Dataset, Spark SQL三种方式实现;淘宝数据案例使用RDD, Spark SQL实现2021年12月1日
1.9.1.0补充淘宝数据案例的Dataset实现2021年12月1日
1.10.0.0通过SparkSQL实现手机基站案例2021年12月2日
1.10.1.0通过DataFrame实现手机基站案例2021年12月3日
1.10.2.0补充RDD[Row]转DataFrame方法2021年12月9日
1.11.0.0补充身高年龄案例2021年12月11日
1.11.1.0年龄案例补充Spark SQL做法2021年12月12日
1.12.0.0新增全国总决赛题目2021年12月15日
项目经验
- 安装的时候尽量避免多次
hadoop namenode -format
因为重复格式化会造成主从节点的数据版本号不一致,需要修改一致了才能正常运行。- 如果scala运行时莫名其妙报错Exception in thread "main" org.apache.spark.SparkException,可以先打包再运行试试。并且建议IDEA直接连接spark调试每次运行前都打包,否则结果可能和代码不一致。使用spark-submit没这个问题
- 如果直接在IDEA中调试spark,需要加上conf.setJars和conf.setIfMissing并保证开发环境与spark环境能互相ping通。否则会报WARN TaskSchedulerImpl: Initial job has not accepted any resources
- map是对每一个元素进行操作;flatMap是对每一个元素操作后再展平,仅适用于返回结果是List或元组;mapPartitions是对每一个分片进行处理,输入输出是整个分片对应的iterator;mapPartitionsWithIndex是在此基础上增加分区号;mapValues搭配分组使用,输入是每组value组成的一个元组
- groupByKey输出value是同组各value组成的元组;groupBy输出的value是同一组的key, value;分组与聚合总体的输出包含key
- sortBy是对x扩展出来的矩阵按照某一列排序,而不是对x排序
- 在hadoop的map-reduce中,map相当于对每个元素操作,shuffle相当于分组,reduce相当于聚合
- 如果用Dataset读取表读取到一堆null,有可能是数据类型与schema给定类型不一致
- 如果涉及到列的类型变化的适合用RDD做法和DataFrame做法,如果都是SQL的常用操作适合使用Spark SQL做法,如果只有一列适合用RDD做法