Thay thế Docker bằng Anaconda khi thực hiện thiết lập môi trường thực hành Big Data
TIL
500
pyenv
1
anaconda
1
python3
2
White

Trần Đức Tâm viết ngày 17/11/2017

Bằng một cách thần kì nào đó. Một ngày nọ, khách hàng bỗng dưng đòi thiết lập môi trường chạy thử bài toán Big Data. Docker lúc này chợt trở nên cồng kềnh hơn bao giờ hết. Giải pháp cho tình thế này là gì? Anaconda trở nên vô cùng tiện dụng.

Anaconda

Anaconda là một hệ thống quản lý version/package mang tên một loài trăn dành cho Python. Đây là một giải pháp rất nhanh gọn bổ rẻ để chia sẻ môi trường làm việc đồng đều nhau giữa các máy cần sử dụng python làm giải pháp dữ liệu lớn.

Note lại các yêu cầu

  • Toàn bộ team đều sử dụng máy Mac/Mac OS X(Riêng máy chủ để chạy test/vận hành dùng linux)
  • Máy của mình sử dụng iTern 2 có thiệt lập sẵn oh-my-zsh.
  • Yêu cầu phiên bản cần thiết lập:
    • python3
    • pandas
    • numpy
    • matplotlib
    • xxx (thư viện bị censor)

Brew

Trình quản lý package không thể thiếu trên Mac OS.

Kiểm tra sự tồn tại của Homebrewbrew.

$ brew --version
Homebrew 1.3.7
Homebrew/homebrew-core (git revision 0725e; last commit 2017-11-16)

Trong trường hợp máy chưa có Homebrew thì cần tiến hành cài đặt.

$ usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Trong trường hợp đã có thì update lên bản mới nhất.

$ brew update && brew upgrade

Pyenv

Trình quản lí các phiên bản của python. Đây là công cụ hữu ích nhằm tạo ra nhiều loại môi trường khác nhau và hoán đổi qua lại giữa chúng.

Mặc định là không có rồi vì chả ai khi không đi cài nó một mình rồi bỏ đấy cả.

$ brew install pyenv

Update biến môi trường cho pyenv cũng như activate nó.

$ echo export PYENV_ROOT="${HOME}/.pyenv"
$ echo export PATH={PYENV_ROOT}/bin:$PATH
$ echo eval "$(pyenv init -)"
$ exec $SHELL -l

Phía trên đã thực hiện activate rồi nhưng không hiểu sao máy mình không làm được nên mình thêm một bước nữa cho chắc cú.

$ source ~/.zshrc

Cài đặt bổ trợ thêm quả môi trường ảo nếu cần tuy nhiên vì tung cho khách hàng nên mình bỏ qua điều này.

$ brew install pyenv-virtualenv

Kiểm tra danh sách môi trường có thể cài đặt lên pyenv thông qua.

$ pyenv install -l | grep anaconda
anaconda3-5.0.0

Anaconda

Sau khi kiểm tra được version mới nhất của anaconda, tiến hành cài đặt thông qua.

$ pyenv install anaconda3-5.0.0

Kiểm tra khả năng tính hiện hữu của các package cần sử dụng.

$ python
Python 3.4.3 |Anaconda 2.2.0 (x86_64)| (default, Mar  6 2015, 12:07:41)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> |

Clone lại môi trường của máy khác và máy của mình bởi vì mặc dù là những thư viện trên đã đủ tuy nhiên còn một số thư viện bí mật chưa được cài đặt nên cần phải cập nhật tự động.

$ conda env create -f environment.yml

Kích hoạt môi trường vừa clone ra được.

$ pyenv global anaconda3-5.0.0/envs/environment

Việc cuối cùng là viết thành shell code đáp cho khách hàng và ngồi đợi ăn hành. Trong lúc chưa có tin báo lỗi phát sinh từ tiền tuyến thì note lại cho đỡ quên. Hàng copy lung tung trên Qiita để nhằm mục đích cho xong việc nên có nhiều vấn đề cũng không hiểu rõ bản chất để giải thích.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Trần Đức Tâm

4 bài viết.
48 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
44 6
Phần I.I Machine Learning là gì? TL;DR Mình nghiên cứu Machine Learning(Link) bắt đầu từ khoảng một năm về trước, mất khoảng sáu tháng để tự luyệ...
Trần Đức Tâm viết 8 tháng trước
44 6
White
21 9
Phần I.2 Tensorflow và bài toán Hồi quy đơn giản đầu tiên TL;DR Qua bài viết trước, chúng ta đã biết được đến sự tồn tại của một vài khái niệm c...
Trần Đức Tâm viết 8 tháng trước
21 9
White
1 2
kotlin fun main(args: Array) { find("a") find("b") find("c") find("d") } val a : MutableList = mutableListOf() fun find(name: String, a...
Trần Đức Tâm viết 9 tháng trước
1 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
48 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!