3/29/2021

Cài đặt và triển khai Hadoop Single Node | Share


Mỗi ngành công nghiệp lớn đang triển khai Apache Hadoop là khung tiêu chuẩn để xử lý và lưu trữ dữ liệu lớn. Hadoop được thiết kế để được triển khai trên một mạng lưới hàng trăm hoặc thậm chí hàng ngàn máy chủ chuyên dụng. Tất cả các máy này làm việc cùng nhau để đối phó với khối lượng lớn và nhiều bộ dữ liệu khổng lồ.

Xem thêmCài đặt và triển khai Spark standalone



Hadoop mạnh mẽ và hữu dụng chỉ khi được cài đặt và khai thác nó trên nhiều node, tuy nhiên với người bắt đầu thì Hadoop Single node là sự khởi đầu tuyệt vời để làm quen với hadoop. Bài viết này mình sẽ hướng dẫn các bạn triển khai Hadoop trên 1 node ( Hadoop Single node).

Điều kiện trước khi cài : 

  • Máy bạn phải có Openjdk ( bản 8, 11 hay 15 đều được), nếu chưa có thì bạn có thể cài theo câu lệnh sau : 
sudo apt-get install openjdk-11-jdk -y
  • Máy có SSH client và SSH server, nếu chưa có thì bạn có thể cài theo câu lệnh sau : 
sudo apt-get install openssh-server openssh-client -y

Thiết lập User cho Hadoop

Thường mình thấy một nhiều trang hướng dẫn các bạn tạo một user mới trên Ubuntu và cài Hadoop trên đó nhưng qua trải nhiệm của mình thì cài Single Node chúng ta có thể cài trên bất cứ tài khoản nào, bạn có thể cài đặt ngay trên tài khoản admin mà bạn đang dùng hiện tại.

Tạo cặp khóa SSH và xác định vị trí sẽ được lưu trữ : 

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Hệ thống sẽ tiến hành tạo và lưu cặp khóa SSH : 

Sử dụng lệnh cat để lưu public key vào authorized_keys trong thư mục của SSH:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Phân quyền cho người dùng với lệnh chmod :

chmod 0600 ~/.ssh/authorized_keys

Xác minh mọi thứ được thiết lập chính xác bằng cách ssh đến localhost: 

ssh localhost

Download và Cài đặt Hadoop trên Ubuntu

Tải về một phiên bản Hadoop trên trang phân phối chính thức của Hadoop tại : https://hadoop.apache.org/releases.html

Ấn vào phần binary trong Binary download

Bây giờ để file nén mà bạn vừa tải về vào bất kì chỗ nào và giải nén nó ra bằng lệnh : 

tar xvzf hadoop-3.2.2.tar.gz 

Cấu hình và triển khai Hadoop Single Node (Pseudo-Distributed Mode)

Để cấu hình Hadoop cho chế độ phân phối giả chúng ta sẽ chỉnh sửa các tập file cấu hình của Hadoop trong đường dẫn etc/hadoop và trong file cấu hình môi trường gồm các file sau : 

  • .bashrc
  • hadoop-env.sh
  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml

Cấu hình biến môi trường Hadoop ( file .bashrc)

Mở file của .bashrc của bạn bằng trình soạn thảo nano : 

sudo nano ~/.bashrc 

Xác định biến mỗi trường Hadoop bằng cách thêm các biến sau vào cuối file ( nhớ chỉnh sửa đường dẫn $HADOOP_HOME cho đúng với đường dẫn mà bạn đã đặt hadoop)

#Hadoop Related Options

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export HADOOP_HOME=/opt/myapp/hadoop-3.2.2

export HADOOP_INSTALL=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" 

Áp dụng các thay đổi trên bằng cách thực hiện lệnh sau : 

source ~/.bashrc 

 

Chỉnh sửa file hadoop-env.sh

Mở file hadoop-env.sh bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh 

