hadoop fs -mkdir -p /user/hadoop 创建一个目录
hadoop fs -rm-r /user/hadoop 删除目录
hadoop fs -put data.txt 上传文件
hadoop fs -cat data.txt 查看文件
exit() 退出
source 更新
start-dfs.sh 启动hadoop 三个Node
start-yarn.sh 两个Manager
jupyter notebook --ip python5 虚拟机里退出jupyter Ctrl+c
在丘比特网址写代码,先运行环境代码
import os
import sys
spark_home = os.environ.get('SPARK_HOME',None)
if not spark_home:
raise ValueError('SPARK_HOME enviroment variable is not set')
sys.path.insert(0,os.path.join(spark_home,'python'))
sys.path.insert(0,os.path.join(spark_home,'python/lib/py4j-0.10.4-src.zip'))
exec(open(os.path.join(spark_home,'python/pyspark/shell.py')).read())
等出现welcome to 就OK了,就可以在下面的框里面写代码了
map 将数据打散成你想要的格式
reduce 根据键值对进行统计
hadoop 存贮数据 MapReduce分析数据
hadoop是建立在yarn(集群)上
hadoop做Wordcount
用hadoop自带的MapReduce做数据分析
在hadoop根路径进文件
/hadoop-2.7.6/share/hadoop/mapreduce/有一个jar包 hadoop-mapreduce-examples-2.7.6.jar
**上传文件 hadoop fs -put 文件名 如果不在根目录下,需要在文件名前加~/
hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /user/hadoop/data.txt /user/output
(通过调用上面的jar包 单词统计这个文件 将结果放在这个文件里)
通过命令查看hadoop fs -cat /user/output/part-r-00000
在hadoop上输spark-shell命令 出来Scala界面,(scala和hadoop都是java为基础)
输出一句话是println()
区分大小写:类名第一个字母大写;方法名称第一个字母小写
注释 /**/ //
面向行的语言,以;结束或换行。
常量是 val 变量var 声明时要给出数据类型
var myVar :String=“foo”
变量可以修改值 ,常量不能修改值
循环
if(布尔表达式)
while循环
do……while循环
for循环
<- 相当于Python循环中的in
1 to 10 是全输出
1 until 10 不输出10
Scala写法
var lines=sc.textFile("hdfs://python5:9000/user/hadoop/data.txt")这是文件的路径
定义变量
浏览器 http://python5:8088/cluster
拆分:
map本身带循环
lines.map(x=>x.split(" ").collect())
lines.map(x=>x.split(" ")).map(x=>for(i <- x)println(i)).collect()
将文件每个单词以空格分开输出
lines.map(x=>x.split(" ")).flatMap(x=>for(i <- x)yield(i,1)).collect()
将上面的三个数组 整合成一个数组
lines.map(x=>x.split(" ")).flatMap(x=>for(i <- x)yield(i,1)).groupByKey().collect()
只是键分组,并没统计通过 reduceByKey wordcount