Xin chào mọi người, hôm nay mình sẽ chia sẻ một bài viết về ngôn ngữ Hive, đối với một số người chắc không phải là ngôn ngữ lập trình mới tuy nhiên đối với mình nó mới hoàn toàn =))). Vì vậy bài viết này mục đích để chia sẻ cũng như noted lại những kiến thức mình tự học được. Hive được dùng khá phổ biến khi bạn muốn học về Hadoop hay Spark nói riêng cũng như Bigdata nói chung.
Trong bài viết này mình sẽ hướng dẫn cài đặt Hive cũng như hướng dẫn sử dụng một số câu lệnh cmd để làm việc với ngôn ngữ này.
Install Hive
Để có thể cài đặt được Hive thì việc đầu tiên chúng ta cần làm là phải cài Hadoop trước nhé . Các bạn cài hadoop dựa theo link này nhé.. Nếu mọi người cài bị vướng mắc ở đâu có thể cmt ở dưới bài cho mình biết nhé.
OK! Bắt tay vào cài Hive thôi nào . Tham khảo tại đây
Download Hive
wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar xzf apache-hive-3.1.2-bin.tar.gz
Configure Hive environment
sudo nano .bashrc
export HIVE_HOME= “home/hdoop/apache-hive-3.1.2-bin”
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc
Edit file hive-config.sh
sudo nano $HIVE_HOME/bin/hive-config.sh
thêm dòng export HADOOP_HOME=/home/hdoop/hadoop-3.2.1
vào file hive-config.sh sau đó lưu lại
Tạo Directories trong HDFS
hdfs dfs -mkdir /tmp
hdfs dfs -chmod g+w /tmp
hdfs dfs -ls /
Hình 2: Tạo Directories tmp trong HDFS
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -ls /user/hive
Hình 3: tạo directories warehouse
Configure hive-site.xml file
cd $HIVE_HOME/conf
Mọi người tải và thêm file hive-site.xml này vào folder này nhé .
Khởi tạo cơ sở dữ liệu Derby
$HIVE_HOME/bin/schematool –initSchema –dbType derby
Hình4: Khởi tạo cơ sở dữ liệu Derby
Bao giờ kết quả ra như hình 4 là xong nhé.
Fix guava error
ls $HIVE_HOME/lib
ls $HADOOP_HOME/share/hadoop/hdfs/lib
rm $HIVE_HOME/lib/guava-19.0.jar
cp $HADOOP_HOME/share/hadoop/hdfs/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
$HIVE_HOME/bin/schematool –initSchema –dbType derby
cd $HIVE_HOME/bin
hive
Hình5: hive interface
Vậy là đã cài xong hive rồi nhé mọi người. Tiếp theo cùng bước sang phần câu lệnh cmd trong ngôn ngữ Hive này nhé. Khi mọi người cài mà gặp lỗi gì có thể chụp màn hình lại rồi cmt bên dưới nhé ^^.
Câu lệnh cmd HDFS
HDFS là viết tắt của Hadoop Distributed File System, là 1 hệ thống lưu trữ chính được dùng bởi Hadoop. Ban đầu mình cài xong Hive thì khá là hào hứng vậy là vào thử query hay là tạo database các kiểu. Tuy nhiên dữ liệu muốn sử dụng được thì phải đẩy vào local của hdfs, mình cảm thấy khá là phiền phức. Vậy là phải bắt tay vào học thêm mấy câu lệnh cmd của hdfs để phục vụ cho việc thêm dữ liệu, bla bla. Thực chất ban đầu học mình cũng tưởng nó cao siêu lắm, tuy nhiên sau khi học rồi mình cũng thấy nó kha khá giống với một số câu lệnh khi sử dụng với hệ điều hành Linux. Sau đây mình sẽ giới thiệu một số câu lệnh đơn giản và hay dùng nhất .
help
Nếu bạn muốn xem sự trợ giúp hoặc thông tin về common line trong HDFS bạn có thể sử dụng 2 lệnh sau
hdfs dfs -help
hdfs dfs -usage <utility_name>
mkdir
Tiếp tục tương tự như câu lệnh cmd trong Linux thì để tạo folder trong HDFS chúng ta sử dụng dòng cmd như dưới đây:
hdfs dfs -mkdir /newfolder
Ví dụ như khi bạn lo lắng rằng thư mục bạn vừa tạo đã tồn tại thì bạn có thể sử dụng thêm:
hdfs dfs -mkdir -p /newfolder
Với câu lệnh này thì bạn có thể tạo được thư mục ngay cả khi nó đã tồn tại rồi.
ls
Và sau đó sử dụng ls để check xem đã tạo xong thư mục chưa?
hdfs dfs -ls /
Hình 6: check xem đã tạo xong thư mục chưa
Như ở hình 6 thì có thể thấy rằng thư mực mới đã được tạo xong rồi . Còn khi muốn show ra hết các file hay thư mục con chứa trong hdfs thì bạn chỉ cần thêm -R như hình 7:
hdfs dfs -ls -R /
Hình 7: check tất cả các file trong hdfs
put
Sử dụng khi muốn copy một file từ local vào thư mục của hdfs. Ví dụ mình muốn copy một file test.txt vào, tuy nhiên sẽ tạo file test.txt ở bên ngoài local trc nhé
hdfs dfs -put ~/test.txt /newfolder/
Sau khi đã copy xong thì thử check xem file test.txt đã thật sự tông tại trong thư mục chưa. Hình8: check file test.txt
copyFromLocal
Cmd này tương tự như put ở bên trên.
hdfs dfs -copyFromLocal ~/test.txt /newfolder/
Sau khi thực hiện lệnh này xong kết qủa tương tự như hình 8
get
Ở trên chúng ta đã copy từ local vào hdfs thì với câu lệnh get chúng ta sẽ lấy được file từ hdfs về local.
hdfs dfs -get /newfolder/test.txt /copyfromhdfs/
Kết quả sẽ thu được như hình 9 dưới đây Hình 9: câu lệnh get
copyToLocal
Tương tự như ở trên chúng ta có copyFromLocal thì ở đây cũng có copyToLocal, câu lệnh này giống với get ở bên trên.
hdfs dfs -copyToLocal /newfolder/test.txt /copyfromhdfs/
Kết quả cũng sẽ thu được như hình 9
cat
Giống như trong cmd của linux cat ở hdfs cũng để show xem content ở trong file
hdfs dfs -cat /newfolder/test.txt
mv
mv dùng để chuyển file hoặc cả thư mục từ thư mục này sang thư mục khác. Như ở hình 10 dưới đây mình đã chuyển thư mục newfolder sang thư mục DR Hình 10: câu lệnh mv
cp
cp dùng để copy từ thư mục này sang thư mục khác ở trong hdfs
hdfs dfs -cp /DR/newfolder/test.txt /DR
Hình 11: câu lệnh cp
rm
rm để xóa file trong hdfs như hình 12 dưới đây.
hdfs dfs -rm /DR/test.txt
Hình 12: câu lệnh rm
Những câu lệnh trên đây là những câu lệnh cơ bản trong hdfs nó khá là giống với câu lệnh cmd trong linux . Nếu mọi người muốn tìm hiểu sâu hơn về HDFS thì tìm hiểu ở đây nhé. Còn nếu muốn tìm hiểu thêm nhiều câu lệnh cmd khác thì xem thêm ở đây.
Kết Luận
Như vậy ở trên mình đã hướng dẫn một số câu lệnh cmd cơ bản của hdfs để việc sử dụng ngôn ngữ Hive nói riêng cũng như Hadoop nói chung một cách đơn giản và dễ dàng hơn rồi. Cảm ơn mọi người đã đọc đến đây, và đừng quên Upvoted cho mình nhé. Hẹn gặp lại mọi người các bài tiếp theo của mình.
Reference
https://data-flair.training/blogs/top-hadoop-hdfs-commands-tutorial/
https://www.coursera.org/learn/big-data-essentials/lecture/xgbJQ/hdfs-client