Tìm tới vị trí như hình bên dưới, bỏ comment ( bỏ dấu #) phần JAVA_HOME và thêm vào đầy đủ đường dẫn Openjdk trên máy của bạn : 



Chỉnh sửa file core-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/tmpdata</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9001</value>
</property>
</configuration>

 

Chỉnh sửa file hdfs-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml 

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>dfs.data.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/dfsdata/namenode</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/opt/myapp/hadoop-3.2.2/dfsdata/datanode</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
</configuration>

 

Chỉnh sửa file mapred-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>

 

Chỉnh sửa file yarn-site.xml

Mở file core-site.xml bằng trình soạn thảo nano : 

sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml  

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau : 

<configuration>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>127.0.0.1</value>
</property>
<property>
  <name>yarn.acl.enable</name>
  <value>0</value>
</property>
<property>
  <name>yarn.nodemanager.env-whitelist</name>   
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>

 

Format HDFS namenode

Các bạn phải định dạng lại namenode trước khi bắt đầu các dịch vụ đầu tiên : 

hdfs namenode -format

 

Start Hadoop Cluster

Tại thư mục sbin, thực hiện các lệnh sau để chạy và khởi động Hadoop : 

./start-all.sh

Chạy lệnh jsp để kiểm tra các trình daemon đang chạy : 

jps

Nếu kết quả ra 6 trình daemon như sau thì bạn đã cấu hình đúng : 



Truy cập Hadoop UI từ trình duyệt 

Các bạn có thể kiểm tra Hadoop đã được cài đặt thành công hay chưa tại cổng mặc định của namenode là 9870 : 

localhost:9870



Kiểm tra datanode tại cổng mặc định 9864 : 

localhost:9864

Kiểm tra Yarn resource manager tại cổng 8088 : 

locahost:8088


Tham khảo : https://phoenixnap.com/

3/27/2021

Nhập môn phương pháp tối ưu | Tài liệu, đại cương


Môn này phải nói là cực kì trìu tượng luôn, cũng học lâu lắm rồi nên mình cũng không nhớ rõ lắm. Môn này là nhập môn nhưng kiến thức sẽ được dạy trong cuốn giáo trình tối ưu của cô Bạch Kim, dĩ nhiên là mình chỉ học một số chương trong cuốn này thôi vì nhập môn mà. Mình học thầy Tạ Anh Sơn thầy dạy trực tiếp trong cuốn giáo trình này luôn, bài tập và ví dụ cũng lấy từ đây ra. Môn này trước chỉ là môn tự chọn, sinh viên có thể học hoặc không nhưng từ K62 hay K63 trở đi gì gì đó đã là môn bắt buộc cho sinh viên Khoa học máy tính, còn kĩ thuật máy tính thì không học môn này nha và thay vào đó là môn Phương pháp tính. Vì môn học trìu tượng nên các bạn cố gắng để ý và học từ đầu nha không là mất gốc thì khó lấy lại gốc lắm.


Tuy nhiên mình thấy những lý thuyết tối ưu được học ở trong môn này sau này sẽ được nhắc lại và sử dụng khá nhiều ( hình như ở trong các lĩnh vực như là học sâu, tối ưu,...).

Mình có một số tài liệu và đề thi môn này chia sẻ tới mọi người do mình sưu tầm lại trong quá trình học

GIÁO TRÌNH TỐI ƯU - CÔ BẠCH KIM (về khoản giáo trình thì mình khuyên mọi người nên mua một cuốn để học cho dễ, các bạn có thể mua giáo trình phô-tô ở đằng sau thư viện giá cả khá là hợp lí) : PHẦN 1   PHẦN 2

ĐỀ CƯƠNG MÔN HỌC TẢI VỀ ĐỀ CƯƠNG

ĐỀ THI THAM KHẢO ĐỀ THI GIỮA KÌ 20183 | ĐỀ THI CUỐI KÌ 20181

3/20/2021

Tải và cài đặt phần mềm mô phỏng mạng Packet Tracer cho Ubuntu | Share


Tại môn mạng máy tính các bạn sẽ phải thực hành với phần mềm Cisco Packet Tracer trong bài thực hành số 2 và 3. Trong đó bài thực hành số 3 có thể được coi là bài thực hành khó nhất trong 5 bài thực hành mạng máy tính. Việc cài đặt Packet Tracer trên Windows thì khá dễ dàng, nên mình sẽ hướng dẫn các bạn tải và cài đặt Packet Tracer trên Ubuntu.

Các bạn lên tạo một cho mình một tài khoản netacad.com trước, vì Cisco cho phép sử dụng tài khoản khách nhưng chỉ được 3 lần trong vòng 24h thế nên nếu bạn là những người thực hành kíp sau chắc chắn bạn sẽ không sử dụng được tài khoản khách để đăng nhập và làm bài thực hành, mà việc tạo tài khoản netacad cũng khá là vất vả nên nếu có thời gian mình khuyên các bạn nên tạo trước ( để tới lúc thực hành thì mà hết lượt sử dụng tài khoản khách thì các bạn vẫn sẽ được các anh trợ giảng nhắc tạo tài khoản thôi, nên việc tạo trước sẽ giúp tiết kiệm thời gian hơn cho mọi người).

Mọi người tải về Packet Tracer theo video sau nha : 


(Link tải mình để dưới phần mô tả video nha, các bạn cho mình 1 subscribe và 1 like để ủng hộ mình nha)

Xem thêm : Mạng máy tính | Tài liệu, cơ sở ngành CNTT

3/19/2021

Nhập môn an toàn thông tin | Tài liệu, cơ sở ngành CNTT


Môn này cũng khá là thú vị, các bạn được học về bảo mật, các cơ chế bảo mật, các cơ chế tấn công ( nhưng cũng chỉ qua qua thôi). Các cách mã hóa dữ liệu, bảo vệ dữ liệu, tránh khỏi bị tấn công. Nói chung là rất hay mà mình nghĩ ai học CNTT cũng nên biết. Mình có thể học theo chuyên ngành không liên quan về bảo mật nhưng nhìn chung với sinh viên CNTT thì mỗi lĩnh vực ít nhất ta nên hiểu biết về nó chút ít chứ không thể mù tịt không biết gì được.

Môn này tại Bách Khoa thì có thầy Linh Giang là có bài tập lớn làm theo nhóm còn đa số các thầy khác đều không có bài tập lớn mà thay và đó là bài tập về nhà. Học thầy Giang thì khá là nhàm chán, mình cũng nghe nói là điểm thì thầy cho cũng cao (tuy nhiên cũng phải xem xét lại mấy cái nghe nói này chứ mình học thầy thầy thầy cho điểm cũng không được cao lắm, tuy nhiên chắc chắn không trượt, trừ khi bạn không muốn qua môn thôi), mọi người thì thường né thầy Tùng môn này vì tỉ lệ trượt môn này của sinh viên học thầy Tùng khá cao, nhưng mình thấy thầy Tùng dạy khá kĩ. Các bạn cũng có thể học thầy Trần Vĩnh Đức, mình từng học thầy toán rời rạc, thầy dạy rất hay và vui tính, mình nghe bạn mình review thì thầy dạy nhập môn an toàn thông tin cũng rất là hay. À môn này còn có thầy Nguyễn Khanh Văn dạy nữa, thầy là tác giả của quyển giáo trình cơ sở an toàn thông tin mà mình chia sẻ dưới đây.

Cuối cùng, như mọi bài viết khác mình có một ít tài liệu về môn học muốn chia sẻ với mọi người :

SLIDE BÀI GIẢNG : 

ĐỀ THI : 

  • Đề thi tự luận cuối kì 20201 lớp thầy Nguyễn Linh Giang ( đề thi do mình nhớ và ghi lại) : TẢI VỀ ĐỀ THI

  • 2 đề thi trắc nghiệm tham khảo của một số năm về trước ( hình như là 2018, 2019 gì đó mình không nhớ rõ) : TEST1   TEST2

SÁCH & TÀI LIỆU THAM KHẢO THÊM : 

3/18/2021

Cài đặt và cấu hình môi trường lập trình PHP trên Ubuntu | Share


PHP (viết tắt hồi quy của Hypertext Preprocessor) là ngôn ngữ lập trình web phía server. PHP được nhúng trực tiêp vào mã HTML với đuôi .php sau khi qua máy chủ sẽ biên dịch ra mã HTML và trả về phía client.

PHP là ngôn ngữ lập trình phổ biến được rất nhiều Developer theo đuổi. Cơ hội việc làm dành cho những ai biết ngôn ngữ PHP vô cùng rộng mở. Bạn có thể trở thành một Web Developer hoặc Full-Stack Developer nếu làm chủ ngôn ngữ này.

Bài viết này mình sẽ hướng dẫn các bạn cấu hình và cài đặt máy chủ apache2 là máy chủ phổ biến cho PHP (bài viết này mình hướng dẫn các bạn cài đặt apache2 trên Ubuntu nha).

Đầu tiên các bạn cài đặt môi trường lập trình PHP : 

sudo apt-get install php7.4

Tiếp theo, hãy tải về apache2 : 

sudo apt-get install libapache2-mod-php

Sau khi cài đặt thư mục root mặc định sẽ nằm ở /var/www/html. Các bạn có thể tạo các project PHP tại thư mục này, nhưng có vẻ khá là bất tiện. Để chuyển thư mục root theo ý mình các bạn thay đổi nội dung tại 2 file /etc/apache2/sites-available/000-default.conf và  /etc/apache2/apache2.conf 

Tại file đầu tiên, thay đổi đường dẫn chỗ DocumentRoot từ /var/www/html thành đường dẫn mà bạn mong muốn. ( như hình bên dưới)

Tại file thứ 2 tìm tới nơi như hình vẽ bên dưới mình chụp thay đổi đường dẫn thành đường dẫn mà bạn vừa thay đổi ở file bên trên : 


OK! Vậy là đã xong, bây giờ để kiểm tra xem đã cài đặt thành công chưa? bạn tạo 1 file tại thư mục gốc mới mà bạn vừa thay đổi, như của mình mình sẽ tạo 1 file info.php tại thư mục ~/CodeFolder/php/ có nội dung như sau : 

<?php 
    phpinfo();

Mở trình duyệt lên và truy cập http://localhost/info.php, nếu website hiện lên như hình dưới là đã thành công : 



Các bạn có thể lựa chọn IDE Netbeans hoặc Eclipse ( thêm các plugin cần thiết) để bắt đầu tạo các project PHP. Nếu có vấn đề gì, hãy comment bên dưới mình sẽ giải đáp các thắc mắc của mọi người.

3/11/2021

Free hosting, domain trọn đời, phù hợp cho sinh viên | Share


Bạn cần 1 hosting cho quá trình học tập tuy nhiên lại không đủ kinh phí thì hãy sử dụng thử dịch vụ của 123host. Free hosting với dung lượng 200MB ( có thể lên tới 2GB).

Link đăng ký : https://123host.vn/hosting-mien-phi.html
( Các bạn vào link và làm theo hướng dẫn, chỉ vài cú click chuột thôi đã có 1 hosting free để sử dụng cho nhiều mục đích khác nhau rồi)

Trước khi sử dụng các gói dịch vụ free các bạn lên đọc kĩ các điều khoản của nhà cung cấp dịch vụ, vì chắc chắn là các gọi dịch vụ free sẽ bị giới hạn hoặc là có các điều khoản thêm nào đó so với các gói dịch vụ trả phí mà bạn phải đọc kĩ để tránh xảy ra một điều gì đó đáng tiếc sau này. Tại 123host thì mình đã đọc qua điều khoản, mọi điều khoản bình thường và không có gì bất lợi cho người dùng. Các bạn có thể đọc điều khoản tại đây : https://123host.vn/quy-dinh-su-dung-hosting-mien-phi.html 


Tiện thể mình chia sẻ tới các bạn trang web đăng kí tên miền free, các bạn có thể đăng kí 5 tên miền free có đuôi là .tk, .ml, .gq, .cf, .ga. Các tên miền đều khá là không đẹp tuy nhiên đồ free thì chỉ có như vậy thôi, các bạn có thể dùng cho mục đích học tập, kết hợp với 123host nữa là một sự kết hợp hoàn hảo. 

Link website đăng kí tên miền free : https://my.freenom.com/clientarea.php


Tuy nhiên, mình cũng lưu ý nữa là chỉ dùng mọi thứ với mục đích học tập hoặc nghịch, nếu bạn muốn làm blog hay phát triển một gì đó của riêng mình thì nên đầu tư sử dụng các dịch vụ có phí, vì các dịch vụ có phí sẽ có được hỗ trợ tốt từ các nhân viên, các ưu ái hơn so với dịch vụ free. Và còn một điều nữa là, theo mình biết trong điều khoản của freenom, các tên miền miễn phí mà các bạn đăng kí trên freenom là thuộc quyền sở hữu của freenom chứ không phải của các bạn, vì thế freenom có quyền thu hồi tên miền bất cứ lúc nào. Thường thì nó cũng chả thu hồi làm gì, nhưng bạn nghĩ xem tới một lúc nào đó mà website của bạn, tên miền của bạn có lượng truy cập hàng nghìn người trên ngày mà bị freenom thu hồi tên miền thì sẽ như nào. OK! Vậy chốt lại, các dịch vụ free hãy chỉ dừng lại ở mục đích nhỏ bé mà không đáng phải bỏ tiền ra để mua hay chưa có tiền ( như sinh viên chúng ta đây), chứ nếu đã làm cái gì to to thì hãy cố gắng đầu tư cái nào đó cho xịn xò 1 tí.

À quên là 123host hay freenom các bạn đều phải gia hạn để có thể sử dụng tiếp, mọi thứ gia hạn rất nhanh 1 cái click chuột là xong, mục đích của gia hạn chỉ là để khẳng định bạn vẫn đang sử dụng dịch vụ, còn nếu bạn không sử dụng thì tài nguyên sẽ được giải phóng để cung cấp cho người khác.