Skip to content

全国大数据竞赛三等奖解决方案,省赛二等奖解决方案。一键安装大数据环境脚本,自动部署集群环境,包括zookeeper、hadoop、mysql、hive、spark以及一些基础环境。已通过实际服务器测试,效果极佳,仅需要输入密码等少量人为干预。解放安装部署配置所需人力。并添加若干scala案例,结合spark用以进行数据准备。

License

Notifications You must be signed in to change notification settings

ZongXR/BigData-Competition

Repository files navigation

全国大数据竞赛

hadoop

spark

Apache Hive

关于此项目

为什么做了这么一个项目?

这是全国大数据竞赛的题目,因为部分初学者对于安装配置大数据集群环境感到苦恼,所以做了这么一个解放人力的自动化脚本。能够省去安装过程中的诸多麻烦。

这个项目有什么用

使用它能一键自动安装大数据集群环境,自动给你配置环境变量,自动给你配置hosts,自动给你配置免密登录,自动给你做其他配置,非常方便。从基础环境搭建,到zookeeper,再到hadoop,再到mysql,再到hive,再到spark,一键完成,自动部署。

使用方法

  1. 使用此镜像,安装好集群环境,记录下各个节点的ip
  2. 将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可自定义
  3. 对于从节点执行以下代码
    sed -i 's/\r$//' ./*.sh
    chmod +x ./*.sh
    source ./slave.sh
  4. 对于主节点执行以下代码,其中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
  5. 安装完毕后,刷新环境变量
    source /etc/profile
  6. 安装完毕后,对于从节点执行以下代码
    ./start-slave.sh
  7. 安装完毕后,对于主节点执行以下代码
    ./start-master.sh
  8. 运行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日

项目经验

  1. 安装的时候尽量避免多次hadoop namenode -format因为重复格式化会造成主从节点的数据版本号不一致,需要修改一致了才能正常运行。
  2. 如果scala运行时莫名其妙报错Exception in thread "main" org.apache.spark.SparkException,可以先打包再运行试试。并且建议IDEA直接连接spark调试每次运行前都打包,否则结果可能和代码不一致。使用spark-submit没这个问题
  3. 如果直接在IDEA中调试spark,需要加上conf.setJars和conf.setIfMissing并保证开发环境与spark环境能互相ping通。否则会报WARN TaskSchedulerImpl: Initial job has not accepted any resources
  4. map是对每一个元素进行操作;flatMap是对每一个元素操作后再展平,仅适用于返回结果是List或元组;mapPartitions是对每一个分片进行处理,输入输出是整个分片对应的iterator;mapPartitionsWithIndex是在此基础上增加分区号;mapValues搭配分组使用,输入是每组value组成的一个元组
  5. groupByKey输出value是同组各value组成的元组;groupBy输出的value是同一组的key, value;分组与聚合总体的输出包含key
  6. sortBy是对x扩展出来的矩阵按照某一列排序,而不是对x排序
  7. 在hadoop的map-reduce中,map相当于对每个元素操作,shuffle相当于分组,reduce相当于聚合
  8. 如果用Dataset读取表读取到一堆null,有可能是数据类型与schema给定类型不一致
  9. 如果涉及到列的类型变化的适合用RDD做法和DataFrame做法,如果都是SQL的常用操作适合使用Spark SQL做法,如果只有一列适合用RDD做法

About

全国大数据竞赛三等奖解决方案,省赛二等奖解决方案。一键安装大数据环境脚本,自动部署集群环境,包括zookeeper、hadoop、mysql、hive、spark以及一些基础环境。已通过实际服务器测试,效果极佳,仅需要输入密码等少量人为干预。解放安装部署配置所需人力。并添加若干scala案例,结合spark用以进行数据准备。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published