Baimoon's Note


  • 首页

  • 分类

  • 归档

  • 标签

Unix Common Command

发表于 2016-07-27   |   分类于 unix

该文记录了自己常用的unix的命令

awk的使用

语法

用例

计算文件中某列的总和

1
2
3
4
5
6
7
8
$ vim test.log
a 1
b 3
c 5
d 6
$ cat test.log | awk '{a = a + $2} END {print a}'
15

使用awk对字符串进行拆分

1
cat 1103kick.log | awk '{split($0, a, "\""); print a[2]}' # 按照"拆分,然后输出第2个数据

在awk中打印单引号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
test.log
287901341
285315045
288588058
283098937
287076722
284529273
head test.log | awk '{print "mv " "'\''" $1 "'\''"}'
mv '287901341'
mv '285315045'
mv '288588058'
mv '283098937'
mv '287076722'
mv '284529273'

AWK中使用判断

在AWK中是可以使用if判断语句的,if(判断条件) 执行语句; else if (判断条件) 执行语句; else 执行语句。
下面的例子,判断文件夹中的所有文件,如果文件的大小为0,则打印该文件的文件名。

1
ls -l | awk -F ' ' 'if($4 == 0) print $10'

逻辑操作

在使用AWK中使用if进行条件判断是,可以使用逻辑操作符进行组合判断,支持的逻辑操作符有:&&、||。

1
ll -t | awk '{if(($6=="Jan" || $6=="Feb" || $6=="Mar" || $6=="Apr" || $6="May") && $8=="2019"){print $9}}'

阅读全文 »

Cluster Mode Overview

发表于 2016-07-26   |   分类于 spark

本文是对Cluster Mode Overview的翻译,请多提宝贵意见。

这个文档给出了关于Spark如何在集群上运行的简短的概述,通过它是对相关组件的理解更加容易。通过读取application submission guide来学习如何在一个集群上发布application。

Components

Spark application在集群上作为一组独立的进程运行,并通过你的主程序(被称为驱动程序)中的SparkContext进行协调。
特别的,要在一个cluster运行,SparkContext能够连接到几个类型的cluster managers(Spark自己的standalone cluster manager、Mesos或YARN),通过application来分配资源。一旦连接到,Spark要求集群中node上的executors进程来为你的application计算并存储数据。接下来,它发送你的应用程序代码(通过JAR或Python文件传递给SparkContext)给executors。最终,SparkContext发送tasks给executors来执行。

架构

阅读全文 »

Submitting Applications

发表于 2016-07-25   |   分类于 spark

本文是对spark文档之Submitting Applications章节的翻译,原文档连接
在Spark的bin目录下的spark-submit脚本被用来发布应用程序到集群中。它能够使用所有被Spark支持的cluster managers的统一接口,因此你不需要为每个application进行配置。

Bundling Your Application’s Dependencies(绑定你的应用程序的依赖)

如果你的代码依赖其他项目,你需要将它们打包到你的应用程序中,以便将它分发到集群。为了这样做,需要创建一个assembly jar(或)来包含你的代码和代码的依赖。sbt和Maven都有assembly插件。当创建assembly jar的时候,作为被提供的依赖列出Spark和Hadoop;这些不需要被捆绑,因为他们在运行时,cluster管理器会提供。一旦你有了一个assembly的jar包,你能够调用bin/spark-submit脚本在传递你的jar时进行解析。
对于Python,你可以使用spark-submit的–py-files参数来添加.py,.zip或.egg的文件,来发布你的application。如果你依赖多个Python文件,我们推荐将它们打包到.zip或.egg中。

Launching Applications with spark-submit

一旦一个用户application被捆绑,那么这个application可以使用bin/spark-submit脚本来发布。这个脚本需要使用Spark和它的依赖来设置classpath,并支持不同的cluster manager和Spark支持的部署模式:

1
2
3
4
5
6
7
./bin/spark-submit \
--class <main-class> --master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... #other options
<application-jar> \
[application-arguments]

阅读全文 »

Programming Guide

发表于 2016-07-25   |   分类于 spark

本文是对spark编程指南的翻译,主要用于自己对spark的理解,原文档链接

Linking with Spark

Spark 2.0.0默认使用Scala 2.11进行构建和部署。(Spark也可以使用其他版本的Scala进行构建)要使用Scala来编写application,你需要使用一个合适的Scala版本(如2.11.X)。
要编写一个Spark application,你需要在添加Spark的Maven依赖。Spark在Maven中可用的坐标为:

1
2
3
groupId = org.apache.spark
artifactId = spark-core_2.11
version = 2.0.0

另外,如果你想要访问一个HDFS集群,你需要添加与你的HDFS对应版本的hadoop-client依赖:

1
2
3
groupId = org.apache.hadoop
artifactId = hadoop-client
version = <your-hdfs-version>

阅读全文 »

Quick Start

发表于 2016-07-25   |   分类于 spark

本文是Spark 快速开始的翻译文档,会随着自己的实现进行更新

Spark shell的启动方式

spark提供了一种简单的方法来学习API,那就是Spark的shell。可以以Scala或python的方式来启动shell。
Scala的启动方式:

1
./bin/spark-shell

python的启动方式:

1
./bin/pyspark

spark的主要抽象是项目的分布式集合,被称为Resilient Distributed Database(RDD)。RDD能够根据Hadoop的输入格式(诸如HDFS文件)来创建,或者由其他RDD转换成为RDD。我们根据Spark源码中的README文件来创建一个新的RDD:

1
2
scala > val textFile = sc.textFile("README.md")
textFile:spark.RDD[String]= spark.MappedRDD@2ee9b6e3

阅读全文 »

CentOS install Jzmq

发表于 2016-07-17   |   分类于 jzmq

本文介绍了如何在CentOS系统上安装Jzmq

安装CZMQ

首先要求系统安装了zmq,在CentOS系统中,可以直接使用yum进行安装:

1
yum install czmq

安装JZMQ

在安装了zmq之后,需要下载Jzmq,进行编译和安装:

1
2
3
4
5
6
git clone https://github.com/zeromq/jzmq.git
cd jzmq-jni/
./autogen.sh
./configure
make
make install
阅读全文 »
1…34
baimoon

baimoon

Baimoon's blog

66 日志
24 分类
30 标签
GitHub
Links
  • xrange
© 2016-07 - 2020 baimoon
由 Hexo 强力驱动
主题 - NexT.Muse