MJay

Spark-EC2에서 EBS Instance Storage를 올리는 방법 본문

Cloud Computing/Spark

Spark-EC2에서 EBS Instance Storage를 올리는 방법

MJSon 2017. 10. 2. 16:55
Edit

Spark-EC2에서 EBS Instance Storage를 올리는 방법

Block Size를 늘리다보면

Java Heap Space - Memory 랑 관련이 있다.

Disk Instance - Disk Storage랑 관려된 문제이다.

해결책은 Instance Storage를 늘리는 것이다.

if opts.spot_price is not None:
# Launch spot instances with the requested price
ondemand_price = get_instance_price(opts.instance_type)
bid_spot_price = ondemand_price if opts.spot_price > ondemand_price else ondemand_price
print("Requesting %d slaves as spot instances with price $%.3f" %
(opts.slaves, bid_spot_price))
zones = get_zones(conn, opts)
num_zones = len(zones)
i = 0
my_req_ids = []
for zone in zones:
num_slaves_this_zone = get_partition(opts.slaves, num_zones, i)
block_map = BlockDeviceMapping() ## 추가
device = EBSBlockDeviceType(); ## 추가
device.size='64' ## 추가 && 여기서 숫자를 바꿔주면 된다.
device.volume_type="standard" ## Standard 가 EBS를 뜻한다.
device.delete_on_termination= True ## 추가
block_map["/dev/xvda"]=device ## 현재 device 이름이 xvda이다.
slave_reqs = conn.request_spot_instances(
price=bid_spot_price,
image_id=opts.ami,
launch_group="launch-group-%s" % cluster_name,
placement=zone,
count=num_slaves_this_zone,
key_name=opts.key_pair,
security_group_ids=[slave_group.id] + additional_group_ids,
instance_type=opts.instance_type,
block_device_map=block_map,
subnet_id=opts.subnet_id,
placement_group=opts.placement_group,
user_data=user_data_content,
instance_profile_name=opts.instance_profile_name)
my_req_ids += [req.id for req in slave_reqs]
i += 1

이걸 Issue에 같이 올리자

%23%23%23%23%20Spark-EC2%uC5D0%uC11C%20EBS%20Instance%20Storage%uB97C%20%uC62C%uB9AC%uB294%20%uBC29%uBC95%20%0A@%28Marxico%29%0A%0ABlock%20Size%uB97C%20%uB298%uB9AC%uB2E4%uBCF4%uBA74%20%0A%0AJava%20Heap%20Space%20-%20Memory%20%uB791%20%uAD00%uB828%uC774%20%uC788%uB2E4.%0A%0ADisk%20Instance%20%20-%20Disk%20Storage%uB791%20%uAD00%uB824%uB41C%20%uBB38%uC81C%uC774%uB2E4.%0A%0A%uD574%uACB0%uCC45%uC740%20Instance%20Storage%uB97C%20%uB298%uB9AC%uB294%20%uAC83%uC774%uB2E4.%0A%0A%60%60%60python%0Aif%20opts.spot_price%20is%20not%20None%3A%0A%20%20%20%20%20%20%20%20%23%20Launch%20spot%20instances%20with%20the%20requested%20price%0A%20%20%20%20%20%20%20%20ondemand_price%20%3D%20get_instance_price%28opts.instance_type%29%0A%20%20%20%20%20%20%20%20bid_spot_price%20%3D%20ondemand_price%20if%20opts.spot_price%20%3E%20ondemand_price%20else%20ondemand_price%0A%20%20%20%20%20%20%20%20print%28%22Requesting%20%25d%20slaves%20as%20spot%20instances%20with%20price%20%24%25.3f%22%20%25%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28opts.slaves%2C%20bid_spot_price%29%29%0A%0A%20%20%20%20%20%20%20%20zones%20%3D%20get_zones%28conn%2C%20opts%29%0A%20%20%20%20%20%20%20%20num_zones%20%3D%20len%28zones%29%0A%20%20%20%20%20%20%20%20i%20%3D%200%0A%20%20%20%20%20%20%20%20my_req_ids%20%3D%20%5B%5D%0A%20%20%20%20%20%20%20%20for%20zone%20in%20zones%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20num_slaves_this_zone%20%3D%20get_partition%28opts.slaves%2C%20num_zones%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%20block_map%20%3D%20BlockDeviceMapping%28%29%20%20%23%23%20%uCD94%uAC00%0A%20%20%20%20%20%20%20%20%20%20%20%20device%20%3D%20EBSBlockDeviceType%28%29%3B%20%20%20%23%23%20%uCD94%uAC00%0A%20%20%20%20%20%20%20%20%20%20%20%20device.size%3D%2764%27%20%20%20%23%23%20%uCD94%uAC00%20%26%26%20%uC5EC%uAE30%uC11C%20%uC22B%uC790%uB97C%20%uBC14%uAFD4%uC8FC%uBA74%20%uB41C%uB2E4.%0A%20%20%20%20%20%20%20%20%20%20%20%20device.volume_type%3D%22standard%22%20%23%23%20Standard%20%uAC00%20EBS%uB97C%20%uB73B%uD55C%uB2E4.%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20device.delete_on_termination%3D%20True%20%20%23%23%20%uCD94%uAC00%0A%20%20%20%20%20%20%20%20%20%20%20%20block_map%5B%22/dev/xvda%22%5D%3Ddevice%20%20%20%23%23%20%uD604%uC7AC%20device%20%uC774%uB984%uC774%20xvda%uC774%uB2E4.%0A%20%20%20%20%20%20%20%20%20%20%20%20slave_reqs%20%3D%20conn.request_spot_instances%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20price%3Dbid_spot_price%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20image_id%3Dopts.ami%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20launch_group%3D%22launch-group-%25s%22%20%25%20cluster_name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20placement%3Dzone%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%3Dnum_slaves_this_zone%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20key_name%3Dopts.key_pair%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20security_group_ids%3D%5Bslave_group.id%5D%20+%20additional_group_ids%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20instance_type%3Dopts.instance_type%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20block_device_map%3Dblock_map%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20subnet_id%3Dopts.subnet_id%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20placement_group%3Dopts.placement_group%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20user_data%3Duser_data_content%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20instance_profile_name%3Dopts.instance_profile_name%29%0A%20%20%20%20%20%20%20%20%20%20%20%20my_req_ids%20+%3D%20%5Breq.id%20for%20req%20in%20slave_reqs%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20+%3D%201%0A%60%60%60%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%21%5BAlt%20text%5D%28./1505998374280.png%29%0A%0A%uC774%uAC78%20Issue%uC5D0%20%uAC19%uC774%20%uC62C%uB9AC%uC790%20%0A%0A%0A

'Cloud Computing > Spark' 카테고리의 다른 글

Spark-EC2 Too large frame  (0) 2017.10.02
Spark에서 왜 결과값이 16*16이 아니라 4*4 인지 Code를 통해 설명  (0) 2017.10.02
Spark Cluster 구조  (0) 2017.10.02
SparkCL 논문을 읽어봄  (0) 2017.09.12
Spark 구조  (0) 2017.02.18