Сравнить коммиты
35 Коммитов
Автор | SHA1 | Дата |
---|---|---|
|
b3e114a191 | 1 год назад |
|
86190cdebb | 1 год назад |
|
1f8d6213b7 | 1 год назад |
|
6481ca3f49 | 1 год назад |
|
c90038ec36 | 1 год назад |
|
d7ab209538 | 1 год назад |
|
f9d785b4b0 | 1 год назад |
|
6ed59d2c36 | 1 год назад |
|
df5e65ba70 | 1 год назад |
|
154cfba3fc | 1 год назад |
|
985423d77f | 1 год назад |
|
38bfed848e | 1 год назад |
|
c312b71dc6 | 1 год назад |
|
0480c863f7 | 1 год назад |
|
17018cdd40 | 1 год назад |
|
e0232db9eb | 1 год назад |
|
9175081e6d | 1 год назад |
![]() |
30511bfd04 | 2 лет назад |
![]() |
cfbf575845 | 2 лет назад |
![]() |
3f0bba56a5 | 2 лет назад |
![]() |
7610e73e39 | 2 лет назад |
![]() |
66eaf281a0 | 2 лет назад |
![]() |
edaf55cd06 | 2 лет назад |
![]() |
03ffd2bf0f | 2 лет назад |
![]() |
13f29ca9ae | 2 лет назад |
|
2f8f71f20d | 2 лет назад |
|
b17e35f99f | 2 лет назад |
|
402313a24d | 2 лет назад |
|
c8964b9397 | 2 лет назад |
|
041268ea9f | 2 лет назад |
|
a1d0ac906b | 2 лет назад |
![]() |
e5d4571c71 | 2 лет назад |
![]() |
022a882770 | 2 лет назад |
![]() |
63127bd8c3 | 2 лет назад |
![]() |
710b90490d | 2 лет назад |
@ -1,2 +0,0 @@
|
|||||||
.venv*
|
|
||||||
.~lock*
|
|
@ -1,11 +0,0 @@
|
|||||||
FROM python:3.11-slim
|
|
||||||
|
|
||||||
|
|
||||||
COPY . /myapp
|
|
||||||
|
|
||||||
WORKDIR /myapp
|
|
||||||
|
|
||||||
RUN pip install python-dotenv
|
|
||||||
|
|
||||||
ENTRYPOINT [ "python", "multiply.py" ]
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
import sys
|
|
||||||
|
|
||||||
def main(a = 3, b = 5):
|
|
||||||
print(f"multiply {a} by {b} is {a * b}")
|
|
||||||
|
|
||||||
main(int(sys.argv[1]), int(sys.argv[2]))
|
|
@ -1 +0,0 @@
|
|||||||
tqdm
|
|
@ -0,0 +1,14 @@
|
|||||||
|
1 0 {2,3}
|
||||||
|
2 INF {4,5,6,13}
|
||||||
|
3 INF {}
|
||||||
|
4 INF {7,8}
|
||||||
|
5 INF {9,10}
|
||||||
|
6 INF {7,9,11}
|
||||||
|
7 INF {}
|
||||||
|
8 INF {12,13}
|
||||||
|
9 INF {}
|
||||||
|
10 INF {}
|
||||||
|
11 INF {}
|
||||||
|
12 INF {}
|
||||||
|
13 INF {14}
|
||||||
|
14 INF {}
|
@ -0,0 +1,8 @@
|
|||||||
|
1 0.125 {2,4}
|
||||||
|
2 0.125 {3,5,7}
|
||||||
|
3 0.125 {4,8}
|
||||||
|
4 0.125 {5}
|
||||||
|
5 0.125 {1}
|
||||||
|
6 0.125 {1,3}
|
||||||
|
7 0.125 {4}
|
||||||
|
8 0.125 {2,4,6}
|
Двоичный файл не отображается.
@ -0,0 +1,11 @@
|
|||||||
|
user1 Jack76@gmail.com 23-01-2022
|
||||||
|
user2 Hobart99@hotmail.com 25-01-2022
|
||||||
|
user4 Marlon69@gmail.com 02-02-2022
|
||||||
|
user5 Marvin_Hettinger01@yahoo.com 05-02-2022
|
||||||
|
user6 Claude31@gmail.com 06-02-2022
|
||||||
|
user7 Eldora_Heller73@gmail.com 06-02-2022
|
||||||
|
user8 Elizabeth8@yahoo.com 09-02-2022
|
||||||
|
user9 Monserrat.Carter77@hotmail.com 10-02-2022
|
||||||
|
user10 Chris22@gmail.com 12-02-2022
|
||||||
|
user11 Roman.Gibson48@gmail.com 14-02-2022
|
||||||
|
user12 Wyat9@hotmail.com 15-02-2022
|
@ -0,0 +1,500 @@
|
|||||||
|
22:03:42 user7 ya.ru 947
|
||||||
|
22:11:05 user9 vk.com 629
|
||||||
|
04:08:39 user3 lenta.ru 480
|
||||||
|
22:30:44 user7 mail.ru 29
|
||||||
|
17:14:53 user7 ya.ru 626
|
||||||
|
19:06:49 user1 ya.ru 863
|
||||||
|
18:36:24 user6 vk.com 418
|
||||||
|
21:57:54 user8 ya.ru 813
|
||||||
|
10:11:11 user4 lenta.ru 342
|
||||||
|
18:23:28 user6 stackoverflow.com 275
|
||||||
|
23:27:33 user7 telegram.com 721
|
||||||
|
17:31:18 user4 telegram.com 601
|
||||||
|
07:47:02 user8 telegram.com 964
|
||||||
|
09:16:21 user7 ya.ru 90
|
||||||
|
23:22:43 user5 ya.ru 819
|
||||||
|
10:31:07 user1 mail.ru 832
|
||||||
|
11:30:19 user9 mail.ru 329
|
||||||
|
03:02:57 user5 google.com 683
|
||||||
|
06:47:27 user9 telegram.com 929
|
||||||
|
05:53:14 user5 telegram.com 563
|
||||||
|
19:45:10 user3 vk.com 767
|
||||||
|
00:36:28 user10 stackoverflow.com 39
|
||||||
|
08:41:30 user2 stackoverflow.com 74
|
||||||
|
01:49:43 user1 telegram.com 175
|
||||||
|
16:02:08 user9 mail.ru 436
|
||||||
|
14:31:34 user4 ya.ru 17
|
||||||
|
05:08:14 user5 ya.ru 937
|
||||||
|
21:55:19 user5 vk.com 324
|
||||||
|
16:21:50 user3 stackoverflow.com 63
|
||||||
|
07:25:48 user8 telegram.com 780
|
||||||
|
04:41:09 user3 vk.com 377
|
||||||
|
00:07:55 user9 google.com 8
|
||||||
|
00:47:04 user5 google.com 806
|
||||||
|
07:47:33 user6 lenta.ru 92
|
||||||
|
08:29:12 user5 stackoverflow.com 798
|
||||||
|
23:27:29 user6 google.com 597
|
||||||
|
22:21:02 user9 lenta.ru 837
|
||||||
|
18:48:39 user10 telegram.com 187
|
||||||
|
00:31:48 user8 mail.ru 693
|
||||||
|
19:13:28 user5 mail.ru 611
|
||||||
|
20:50:56 user7 google.com 721
|
||||||
|
14:40:48 user7 ya.ru 794
|
||||||
|
00:17:06 user8 vk.com 303
|
||||||
|
23:29:08 user3 google.com 562
|
||||||
|
17:49:38 user4 telegram.com 526
|
||||||
|
18:28:32 user4 mail.ru 74
|
||||||
|
20:07:52 user3 google.com 162
|
||||||
|
23:00:36 user10 lenta.ru 628
|
||||||
|
06:01:48 user5 lenta.ru 792
|
||||||
|
11:09:08 user9 ya.ru 819
|
||||||
|
07:00:01 user9 google.com 523
|
||||||
|
08:14:00 user10 vk.com 689
|
||||||
|
18:35:40 user7 lenta.ru 331
|
||||||
|
03:20:14 user4 google.com 54
|
||||||
|
09:07:15 user8 mail.ru 873
|
||||||
|
18:32:06 user7 ya.ru 568
|
||||||
|
04:46:48 user4 ya.ru 656
|
||||||
|
14:19:17 user7 google.com 613
|
||||||
|
11:24:55 user8 google.com 321
|
||||||
|
01:04:48 user1 vk.com 416
|
||||||
|
20:07:45 user10 lenta.ru 639
|
||||||
|
06:56:03 user6 stackoverflow.com 425
|
||||||
|
11:16:30 user10 stackoverflow.com 2
|
||||||
|
19:07:15 user3 lenta.ru 829
|
||||||
|
10:38:11 user5 telegram.com 669
|
||||||
|
01:40:05 user1 stackoverflow.com 353
|
||||||
|
03:28:26 user7 ya.ru 297
|
||||||
|
20:34:04 user4 telegram.com 523
|
||||||
|
03:12:38 user2 vk.com 828
|
||||||
|
23:45:37 user7 google.com 894
|
||||||
|
04:37:36 user9 ya.ru 393
|
||||||
|
23:21:44 user6 mail.ru 24
|
||||||
|
21:04:06 user10 mail.ru 393
|
||||||
|
13:45:27 user10 telegram.com 862
|
||||||
|
07:04:14 user9 lenta.ru 719
|
||||||
|
09:08:47 user2 ya.ru 405
|
||||||
|
10:40:19 user10 ya.ru 281
|
||||||
|
08:18:54 user3 telegram.com 584
|
||||||
|
15:18:11 user7 ya.ru 151
|
||||||
|
05:49:13 user5 ya.ru 541
|
||||||
|
18:43:13 user7 telegram.com 814
|
||||||
|
20:32:47 user10 telegram.com 137
|
||||||
|
08:23:22 user2 ya.ru 242
|
||||||
|
17:35:44 user8 ya.ru 987
|
||||||
|
23:28:18 user6 ya.ru 647
|
||||||
|
17:41:07 user6 mail.ru 671
|
||||||
|
17:57:42 user7 ya.ru 699
|
||||||
|
19:54:46 user3 google.com 814
|
||||||
|
22:18:36 user4 mail.ru 87
|
||||||
|
22:14:50 user4 stackoverflow.com 812
|
||||||
|
05:32:00 user5 stackoverflow.com 526
|
||||||
|
10:45:04 user3 ya.ru 643
|
||||||
|
13:30:28 user7 vk.com 554
|
||||||
|
07:03:50 user6 lenta.ru 448
|
||||||
|
05:56:24 user10 telegram.com 415
|
||||||
|
04:26:45 user3 stackoverflow.com 212
|
||||||
|
12:40:25 user10 mail.ru 843
|
||||||
|
05:35:42 user5 mail.ru 552
|
||||||
|
04:47:15 user5 lenta.ru 98
|
||||||
|
03:15:14 user9 telegram.com 816
|
||||||
|
12:44:40 user4 lenta.ru 569
|
||||||
|
19:50:43 user3 lenta.ru 738
|
||||||
|
07:01:37 user1 telegram.com 830
|
||||||
|
16:47:46 user10 telegram.com 867
|
||||||
|
23:58:47 user8 google.com 922
|
||||||
|
12:46:02 user4 lenta.ru 428
|
||||||
|
09:51:50 user9 telegram.com 266
|
||||||
|
17:53:18 user5 lenta.ru 843
|
||||||
|
06:50:21 user9 stackoverflow.com 535
|
||||||
|
11:01:29 user9 telegram.com 920
|
||||||
|
12:05:02 user3 vk.com 387
|
||||||
|
04:49:34 user7 vk.com 302
|
||||||
|
16:50:30 user4 stackoverflow.com 146
|
||||||
|
03:38:55 user2 stackoverflow.com 79
|
||||||
|
03:32:38 user7 ya.ru 964
|
||||||
|
06:15:37 user6 lenta.ru 311
|
||||||
|
09:33:34 user6 ya.ru 266
|
||||||
|
05:47:51 user6 google.com 218
|
||||||
|
18:21:46 user4 lenta.ru 819
|
||||||
|
23:30:52 user4 vk.com 589
|
||||||
|
19:54:14 user5 mail.ru 148
|
||||||
|
00:07:31 user6 telegram.com 704
|
||||||
|
14:37:53 user9 ya.ru 912
|
||||||
|
13:37:26 user7 vk.com 636
|
||||||
|
17:28:20 user6 stackoverflow.com 911
|
||||||
|
09:09:59 user7 ya.ru 383
|
||||||
|
23:28:34 user1 lenta.ru 164
|
||||||
|
20:01:04 user4 ya.ru 398
|
||||||
|
23:37:47 user9 stackoverflow.com 987
|
||||||
|
15:37:34 user4 google.com 687
|
||||||
|
07:32:42 user1 google.com 443
|
||||||
|
02:09:31 user2 ya.ru 230
|
||||||
|
08:04:50 user1 telegram.com 70
|
||||||
|
01:58:03 user7 mail.ru 173
|
||||||
|
07:12:29 user1 vk.com 486
|
||||||
|
23:18:52 user2 mail.ru 578
|
||||||
|
01:04:44 user6 telegram.com 708
|
||||||
|
00:27:50 user1 mail.ru 180
|
||||||
|
02:47:33 user4 google.com 225
|
||||||
|
18:15:47 user1 mail.ru 333
|
||||||
|
11:02:25 user3 vk.com 78
|
||||||
|
01:33:08 user4 lenta.ru 789
|
||||||
|
13:13:30 user1 vk.com 142
|
||||||
|
15:44:13 user8 ya.ru 181
|
||||||
|
10:50:52 user1 mail.ru 663
|
||||||
|
17:22:57 user5 ya.ru 80
|
||||||
|
04:23:33 user7 lenta.ru 452
|
||||||
|
07:43:57 user9 ya.ru 320
|
||||||
|
01:23:18 user1 ya.ru 630
|
||||||
|
09:27:26 user6 google.com 916
|
||||||
|
07:33:39 user1 mail.ru 417
|
||||||
|
06:39:25 user1 telegram.com 484
|
||||||
|
23:36:16 user7 lenta.ru 348
|
||||||
|
14:25:34 user8 vk.com 702
|
||||||
|
10:46:12 user8 telegram.com 591
|
||||||
|
12:57:23 user3 lenta.ru 973
|
||||||
|
02:08:37 user4 lenta.ru 510
|
||||||
|
08:08:46 user4 telegram.com 147
|
||||||
|
00:18:51 user5 vk.com 146
|
||||||
|
14:13:43 user4 vk.com 50
|
||||||
|
12:11:57 user1 ya.ru 963
|
||||||
|
16:58:21 user4 vk.com 549
|
||||||
|
08:08:35 user4 vk.com 918
|
||||||
|
12:10:01 user10 mail.ru 651
|
||||||
|
14:29:13 user4 stackoverflow.com 668
|
||||||
|
20:39:50 user10 vk.com 185
|
||||||
|
15:57:05 user8 mail.ru 103
|
||||||
|
06:16:57 user6 vk.com 281
|
||||||
|
12:03:44 user8 stackoverflow.com 543
|
||||||
|
13:50:47 user1 stackoverflow.com 863
|
||||||
|
11:46:28 user3 stackoverflow.com 834
|
||||||
|
01:07:48 user1 vk.com 382
|
||||||
|
21:58:46 user6 google.com 372
|
||||||
|
05:44:13 user8 ya.ru 956
|
||||||
|
22:31:39 user9 stackoverflow.com 500
|
||||||
|
03:26:32 user4 google.com 65
|
||||||
|
13:31:05 user10 mail.ru 834
|
||||||
|
20:42:50 user5 vk.com 947
|
||||||
|
08:48:05 user8 google.com 348
|
||||||
|
14:26:36 user1 mail.ru 310
|
||||||
|
21:33:13 user7 mail.ru 843
|
||||||
|
15:04:39 user7 stackoverflow.com 874
|
||||||
|
20:04:07 user6 vk.com 437
|
||||||
|
15:33:23 user7 telegram.com 596
|
||||||
|
19:48:44 user7 stackoverflow.com 233
|
||||||
|
07:55:47 user6 telegram.com 83
|
||||||
|
23:49:22 user9 mail.ru 831
|
||||||
|
09:14:32 user2 telegram.com 784
|
||||||
|
11:58:33 user5 stackoverflow.com 535
|
||||||
|
19:09:21 user10 ya.ru 715
|
||||||
|
03:41:11 user2 vk.com 131
|
||||||
|
12:19:01 user10 vk.com 36
|
||||||
|
11:54:35 user3 stackoverflow.com 825
|
||||||
|
21:26:01 user2 google.com 911
|
||||||
|
14:45:36 user8 stackoverflow.com 968
|
||||||
|
03:20:02 user2 vk.com 525
|
||||||
|
08:40:26 user10 stackoverflow.com 220
|
||||||
|
08:46:23 user7 mail.ru 57
|
||||||
|
23:53:53 user3 lenta.ru 709
|
||||||
|
02:47:54 user3 mail.ru 728
|
||||||
|
22:20:18 user2 telegram.com 137
|
||||||
|
21:23:38 user10 vk.com 556
|
||||||
|
00:54:30 user10 lenta.ru 335
|
||||||
|
07:09:59 user7 telegram.com 63
|
||||||
|
21:47:19 user5 stackoverflow.com 631
|
||||||
|
21:25:23 user8 vk.com 289
|
||||||
|
09:27:14 user7 lenta.ru 598
|
||||||
|
22:13:29 user4 mail.ru 350
|
||||||
|
06:15:44 user7 google.com 680
|
||||||
|
15:31:36 user3 google.com 68
|
||||||
|
06:14:59 user3 mail.ru 874
|
||||||
|
15:49:47 user8 ya.ru 507
|
||||||
|
15:00:53 user6 lenta.ru 524
|
||||||
|
15:34:52 user9 lenta.ru 716
|
||||||
|
02:24:33 user6 stackoverflow.com 759
|
||||||
|
17:06:19 user3 google.com 982
|
||||||
|
21:25:53 user3 telegram.com 243
|
||||||
|
11:43:31 user10 stackoverflow.com 102
|
||||||
|
11:36:21 user5 ya.ru 824
|
||||||
|
08:57:48 user8 telegram.com 804
|
||||||
|
12:27:05 user10 lenta.ru 59
|
||||||
|
17:54:58 user1 vk.com 367
|
||||||
|
10:04:24 user8 ya.ru 574
|
||||||
|
09:19:07 user4 ya.ru 904
|
||||||
|
21:00:05 user2 lenta.ru 80
|
||||||
|
06:50:52 user4 google.com 443
|
||||||
|
05:49:12 user9 telegram.com 877
|
||||||
|
14:04:01 user9 google.com 961
|
||||||
|
09:27:40 user4 stackoverflow.com 707
|
||||||
|
16:17:55 user4 ya.ru 94
|
||||||
|
19:52:58 user3 vk.com 340
|
||||||
|
02:33:33 user6 mail.ru 94
|
||||||
|
19:47:14 user4 google.com 697
|
||||||
|
19:14:44 user4 vk.com 327
|
||||||
|
00:05:04 user8 stackoverflow.com 875
|
||||||
|
04:20:47 user9 mail.ru 984
|
||||||
|
13:59:40 user9 google.com 149
|
||||||
|
05:34:14 user3 ya.ru 627
|
||||||
|
21:35:09 user5 lenta.ru 680
|
||||||
|
18:51:53 user4 google.com 976
|
||||||
|
03:54:01 user4 telegram.com 933
|
||||||
|
00:57:33 user1 google.com 723
|
||||||
|
21:42:44 user4 vk.com 989
|
||||||
|
11:12:49 user10 mail.ru 993
|
||||||
|
04:42:31 user7 stackoverflow.com 671
|
||||||
|
11:28:57 user7 stackoverflow.com 369
|
||||||
|
06:15:28 user6 lenta.ru 779
|
||||||
|
22:49:24 user8 google.com 658
|
||||||
|
20:11:10 user9 stackoverflow.com 701
|
||||||
|
15:24:36 user10 google.com 5
|
||||||
|
18:09:32 user7 mail.ru 73
|
||||||
|
13:33:39 user7 google.com 347
|
||||||
|
04:31:44 user8 vk.com 904
|
||||||
|
05:06:14 user1 ya.ru 756
|
||||||
|
10:18:29 user7 ya.ru 445
|
||||||
|
10:18:02 user4 google.com 115
|
||||||
|
05:50:25 user4 mail.ru 443
|
||||||
|
15:01:04 user3 google.com 818
|
||||||
|
07:40:05 user9 telegram.com 925
|
||||||
|
00:49:59 user1 vk.com 884
|
||||||
|
07:19:35 user2 lenta.ru 758
|
||||||
|
15:49:44 user2 vk.com 227
|
||||||
|
04:38:37 user6 ya.ru 216
|
||||||
|
13:33:28 user7 stackoverflow.com 914
|
||||||
|
20:23:07 user5 ya.ru 681
|
||||||
|
16:47:20 user9 lenta.ru 237
|
||||||
|
23:18:46 user10 ya.ru 879
|
||||||
|
03:23:24 user9 telegram.com 409
|
||||||
|
00:31:41 user7 google.com 550
|
||||||
|
11:12:16 user7 ya.ru 924
|
||||||
|
19:49:00 user9 ya.ru 617
|
||||||
|
02:24:55 user2 telegram.com 672
|
||||||
|
09:00:33 user8 telegram.com 666
|
||||||
|
00:14:08 user4 stackoverflow.com 960
|
||||||
|
21:04:24 user2 vk.com 861
|
||||||
|
06:56:12 user6 lenta.ru 569
|
||||||
|
16:09:10 user3 vk.com 628
|
||||||
|
04:18:52 user4 ya.ru 185
|
||||||
|
05:53:17 user6 ya.ru 242
|
||||||
|
10:14:54 user10 mail.ru 883
|
||||||
|
07:30:10 user9 stackoverflow.com 907
|
||||||
|
14:03:46 user1 stackoverflow.com 397
|
||||||
|
05:12:37 user9 vk.com 616
|
||||||
|
13:32:45 user4 lenta.ru 79
|
||||||
|
02:59:04 user2 google.com 638
|
||||||
|
09:21:21 user3 ya.ru 981
|
||||||
|
04:19:13 user1 telegram.com 238
|
||||||
|
22:19:13 user1 telegram.com 279
|
||||||
|
22:01:28 user9 vk.com 401
|
||||||
|
17:20:19 user7 vk.com 995
|
||||||
|
09:52:58 user5 vk.com 614
|
||||||
|
23:19:48 user2 lenta.ru 600
|
||||||
|
04:08:21 user8 vk.com 563
|
||||||
|
18:11:46 user2 telegram.com 550
|
||||||
|
18:58:12 user4 ya.ru 51
|
||||||
|
07:39:05 user1 ya.ru 187
|
||||||
|
13:55:26 user2 telegram.com 663
|
||||||
|
06:39:29 user9 telegram.com 296
|
||||||
|
16:17:18 user10 google.com 38
|
||||||
|
12:17:17 user4 telegram.com 613
|
||||||
|
21:48:48 user5 telegram.com 519
|
||||||
|
12:12:33 user1 vk.com 860
|
||||||
|
02:45:50 user3 lenta.ru 411
|
||||||
|
00:34:42 user4 vk.com 335
|
||||||
|
08:50:59 user4 telegram.com 202
|
||||||
|
22:54:38 user1 vk.com 239
|
||||||
|
04:45:14 user5 mail.ru 267
|
||||||
|
19:35:51 user8 vk.com 738
|
||||||
|
11:29:14 user8 ya.ru 553
|
||||||
|
22:57:08 user6 google.com 338
|
||||||
|
12:56:14 user2 telegram.com 17
|
||||||
|
22:54:46 user5 mail.ru 499
|
||||||
|
02:00:31 user2 vk.com 459
|
||||||
|
14:38:44 user2 ya.ru 822
|
||||||
|
20:55:22 user4 vk.com 218
|
||||||
|
09:31:53 user3 telegram.com 971
|
||||||
|
05:34:24 user7 vk.com 113
|
||||||
|
18:27:58 user10 lenta.ru 751
|
||||||
|
15:31:21 user4 ya.ru 153
|
||||||
|
20:08:57 user2 mail.ru 78
|
||||||
|
09:09:25 user4 telegram.com 909
|
||||||
|
20:52:53 user1 mail.ru 736
|
||||||
|
12:08:23 user9 lenta.ru 837
|
||||||
|
01:39:11 user3 telegram.com 596
|
||||||
|
08:11:35 user6 stackoverflow.com 130
|
||||||
|
11:37:14 user3 google.com 650
|
||||||
|
02:21:19 user4 telegram.com 417
|
||||||
|
13:59:13 user2 mail.ru 332
|
||||||
|
23:00:42 user3 vk.com 77
|
||||||
|
16:14:28 user6 ya.ru 946
|
||||||
|
04:08:27 user2 lenta.ru 836
|
||||||
|
04:51:00 user10 google.com 536
|
||||||
|
20:02:44 user10 ya.ru 236
|
||||||
|
19:50:22 user8 ya.ru 320
|
||||||
|
20:23:13 user4 mail.ru 25
|
||||||
|
19:20:32 user9 vk.com 118
|
||||||
|
18:41:15 user5 telegram.com 774
|
||||||
|
10:21:39 user6 lenta.ru 257
|
||||||
|
04:36:55 user2 ya.ru 29
|
||||||
|
20:08:11 user6 vk.com 123
|
||||||
|
23:28:56 user1 telegram.com 325
|
||||||
|
16:43:28 user6 ya.ru 129
|
||||||
|
16:13:38 user6 mail.ru 739
|
||||||
|
06:47:52 user1 ya.ru 125
|
||||||
|
14:21:50 user4 vk.com 340
|
||||||
|
01:09:31 user1 ya.ru 912
|
||||||
|
13:31:51 user7 vk.com 583
|
||||||
|
10:45:15 user10 lenta.ru 909
|
||||||
|
07:37:42 user4 lenta.ru 523
|
||||||
|
15:21:16 user6 stackoverflow.com 349
|
||||||
|
01:55:09 user3 google.com 840
|
||||||
|
02:56:05 user2 google.com 918
|
||||||
|
18:47:53 user10 google.com 154
|
||||||
|
16:31:58 user3 ya.ru 177
|
||||||
|
15:48:14 user1 ya.ru 315
|
||||||
|
21:35:54 user10 stackoverflow.com 752
|
||||||
|
15:48:18 user10 vk.com 167
|
||||||
|
22:48:54 user10 mail.ru 949
|
||||||
|
03:20:30 user2 stackoverflow.com 628
|
||||||
|
10:22:02 user5 vk.com 119
|
||||||
|
07:12:05 user3 google.com 140
|
||||||
|
22:54:12 user4 stackoverflow.com 9
|
||||||
|
22:52:00 user9 vk.com 243
|
||||||
|
16:36:18 user4 google.com 720
|
||||||
|
07:25:11 user10 lenta.ru 360
|
||||||
|
10:53:14 user5 stackoverflow.com 115
|
||||||
|
22:06:24 user6 mail.ru 204
|
||||||
|
08:09:50 user9 ya.ru 639
|
||||||
|
01:23:25 user8 lenta.ru 949
|
||||||
|
14:07:07 user5 ya.ru 212
|
||||||
|
00:11:14 user6 stackoverflow.com 153
|
||||||
|
21:04:52 user8 google.com 673
|
||||||
|
09:04:20 user9 telegram.com 899
|
||||||
|
03:55:32 user4 telegram.com 773
|
||||||
|
20:09:40 user8 telegram.com 885
|
||||||
|
08:56:49 user10 ya.ru 212
|
||||||
|
11:19:22 user4 stackoverflow.com 2
|
||||||
|
06:23:19 user2 vk.com 323
|
||||||
|
06:31:18 user9 lenta.ru 878
|
||||||
|
07:55:28 user10 vk.com 8
|
||||||
|
04:56:05 user3 lenta.ru 442
|
||||||
|
15:55:46 user6 mail.ru 894
|
||||||
|
09:58:49 user10 telegram.com 355
|
||||||
|
19:17:21 user8 ya.ru 280
|
||||||
|
02:25:53 user2 lenta.ru 391
|
||||||
|
01:24:10 user5 telegram.com 805
|
||||||
|
15:04:49 user9 mail.ru 88
|
||||||
|
12:03:53 user9 mail.ru 763
|
||||||
|
01:31:44 user4 ya.ru 790
|
||||||
|
16:36:50 user9 ya.ru 656
|
||||||
|
01:49:36 user2 vk.com 250
|
||||||
|
17:52:13 user6 telegram.com 493
|
||||||
|
15:31:37 user7 mail.ru 81
|
||||||
|
06:28:53 user1 lenta.ru 597
|
||||||
|
19:06:28 user2 telegram.com 979
|
||||||
|
07:34:54 user8 ya.ru 153
|
||||||
|
20:43:04 user10 mail.ru 37
|
||||||
|
16:13:16 user9 google.com 422
|
||||||
|
06:21:44 user9 ya.ru 999
|
||||||
|
22:19:57 user9 google.com 487
|
||||||
|
21:39:34 user9 stackoverflow.com 235
|
||||||
|
16:29:19 user7 lenta.ru 778
|
||||||
|
06:53:08 user7 mail.ru 660
|
||||||
|
10:36:50 user2 ya.ru 957
|
||||||
|
21:48:51 user10 vk.com 811
|
||||||
|
21:58:18 user6 telegram.com 805
|
||||||
|
18:23:54 user8 stackoverflow.com 930
|
||||||
|
21:35:30 user7 telegram.com 729
|
||||||
|
04:20:22 user8 stackoverflow.com 462
|
||||||
|
08:30:00 user6 telegram.com 396
|
||||||
|
20:18:27 user6 telegram.com 391
|
||||||
|
07:42:17 user7 telegram.com 878
|
||||||
|
11:06:38 user7 ya.ru 503
|
||||||
|
16:23:35 user7 lenta.ru 100
|
||||||
|
01:41:21 user7 vk.com 68
|
||||||
|
23:44:06 user1 telegram.com 268
|
||||||
|
18:02:19 user4 ya.ru 70
|
||||||
|
18:34:29 user4 mail.ru 470
|
||||||
|
03:25:06 user2 telegram.com 790
|
||||||
|
19:59:09 user8 mail.ru 384
|
||||||
|
15:01:55 user7 stackoverflow.com 370
|
||||||
|
02:04:39 user9 stackoverflow.com 476
|
||||||
|
18:30:31 user9 ya.ru 829
|
||||||
|
11:52:36 user5 ya.ru 187
|
||||||
|
20:32:38 user1 stackoverflow.com 714
|
||||||
|
08:44:38 user5 lenta.ru 122
|
||||||
|
19:29:26 user2 ya.ru 851
|
||||||
|
17:48:57 user3 ya.ru 737
|
||||||
|
23:23:34 user1 lenta.ru 450
|
||||||
|
16:59:05 user3 telegram.com 268
|
||||||
|
11:43:50 user9 mail.ru 491
|
||||||
|
02:51:48 user8 stackoverflow.com 287
|
||||||
|
09:56:43 user2 stackoverflow.com 381
|
||||||
|
08:45:16 user2 vk.com 790
|
||||||
|
05:54:14 user8 telegram.com 986
|
||||||
|
15:07:58 user7 stackoverflow.com 629
|
||||||
|
12:27:07 user9 telegram.com 634
|
||||||
|
05:56:17 user8 telegram.com 262
|
||||||
|
11:04:42 user4 google.com 206
|
||||||
|
18:12:41 user3 lenta.ru 818
|
||||||
|
17:58:23 user8 vk.com 752
|
||||||
|
09:13:13 user6 stackoverflow.com 574
|
||||||
|
09:14:11 user5 lenta.ru 933
|
||||||
|
23:48:42 user5 google.com 665
|
||||||
|
13:08:36 user7 telegram.com 301
|
||||||
|
16:22:32 user4 ya.ru 45
|
||||||
|
02:27:01 user3 mail.ru 506
|
||||||
|
17:36:01 user6 telegram.com 334
|
||||||
|
18:39:35 user1 stackoverflow.com 569
|
||||||
|
08:40:18 user6 telegram.com 84
|
||||||
|
14:59:41 user2 mail.ru 496
|
||||||
|
01:38:07 user2 mail.ru 716
|
||||||
|
01:19:11 user5 vk.com 467
|
||||||
|
02:22:51 user10 google.com 540
|
||||||
|
14:42:58 user7 google.com 688
|
||||||
|
00:45:36 user6 google.com 296
|
||||||
|
13:17:02 user4 lenta.ru 470
|
||||||
|
01:51:33 user1 stackoverflow.com 355
|
||||||
|
03:19:23 user3 lenta.ru 923
|
||||||
|
09:57:04 user1 telegram.com 625
|
||||||
|
12:52:14 user5 stackoverflow.com 749
|
||||||
|
02:59:47 user7 lenta.ru 535
|
||||||
|
17:57:03 user6 google.com 618
|
||||||
|
19:45:48 user3 vk.com 533
|
||||||
|
17:43:42 user1 google.com 924
|
||||||
|
15:01:14 user3 vk.com 526
|
||||||
|
04:00:36 user1 lenta.ru 416
|
||||||
|
08:37:13 user9 mail.ru 236
|
||||||
|
04:29:43 user9 ya.ru 179
|
||||||
|
16:57:32 user9 lenta.ru 291
|
||||||
|
13:02:28 user5 mail.ru 113
|
||||||
|
23:48:24 user5 stackoverflow.com 755
|
||||||
|
00:25:50 user2 google.com 471
|
||||||
|
23:20:36 user3 vk.com 405
|
||||||
|
00:37:27 user9 mail.ru 211
|
||||||
|
21:09:09 user10 google.com 438
|
||||||
|
01:22:17 user9 ya.ru 893
|
||||||
|
08:52:51 user6 telegram.com 369
|
||||||
|
02:12:19 user9 ya.ru 470
|
||||||
|
02:45:23 user4 ya.ru 233
|
||||||
|
11:51:42 user1 stackoverflow.com 979
|
||||||
|
01:57:46 user3 stackoverflow.com 118
|
||||||
|
04:50:29 user8 mail.ru 474
|
||||||
|
20:54:36 user10 ya.ru 635
|
||||||
|
19:48:56 user7 lenta.ru 480
|
||||||
|
18:02:03 user4 stackoverflow.com 447
|
||||||
|
09:19:02 user9 vk.com 615
|
||||||
|
16:04:11 user3 telegram.com 266
|
||||||
|
20:16:14 user1 telegram.com 871
|
||||||
|
00:40:06 user5 telegram.com 726
|
||||||
|
08:53:25 user10 ya.ru 520
|
||||||
|
22:59:49 user5 vk.com 677
|
||||||
|
04:54:04 user4 lenta.ru 487
|
||||||
|
18:51:42 user6 mail.ru 587
|
||||||
|
05:46:05 user7 google.com 32
|
||||||
|
20:46:19 user3 vk.com 78
|
||||||
|
03:09:30 user5 telegram.com 25
|
||||||
|
07:22:33 user10 mail.ru 36
|
||||||
|
13:18:50 user5 vk.com 551
|
||||||
|
20:03:00 user7 stackoverflow.com 800
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
@ -0,0 +1,127 @@
|
|||||||
|
# Лабораторная работа №1. Знакомство с Hadoop
|
||||||
|
|
||||||
|
## Цель
|
||||||
|
|
||||||
|
* Установить вирутальную машину с Hadoop
|
||||||
|
* Познакомиться с работой в файловой системе HDFS
|
||||||
|
* Реализовать MapReduce задачу для подсчета слов в тексте (Word Count)
|
||||||
|
|
||||||
|
## Выполнение
|
||||||
|
|
||||||
|
Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них.
|
||||||
|
При необходимости - комментарии по полученным результатам.
|
||||||
|
|
||||||
|
### Установка вирутальной машины
|
||||||
|
На компьютере должна быть установлена вирутальная машина Oracle VM VirtualBox. Скачать дистрибутив можно по [ссылке](https://www.virtualbox.org/wiki/Downloads) (распространяется бесплатно под лицензией GPLv2)
|
||||||
|
Кроме того, на компьютере должен находиться образ виртуальной машины (файлы с расширением `.ovf` и `.vmdk`). В лаборатории его можно скачать из сетевой папки компьютера DESKTOP_TENJU5T.
|
||||||
|
Для установки образа нужно выполнить следующие действия:
|
||||||
|
|
||||||
|
* Открыть VirtualBox
|
||||||
|
* В меню "Файл" выбрать "Импорт конфигурации".
|
||||||
|
* Указать путь до файла с образом `.ovf`.
|
||||||
|
* В параметрах импорта указать размер памяти ОЗУ 8192 Мб, остальное оставить без изменений.
|
||||||
|
* Нажать кнопку "Импорт" и дождаться завершения.
|
||||||
|
|
||||||
|
В меню появится новая виртуальная машина - включить ее и дождаться загрузки
|
||||||
|
|
||||||
|
### Знакомство с работой в файловой системе HDFS
|
||||||
|
Для выполнения этой лабораторной работы используте терминал, а не файловые менеджеры.
|
||||||
|
|
||||||
|
1. В домашней директории локальной файловой системы создайте директорию `stud`. **В дальнейшем все требуемые файлы создавайте в этой директории**
|
||||||
|
|
||||||
|
2. Создайте текстовый файл `hello_hadoop.txt` с двумя строками. В первой строке - Фамилия и Имя, во второй строке - текст:
|
||||||
|
|
||||||
|
_Hello Hadoop! The Apache Hadoop is a framework that allows the distributed processing of large data sets across clusters of computers using simple programming models.
|
||||||
|
Hadoop provides a software framework for distributed storage and processing of big data_
|
||||||
|
|
||||||
|
|
||||||
|
3. Сформируйте текстовый файл большого объема (начиная от нескольких Мб). Например, воспользуйтесь сайтом [lib.ru](http://lib.ru/).
|
||||||
|
|
||||||
|
Скачать текстовый файл можно с помощью команды `wget`, передав в кавычках адрес файла, например:
|
||||||
|
|
||||||
|
```
|
||||||
|
wget "http://lib.ru/LITRA/PUSHKIN/p3.txt"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
4. Поверьте, что файл имеет корректную кодировку. При необходимости, исправить кодировку можно одной из команд, которые запишут результат в новый файл:
|
||||||
|
```
|
||||||
|
cat p3.txt | iconv -f windows-1251 -t utf8 > p3_utf.txt
|
||||||
|
|
||||||
|
cat p3.txt | iconv -f koi8-r -t utf8 > p3_utf.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Просмотрите содержимое корневой директории файловой системы HDFS. Поясните результат.
|
||||||
|
|
||||||
|
6. Создайте в HDFS директорию `/stud` в корневой директории. **В дальнейшем все требуемые файлы создавайте в этой директории**
|
||||||
|
|
||||||
|
7. Создайте пустой файл `hello_hdfs.txt`.
|
||||||
|
|
||||||
|
8. Выведите содержимое папки `/stud`, соданной в HDFS, поясните результат.
|
||||||
|
|
||||||
|
9. Скопируйте файл `hello_hdfs.txt` в локальную файловую систему в папку `/stud`, убедитесь что копирование выполнено.
|
||||||
|
|
||||||
|
10. Скопируйте из локальной файловой системы в HDFS 'большой текстовый файл', созданный в п.3.
|
||||||
|
|
||||||
|
11. Выведите содержимое папки `/stud`, соданной в HDFS, поясните результат.
|
||||||
|
|
||||||
|
|
||||||
|
### Реализация и запуск MapReduce задачи
|
||||||
|
|
||||||
|
В этом пункте задания нужно выполнить подсчет количества повторений каждого слова в файле, созданном в п.3.
|
||||||
|
|
||||||
|
Для этого нужно реализовать на языке Python два модуля: `mapper` и `reducer`, проверить (отладить) их работу
|
||||||
|
в локальной файловой системе на небольшом файле, а затем перенести модули в HDFS и выполнить обработку большого текста.
|
||||||
|
|
||||||
|
1. Реализуйте в локальной папке `/stud` два модуля на языке Python: `mapper.py` и `reducer.py` (см. лекции)
|
||||||
|
|
||||||
|
2. Проверьте работу `mapper.py`, подав на вход файл 'hello_hadoop.txt'
|
||||||
|
|
||||||
|
3. Проверьте работу связки mapper-reducer на файле 'hello_hadoop.txt'
|
||||||
|
|
||||||
|
Для связки в терминале нескольких команд в одну удобно использовать [_pipeline_](https://www.gnu.org/software/bash/manual/html_node/Pipelines.html) - последовательность команд, разделенных символом `|`.
|
||||||
|
При этом вывод первой команды будет являться входными данными для следующией и так далее по цепочке.
|
||||||
|
Например, чтобы подать на вход `mapper.py` данные из файла 'hello_hadoop.txt', а результат отсортировать по ключу, нужно выполнить цепочку:
|
||||||
|
|
||||||
|
прочитать файл -> результат чтения передать в `mapper.py` -> результат выполнения отсортировать:
|
||||||
|
|
||||||
|
```
|
||||||
|
cat hello_hadoop.txt | mapper.py | sort
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Выполните подсчет слов в большом текстовом файле, находящемся в HDFS
|
||||||
|
|
||||||
|
Для запуска MapReduce задачи, написанной на языке, отличном от Java, существует специальная утилита [Hadoop Streaming](https://hadoop.apache.org/docs/stable1/streaming.html).
|
||||||
|
Для запуска необходимо выполнить jar-файл _hadoop-streaming.jar_, подав в качестве параметров информацию о входном файле, расположенном в HDFS, о папке в HDFS, куда должен быть записан результат,
|
||||||
|
о расположении кода mapper'а и reducer'а.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
|
||||||
|
-input <hdfs/path/to/input_file> \
|
||||||
|
-output <hdfs/output/dir> \
|
||||||
|
-mapper "python </path/to/mapper.py>" \
|
||||||
|
-reducer "python </path/to/reducer.py>"
|
||||||
|
```
|
||||||
|
Путь к файлу hadoop-streaming.jar может меняться в зависимости от операционной системы и настройках при установке.
|
||||||
|
|
||||||
|
При указании пути угловые скобки `<` `>` писать *не нужно*
|
||||||
|
|
||||||
|
В опциях `-mapper`, `-reducer` слово python указывает ОС, что необходимо выполнить программу на языке Python, расположенную по заданному локальному пути.
|
||||||
|
|
||||||
|
В **случае ошибки выполнения** и последующего перезапуска команды может возникнуть сообщение об ошибке, что папке, указанная в `-output` уже существует. В этом случае ее нужно удалить.
|
||||||
|
|
||||||
|
5. После успешного выполнения расчетов сохраните в отчет и проанализируйте выведенную статистику по задаче, укажите какие файлы создались в выходной директории и первые 50 строк каждого.
|
||||||
|
|
||||||
|
### Вопросы
|
||||||
|
|
||||||
|
1. Что такое Hadoop?
|
||||||
|
2. Что такое HDFS?
|
||||||
|
3. Что такое MapReduce?
|
||||||
|
4. Какие этапы существуют в модели MapReduce?
|
||||||
|
5. Какими командами можно скопировать файл из локальной файловой системы в HDFS и обратно?
|
||||||
|
6. Для чего нужна и как работает утилита _hadoop-streaming_?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,160 @@
|
|||||||
|
# Лабораторная работа №2. Реализация алгоритма MapReduce
|
||||||
|
|
||||||
|
|
||||||
|
## Цель
|
||||||
|
|
||||||
|
* Научиться реализовывать алгоритмы в парадигме MapReduce
|
||||||
|
|
||||||
|
## Выполнение
|
||||||
|
|
||||||
|
Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них.
|
||||||
|
При необходимости - комментарии по полученным результатам.
|
||||||
|
|
||||||
|
|
||||||
|
### Задачи
|
||||||
|
|
||||||
|
* Разработать на языке Python алгоритм в парадигме MapReduce в соответствии с вариантом.
|
||||||
|
* Разработку и тестирование допускается проводить в локальной системе.
|
||||||
|
* Запустить разработанный алгоритм в среде Hadoop.
|
||||||
|
* Убедиться в корректности полученных результатов.
|
||||||
|
* Сформировать отчет о выполненной работе. В отчете показать финальный результат работы (или его часть).
|
||||||
|
|
||||||
|
|
||||||
|
### Варианты заданий
|
||||||
|
|
||||||
|
#### 1. Сравнение посещаемости сайтов в разное время
|
||||||
|
|
||||||
|
__Дано__: ежедневные журналы посещений сайтов за три дня:
|
||||||
|
|
||||||
|
* [День 1](assets/visits1.txt)
|
||||||
|
* [День 2](assets/visits2.txt)
|
||||||
|
* [День 3](assets/visits3.txt)
|
||||||
|
|
||||||
|
Формат данных:
|
||||||
|
```
|
||||||
|
19:05:44 telegram.com 622
|
||||||
|
01:08:01 vk.com 935
|
||||||
|
22:28:55 mail.ru 154
|
||||||
|
17:15:16 mail.ru 100
|
||||||
|
```
|
||||||
|
|
||||||
|
Первый столбец - время посещения.
|
||||||
|
|
||||||
|
Второй столбец - сайт.
|
||||||
|
|
||||||
|
Третий столбец - продолжительность посещения в секундах.
|
||||||
|
|
||||||
|
__Требуется__: определить среднюю за три дня продолжительность посещения в первой и второй половине дня.
|
||||||
|
Алгоритм должен включать этап `combiner`.
|
||||||
|
|
||||||
|
Первая половина дня: с 00:00:00 по 12:59:59
|
||||||
|
|
||||||
|
Вторая половина дня: с 13:00:00 по 23:59:59
|
||||||
|
|
||||||
|
Формат вывода:
|
||||||
|
```
|
||||||
|
telegram.com 510 234
|
||||||
|
vk.com 384 651
|
||||||
|
mail.ru 154 324
|
||||||
|
```
|
||||||
|
Первый столбец - сайт.
|
||||||
|
|
||||||
|
Второй столбец - средняя продожительность посещения в первой половине дня в секундах.
|
||||||
|
|
||||||
|
Третий столбец - средняя продожительность посещения во второй половине дня в секундах.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 2. Определение минимального расстояния до каждой вершины
|
||||||
|
|
||||||
|
__Дано__: [структура графа](assets/graph.txt) в виде списка смежности:
|
||||||
|
```
|
||||||
|
1 0 {2,3,4}
|
||||||
|
2 INF {5,6}
|
||||||
|
6 INF {}
|
||||||
|
```
|
||||||
|
|
||||||
|
Первый столбец - номер вершины.
|
||||||
|
|
||||||
|
Второй столбец - известное расстояние до данной вершины.
|
||||||
|
|
||||||
|
Третий столбец - список смежных вершин.
|
||||||
|
|
||||||
|
__Требуется__: рассчитать минимальное расстояние до каждой вершины используя метод поиска в ширину (BFS).
|
||||||
|
|
||||||
|
|
||||||
|
Формат вывода:
|
||||||
|
```
|
||||||
|
1 0 {2,3,4}
|
||||||
|
2 1 {5,6}
|
||||||
|
6 2 {}
|
||||||
|
```
|
||||||
|
Структура такая же, как и у входного файла.
|
||||||
|
|
||||||
|
Вес всех ребер равен единице.
|
||||||
|
Обратить внимание, что данный алгоритм итеративный, т.е. требует нескольких запусков задачи MapReduce.
|
||||||
|
Итоговый результат должен отображать расстояние до __всех__ вершин графа.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 3. PageRank
|
||||||
|
|
||||||
|
__Дано__: [Структура графа сети](assets/pagerank.txt) в виде ключа, веса PageRank и смежных вершин
|
||||||
|
```
|
||||||
|
1 0.200 {2,4}
|
||||||
|
2 0.200 {3,5}
|
||||||
|
3 0.200 {4}
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Параметры:
|
||||||
|
```
|
||||||
|
alpha = 0.1
|
||||||
|
```
|
||||||
|
|
||||||
|
__Требуется__: рассчитать веса PageRank по прошествии 3 итераций.
|
||||||
|
|
||||||
|
```
|
||||||
|
1 0.080 {2,4}
|
||||||
|
2 0.170 {3,5}
|
||||||
|
3 0.170 {4}
|
||||||
|
...
|
||||||
|
```
|
||||||
|
Структура такая же, как и у входного файла. Все округления до 3 знаков после запятой.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 4. TF-IDF
|
||||||
|
|
||||||
|
__Дано__: [Текст трех произведений](assets/shakespear.txt). В начале каждой строки указан номер произведения.
|
||||||
|
|
||||||
|
|
||||||
|
__Требуется__: рассчитать tf-idf вес каждого слова в каждом произведении.
|
||||||
|
|
||||||
|
Формат вывода:
|
||||||
|
```
|
||||||
|
Слово1#1 0.123
|
||||||
|
Слово1#2 0.234
|
||||||
|
Слово2#1 0.678
|
||||||
|
```
|
||||||
|
|
||||||
|
После слова через решетку идет номер документа, далее через отступ - tf-idf вес данного слова в данном документе.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Вопросы
|
||||||
|
|
||||||
|
1. Какие этапы существуют у MapReduce задач?
|
||||||
|
2. Какие принцип должны закладываться в алгоритмы, написанные в парадигме MapReduce?
|
||||||
|
2. В каком виде осуществляется передача данных между Map и Reduce?
|
||||||
|
3. Как определяется число mapper-процессов в MapReduce задаче?
|
||||||
|
4. Как могут представляться графы в математическом виде? Как они обычно представляются в задачах MapReduce?
|
||||||
|
5. В чем заключается и как работает алгоритм PageRank?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
# Лабораторная работа №3. Знакомство с инструментами Pig и Hive
|
||||||
|
|
||||||
|
|
||||||
|
## Цель
|
||||||
|
|
||||||
|
* Научиться обрабатывать и проводить анализ данных с помощью инструметов Pig и Hive.
|
||||||
|
|
||||||
|
## Выполнение
|
||||||
|
|
||||||
|
Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них.
|
||||||
|
При необходимости - комментарии по полученным результатам.
|
||||||
|
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
|
||||||
|
**Внимание**: В локальной папке `stud` создать папку `lab03`. Далее работы проводить в этой папке
|
||||||
|
|
||||||
|
|
||||||
|
### Знакомство с Pig
|
||||||
|
|
||||||
|
1.1 Загрузить текстовый файл в соответствии с вариантом.
|
||||||
|
|
||||||
|
1.2 В среде `grunt`, запущенной __локально__ реализовать алгоритм подсчета слов (word count). Результат должен быть уполрядочен по алфавиту
|
||||||
|
|
||||||
|
|
||||||
|
1.3 Модифицировать алгоритм, выводя только слова на первую букву вашей фамилии.
|
||||||
|
|
||||||
|
1.4 Модифицировать алгоритм таким образом, чтобы после подсчета word_count и фильтрации по первой букве,
|
||||||
|
в качестве результата выдавалась сумма всех значений столбца `count' (сумма слов).
|
||||||
|
|
||||||
|
|
||||||
|
### Знакомство с Hive
|
||||||
|
|
||||||
|
|
||||||
|
2.1 В среде `Hive` создать таблицы `visits` и `info`, позволяющие хранить данные из файлов [user_visits.txt](assets/user_visits.txt) и [user_info.txt](assets/user_info.txt)
|
||||||
|
|
||||||
|
2.2 Загрузить данные в таблицы.
|
||||||
|
|
||||||
|
2.3 Найти в HDFS место хранения таблиц, в отчете указать их размер и уровень репликации.
|
||||||
|
|
||||||
|
2.4 Сформировать запросы, которые выводят первые 10 строк каждой таблицы.
|
||||||
|
|
||||||
|
2.5 Создать запрос, который выводит среднее время посещения всех сайтов пользователем с номером, совпададающим с вашим номером по журналу.
|
||||||
|
|
||||||
|
2.6 Создать запрос, который выведет электронный адрес, идентификатор пользователя, название посещенного сайта и время посещения этого сайта.
|
||||||
|
|
||||||
|
2.7 Создать запрос, реализующий полное внешнее соединение таблиц `visits` и `info`. Пояснить, какие строки каждой из таблиц попали или не попали в результирующее множество.
|
||||||
|
|
||||||
|
|
||||||
|
### Варианты заданий
|
||||||
|
|
||||||
|
1. http://lib.ru/SHAKESPEARE/ENGL/dream_en.txt
|
||||||
|
2. http://lib.ru/SHAKESPEARE/ENGL/much_en.txt
|
||||||
|
3. http://lib.ru/SHAKESPEARE/ENGL/pericles_en.txt
|
||||||
|
4. http://lib.ru/SHAKESPEARE/ENGL/errors_en.txt
|
||||||
|
5. http://lib.ru/SHAKESPEARE/ENGL/mercant_en.txt
|
||||||
|
6. http://lib.ru/SHAKESPEARE/ENGL/winters_en.txt
|
||||||
|
7. http://lib.ru/SHAKESPEARE/ENGL/measure_en.txt
|
||||||
|
8. http://lib.ru/SHAKESPEARE/ENGL/allend_en.txt
|
||||||
|
9. http://lib.ru/SHAKESPEARE/ENGL/pilgrim_en.txt
|
||||||
|
10. http://lib.ru/SHAKESPEARE/ENGL/macbeth_en.txt
|
||||||
|
11. http://lib.ru/SHAKESPEARE/ENGL/lear_en.txt
|
||||||
|
12. http://lib.ru/SHAKESPEARE/ENGL/othel_en.txt
|
||||||
|
|
||||||
|
|
||||||
|
### Вопросы
|
||||||
|
|
||||||
|
1. Что такое и для чего нужен инструмент Pig?
|
||||||
|
1. Как запустить код, написанный на языке Pig Latin?
|
||||||
|
2. Что такое "мешок", "кортеж" и "поле" в Pig?
|
||||||
|
1. Что такое и для чего нужен инструмент Hive?
|
||||||
|
2. Чем отличается Hive от Pig?
|
||||||
|
3. Какие шаги (какие команды) нужно выполнить, чтобы создать таблицу на основе данных из файла?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,90 @@
|
|||||||
|
# Лабораторная работа №4. Знакомство с NoSQL СУБД HBase
|
||||||
|
|
||||||
|
|
||||||
|
## Цель
|
||||||
|
|
||||||
|
* Познакомиться с функционалом СУБД HBase.
|
||||||
|
* Научиться добавлять и получать записи в СУБД HBase.
|
||||||
|
|
||||||
|
## Выполнение
|
||||||
|
|
||||||
|
Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них.
|
||||||
|
При необходимости - комментарии по полученным результатам.
|
||||||
|
|
||||||
|
|
||||||
|
### Задачи
|
||||||
|
|
||||||
|
* Создать таблицу в СУБД HBase
|
||||||
|
* Внести информацию по посещению интернет-ресурсов пользователями _alice_ и _bob_
|
||||||
|
* Создать новое семейсто колонок для хранения мета-информации
|
||||||
|
* Внести хэш используемых cookie для пользователей
|
||||||
|
|
||||||
|
### Методические указания
|
||||||
|
|
||||||
|
1. В терминале запустить оболочку HBase, выполнив команду
|
||||||
|
|
||||||
|
`hbase shell`
|
||||||
|
|
||||||
|
2. Создать таблицу `visits` в которой будет хранится информация о том, какие сайты посещали пользователи.
|
||||||
|
Внутри таблицы создать первую column family для хранения информации о непосредственно посещенном ресурсе.
|
||||||
|
|
||||||
|
синтаксис команды `create` в самом простом случае:
|
||||||
|
`create 'table_name', 'column_family_name'`
|
||||||
|
|
||||||
|
3. Убедиться, что таблица создана. Для этого вывести список всех имеющихся таблиц.
|
||||||
|
|
||||||
|
4. Добавить в таблицу первую запись:
|
||||||
|
|
||||||
|
пользователь - ключ (строка) таблицы - _alice_
|
||||||
|
|
||||||
|
ресурс - _vk.com_
|
||||||
|
|
||||||
|
продолжительность посещения - _125_
|
||||||
|
|
||||||
|
время посещения (timestamp) - _1702411635951_. Подразумевается, что timestamp вносится в стандартное поле `ts`, которое существует для любой ячейки в таблице, а НЕ создается отдельный столбец.
|
||||||
|
|
||||||
|
|
||||||
|
Синтаксис операции put:
|
||||||
|
|
||||||
|
`put 'table_name', 'row', 'column_family:column', 'value', timestamp`
|
||||||
|
|
||||||
|
В общем случае, `timestamp` является необязательным. Если не указать вручную, то проставится текущее время.
|
||||||
|
|
||||||
|
5. С помощью оператора `scan` вывести строки таблицы на экран, убедиться в том, что данные сохранились в таблицу корректно.
|
||||||
|
|
||||||
|
6. Добавить новую запись:
|
||||||
|
|
||||||
|
пользователь - _bob_
|
||||||
|
|
||||||
|
ресурс - _google.com_
|
||||||
|
|
||||||
|
время посещения (timestamp) - текущее время
|
||||||
|
|
||||||
|
7. Появилась необходимость создать новую column family для хранения мета-информации.
|
||||||
|
Для этого необходимо отключить таблицу командой `disable`, внести требуемые изменения командой `alter` и включить таблицу обратно.
|
||||||
|
|
||||||
|
Синтаксис команды `alter`:
|
||||||
|
|
||||||
|
`alter 'table_name', 'new_cf_name'`
|
||||||
|
|
||||||
|
8. Вывести описание таблицы с помощью команды `describe`, описать полученный результат.
|
||||||
|
|
||||||
|
9. Для пользователя _alice_ добавить мета-информацию в столбец `cookie` '_abc123_',
|
||||||
|
Для пользователя _bob_ добавить `cookie` '_xyz987_'
|
||||||
|
|
||||||
|
10. Вывести всю информацию по пользователю `alice` на текущий момент.
|
||||||
|
|
||||||
|
11. Вывести всю информацию по пользователю `alice` на момент 1702411635955.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Вопросы
|
||||||
|
|
||||||
|
1. Каким типом СУБД является HBase?
|
||||||
|
2. Какой командой можно создать новую таблицу в HBase?
|
||||||
|
3. Что такое 'семейство колонок' (column family)?
|
||||||
|
4. Какие команды нужно выполнить чтобы добавить новое семейство колонок в существующую таблицу?
|
||||||
|
5. Какой командой можно вывести всю информацию по заданной строке?
|
||||||
|
|
||||||
|
|
||||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче