运行OPS小结

OPS repo: https://github.com/sjtu-ist/OPS

启动Hadoop集群

1
2
3
# log in slave1
$ ./shell/stop-all.sh
$ ./shell/start-all.sh

目前该脚本只启动了slave1和slave2中的hadoop集群,如果想使用更多的节点,需要修改上述脚本。需要注意的是,应确保使用的Hadoop是OPS定制的版本。编译后的OPS-Hadoop应该会在Hadoop根目录下生成share.tar文件,可以将其copy到slave3等节点上使用。

启动OPS

slave1作为OPS的master和worker,slave2只作为worker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# slave1 shell1
$ cd ~/OPS/scripts
$ ./ops.sh master stop
$ ./ops.sh master start

# slave1 shell2
$ cd ~/OPS/scripts
$ ./ops.sh worker stop
$ ./ops.sh worker start

# slave2 shell1
$ cd ~/OPS/scripts
$ ./ops.sh worker stop
$ ./ops.sh worker start

使用HiBench测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ cd ~/HiBench
$ tree bin/workloads/micro/
micro/
├── dfsioe
│   ├── hadoop
│   │   ├── run_read.sh
│   │   ├── run.sh
│   │   └── run_write.sh
│   └── prepare
│   └── prepare.sh
├── sleep
│   ├── hadoop
│   │   └── run.sh
│   ├── prepare
│   │   └── prepare.sh
│   └── spark
│   └── run.sh
├── sort
│   ├── hadoop
│   │   └── run.sh
│   ├── prepare
│   │   └── prepare.sh
│   └── spark
│   └── run.sh
├── terasort
│   ├── hadoop
│   │   └── run.sh
│   ├── prepare
│   │   └── prepare.sh
│   └── spark
│   └── run.sh
└── wordcount
├── hadoop
│   └── run.sh
├── prepare
│   └── prepare.sh
└── spark
└── run.sh

# 可以任选一个测试集,先运行prepare.sh生成数据(如果之前运行过,生成的数据没有删,此后就不需要运行prepare了),再运行run.sh开始测试
$ ./bin/workloads/micro/wordcount/prepare/prepare.sh
$ ./bin/workloads/micro/wordcount/hadoop/run.sh

注意:每次运行hadoop作业时需要先清空etcd中的数据(原因未知)

1
docker exec etcd /bin/sh -c "export ETCDCTL_API=3 && /usr/local/bin/etcdctl del --prefix ops/"

查看结果

hadoop port:11088
hdfs port: 11070