开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术:配置 HDFS-配置 lib-native 本地运行库】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/708/detail/12563
配置 HDFS-配置 lib-native 本地运行库
内容介绍:
一、上传安装包
二、创建文件夹
三、执行
使用 lib/native Hadoop 是 Java 语言开发,但有一些需求和操作不适合使 java,所以引入本地库(Native Libraries)的概念,本地库用 C 语言写,通过本地库,Hadoop 可以更加高效地执行某一些操作。
一.配置本地运行库,上传安装包提供的 rpm
hadoop-2.60+cdh5.14.4+2785-1cdh5.14.4p0.4.el6.x86_64.rpm
以 cdh0 作为示范,进入 cdh0 机器,root HDD 目录下上传安装包里的 hadoop-2.60+cdh5.14.4+2785-1cdh5.14.4+2785-1cdh5.14.4
p0.4.el6.x86_64.rpm
二.创建文件夹 unziprpm
将获得的 hadoop-2.60+cdh5.14.4+2785-1cdh5.14.4p0.4el6.x86_6
4.rpm 放到文件夹里,cd 解压很多东西与外面东西保持分开。
[root@cdh0 ~]# mkdir unziprpm
[root@cdh0~]#mv hadoop-2.6.0+cdh5.14.4+2785-1.cdh5.
.14.4.p0.4.el6.x86_64.rpm unziprpm/
[root@cdh0 ~]# cd unziprpm/
[root@cdh0 unziprpm]#11
total 78132
-rw-r--r-- 1 root root 80006400 Sep 21 14:20hadoop-2.6.0+cdh5.1
4.4+2785-1.cdh5.14.4.p0.4.e16.x86_64.rpm
三.执行
rpm2cpio hadoop-2.6.0+cdh5.14.4+2785-1.cdh5.14.p0.4.el6. x86_
_64.rpm | cpio -div 解压,回车
[root@cdh0 unziprpm]#rpm2cpio hadoop-2.6.0+cdh5.14.4+2785-
.cdh5.14. p0.4.el6.x86_64.rpm | cpio -div
本地 lib/native 可以通过手动编译源代码得到,很费时间。cdh 官方库提供的 rpm 有本地运行库,只要将版本找对,提取对应版本的 rpm 可以直接用。
进入解压后的路径 usr/lib/hadoop/lib/native
有软连接,保证软连接依然生效不能使用普通 cp 命令,使用 cp-d 保持软连接,*将所有内容复制到 bigdata/hadoop 目录下的 lib/native 文件夹。复制后 cd 到文件夹 lib/native,复制完成,软连接保持成功
[root@cdh0 native]#cp-d*/bigdata/hadoop-2.6.0-cdh5.1
14.4/lib/native/
[root@cdh0 native]#cd
[root@cdh0~]#cd/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native/
[root@cdh0 native]# 11
total 2136
-rw-r--r-- 1 root root 222058 Sep 27 19:53 libhadoop.a
-rw-r--r-- 1 root root 193092 Sep 27 19:53 libhadooppip
es.a
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libhadoop.so -> libhadoop
.so.1.0.e
-rwxr-xr-x1root root 139296 Sep 27 19:53 libhadoop.so.1.0.0
-rw-r--r-- 1 root root 58600 Sep 27 19:53 libhadooputils.a
-rw-r--r-- 1 root root 105924 Sep 27 19:53 libhdfs.a
-rw-r--r-- 1root root 1002500 Sep 27 19:53 libnativetask.a
lrwxrwxrwx 1 root root 22 Sep 27 19:53 libnativetask.so ->libnative
task.so.1.0.e
-rwxr-xr-x 1 root root 421912 Sep 27 19:53 libnativetask.so.1.0.0
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libsnappy.so ->libsnappy.s
o.1.1.3
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libsnappy.so.1 ->libsnappy
.so.1.1.3
-rwxr-xr-x 1 root root 23904 Sep 27 19:libsnappy.so.1.1.3
将内容同步到 cdh1、cdh2
使用 scp^C 不能保持软连接,需要打成 tar-zcvf native.tar.
gz*,将所有内容打到 tar。
[root@cdh0 native]#tar-zcvf native.tar.gz
scp native.tar.gz 放到 cdh1、cdh2 同样路径下。
[root@cdh0 native]# scp native.tar.gz cdh1:`pwd`/
native.tar.gz 100% 615KB 615.1KB/s 00:00
[root@cdh0 native]# scp native.tar.gz cdh2:`pwd`/
native.tar.gz 100% 615KB 615.1KB/s 00:00
复制完成后 native.tar 删除
回到 cdh1 机器到 bigdata/hadoop/lib/native 里,看到复制的 native,tar-zcvf native.tar.gz 解压,软连接保留
[root@cdh1~]#cd/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native/
[root@cdh1 native]#11 total 616
-rw-r--r--1root root 629814 Sep 27 19:54 native.tar.gz
[root@cdh1 native]# tar -zxvf native.tar.gz
-rw-r--r-- 1 root root 222058 Sep 27 19:53 libhadoop.a
-rw-r--r-- 1 root root 193092 Sep 27 19:53 libhadooppip es.a
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libhadoop.so ->libhadoop.
p.so.1.0.e
-rwxr-xr-x1root root 139296 Sep 27 19:53 libhadoop.so.1.
0.0
-rw-r--r-- 1 root root 58600 Sep 27 19:53 libhadooputils.a
-rw-r--r-- 1 root root 105924 Sep 27 19:53 libhdfs.a
-rw-r--r-- 1root root 1002500 Sep 27 19:53 libnativetask.a
lrwxrwxrwx 1 root root 22 Sep 27 19:53 libnativetask.so ->libnative
task.so.1.0.e
-rwxr-xr-x 1 root root 421912 Sep 27 19:53 libnativetask.so.1.0.0
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libsnappy.so ->libsnappy.s
o.1.1.3
lrwxrwxrwx 1 root root 18 Sep 27 19:53 libsnappy.so.1 ->libsnappy
so.1.1.3
-rwxr-xr-x 1 root root 23904 Sep 27 19:libsnappy.so.1.1.3
可删除压缩包
[root@cdh1 native]#rm native.tar.gz
rm: remove regular file `native.tar.gz'? y
cdh2 相同操作。
