mavenhttps://www.yiibai.com/maven
spark
- pyspark官方笔记
- pyspark学习笔记
- cache&persist:cache()调用了persist(),cache默认的缓存级别MEMORY_ONLY ,persist设置其它的缓存级别。
- 查看运行的任务id:sc.applicationId
- shuffle:哪些操作会有shuffle呢
- NVL函数是一个空值转换函数:nvl(表达式1,表达式2),如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。
- job,stage,task,partition.executor理解:job=n*stage; stage=n*task; task对应partition
- spark与MapReduce区别:一个Spark 任务并不止包含一个Map 和一个Reduce,而是由一系列的Map、Reduce构成。https://blog.youkuaiyun.com/SmartShylyBoy/article/details/82424726
- coalesce&repartition:
- coalesce是把几个分区合并到一个分区,没有shuffle,用于减少分区。repartition是重新分配分区,有shuffle。
- 每个文件块是128m最好吗?
- spark_submmit:https://blog.youkuaiyun.com/hochoy/article/details/80506336
- 每个节点可以起一个或多个Executor。
- 每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task。
- 每个Task执行的结果就是生成了目标RDD的一个partiton。
LINUX&SHELL&HDFS操作
linux&shell:https://www.cnblogs.com/savorboard/p/bash-guide.html#functions
- md5sum:根据文件内容生成校验码,文件内容一样则生成的校验码也一样
- mkdir -p: -p可以创建parent目录
- shell 日期:date='date +%Y-%m-%d'
- $?:上一行的返回值,比如test命令的返回值。
- 管道符 |:利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
- more命令:类似cat命令,一页页显示。
- test命令:
- 数值测试:-eq : 两数值相等(equal) -ne : 两数值不等(not equal) -gt : n1大于n2 (greater than) -lt : n1小于n2 (less than) -ge : n1大于等于n2(greater than or equal) -le : n1小于等于n2(less than or equal)
- 文件测试:-e文件名 文件存在则为真
- -z,[ -z string ] “string” 的长度为零则为真。
- 实时监控文件: tail -f 文件名
-
ps命令:https://www.cnblogs.com/wxgblogs/p/6591980.html
-
ps aux : 显示当下正在内存的任务,格式为:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
-
ps aux | grep name: 显示出当下在内存的包含name字段的进程。注意,第一条返回的是本身命令,若只返回一条说明没找到。
-
-
awk数据分析并生成报告,sed编辑,grep查找
-
sed命令:
-
awk命令:注意awk是一行行处理,但是以字段来区分的。http://www.cnblogs.com/xudong-bupt/p/3721210.html
-
awk 'BEGIN{X=0} /^.*$/{ X+=1 } END{print "I find",X,"blank lines."}' 文件名 查看文件有多少行
-
-
grep正则表达式:
-
查看当前进程: -aux | grep +name 比如 -aux | grep hive 是查看运行的当前hive进程
-
linux 正则表达式https://www.cnblogs.com/chensiqiqi/p/6285060.html
-
-
export命令:export修改的环境变量只对本身和其子shell有效。不用export修改的环境变量只对本身有效,对子shell无效
-
export -p:列出当前shell的环境变量
-
-
source命令:类似与include命令。不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行,然后当前shell就能访问脚本中的变量了。https://blog.youkuaiyun.com/qq_37050372/article/details/81176278
-
exec命令:执行一段命令替换当前的shell进程。执行完该命令后shell进程也被杀死了。该shell中exec后的命令不执行https://blog.youkuaiyun.com/qq_31186123/article/details/82190776
- sh -x shell文件:“-x”选项使shell在执行脚本时把每个命令行显示出来,并在行首显示"+"。 "+"号后是经过了变量替换后的命令行。
- 输出重定向:
- > 文档名: 覆盖写入文档
- >> 文档名:追加写入文档
- | tee -a 文档名:追加写入文档并打印在终端
- http://www.runoob.com/linux/linux-shell-io-redirections.html
hdfs:
- 显示文件前(后)n行:hdfs dfs -cat 路径 | head -n( tail -n)
- -copyToLocal [hdfs源路径] [linux目的路径] :将hdfs上文件拷贝到本地
- -put <多个本地文件> <hdfs路径> :将本地文件上传到hdfs
- -touchz <文件路径> : 创建空白文件
- nohup :离线运行,执行方式:nohup 命令
-
HIVE&SQL&Spark操作
hive:
https://www.cnblogs.com/smartloli/p/4354291.html
- load:导入文件操作只是单纯的复制/移动操作,将数据文件移动到 Hive 表对应的位置
- hive -e &hive -f:命令行直接执行sql语句&文件
- 内部表&外部表:内部表有固定的存储位置,外部表自定存储位置。删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
- hive统计函数。
- 查看线上表的建表方式:show create table 表名;(hive中执行操作,即hive 回车)
- 仿照线上表建表:create table test表名 like 线上表名(hive中执行操作,即hive 回车)
- 线上表删除:dtop table 表名(hive中执行操作,即hive 回车)
- hive预留字段:用``将列括起来
- alter table: http://www.w3school.com.cn/sql/sql_alter.asp关联
-
新建hive表参数设置:https://www.cnblogs.com/liuwei6/p/6691406.html
-
(1) ROW FORMAT DELIMITED 是指明后面的关键词是列和元素分隔符的。(2) FIELDS TERMINATED BY 是字段分隔符,(3) COLLECTION ITEMS TERMINATED BY 是元素分隔符( Array 中的各元素、 Struct 中的各元素、 Map 中的 key、 value 对之间)(5)MAP KEYS TERMINATED BY 是 Map 中 key 与 value 的分隔符, LINES TERMINATED BY 是行之间的分隔符
-
STORED AS TEXTFILE 指数据文件上传之后保存的格式
-
sql:
- 查看当前spark运行id:sc.applicationId
- Spark运行状态的监控.
- DATE_ADD(date,n) :向日期添加指定的时间间隔,默认为天。
- DATE_SUB(date,n) :向日期减少指定的时间间隔,默认为天。
Hadoop streaming
Hadoop为MapReduce提供了不同的API,可以方便我们使用不同的编程语言来使用MapReduce框架.