hadoop 和 spark 小结
基本概念:
Hadoop主要包含两个部分
1、HDFS :(HadoopDistributedFileSystem)hadoop分布式文件系统, 主要是 master/slave (结构存在主节点和从节点)。
- 就部署上看 master节点上运行namenode slave节点上运行各个的datanode
- HDFS结构
- 结构图说明及整个交互的过程:
- Block :一个文件分块 默认是64M
- NameNode:保存整个文件系统的目录信息,文件信息以及文件相应的信息。工作特点:NameNode始终在内存中保存metadata用于处理读请求,到有了写请求时,namenode会首先写editlog到磁盘成功返回后才会修改内存,并且向客户端返回。Hadoop会维护一个fsimage文件,也就是namenode中metadata的镜像,但是fsimage不会随时与metadata保持一致 而是每隔一段时间来更新editlog来更新内容,Secondary namenode 就是用来更新
- DataNode:数据节点用于存储Blocks
- Replication:复制集可以通过配置文件来实现
2、MapRduce:
hadoop 和spark 学习资料
https://blog.****.net/hit0803107/article/details/52795241(spark 集群环境的搭建)
https://blog.****.net/zonzereal/article/details/78095110(hadoop 组件的详细说明)
https://blog.****.net/u013078295/article/details/52182814(hadoop 配置文件详解)
http://www.cnblogs.com/laov/p/3433994.html(hadoop 的web页面)
http://lib.****.net/article/scala/25824(用开发工具开发工具然后部署到spark集群进行测试)
http://www.cnblogs.com/csxf/p/3166283.html(JobTracker和TaskTracker 的区别)
https://www.cnblogs.com/xybaby/p/7787034.html(有助于理解分布式环境)
http://blog.sina.com.cn/s/blog_6277623c0101jcu6.html(hadoop web端口)
https://blog.****.net/thomas0yang/article/details/8562910(hadoop mapreduce 原理)
在搭建的过程遇见的问题及解决问题的参考资料
问题一 怎么集群的怎么处理各个数据的节点的数据的,是内部机制实现的自动部署还是认为的将数据部署在各个节点上的
问题二,在格式化文件的时候经常会报 no datanode to stop 还有就是无法连接(简单粗暴的方式 基本可以解决大部分问题)
上传文件:
hadoop fs -mkdir -p /Hadoop/Input
hadoop dfs -put /usr/local/software/hadoop-2.7.6/wordcount.txt /Hadoop/Input(前面是文件在服务器的路径 后面的是上面在hdfs创建的路径)
hadoop fs -ls /Hadoop/Input
传 hdfs 然后 用spark 读取测试 val file = sc.textFile("hdfs://192.168.207.91:9000/Hadoop/Input/files/README.md")/Hadoop/Input/files
val file=sc.textFile("hdfs://master:9000/Hadoop/Input/wordcount.txt")
val rdd = file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
rdd.collect()
rdd.foreach(println)
测试 spark程序
hadoop fs -put /usr/local/software/hadoop-2.7.6/UserPurchaseHistory.csv /
./spark-submit --master spark://192.168.207.135:7077 --class cn.ml.PurchaseProduct /usr/local/software/spark-2.2.1-bin-hadoop2.7/SparkWordCount.jar