在执行hdfs命令的时候,会提示这个错误。
原因分析:看了网上的好多博客,都说是:
这个警告是说,Hadoop 没有成功加载你电脑的本地库,所以使用了内置的 Java 类库。
本地库的作用:提升一些操作的性能(Java 不够快),并且弥补 Java 类库的不足,Hadoop 为某些组件提供了自己的本地实现,保存在一个独立的动态链接的库里,在 类 Uinux 平台上名为 libhadoop.so
解决方案:
#先执行 export HADOOP_ROOT_LOGGER=DEBUG,console #在执行报警告的语句(可能不一样) hdfs dfs -mkdir /test2
将错误信息取出,查找一下
查看自己有没有 :
strings libc.so.6|grep GLIBC_*
查看:
CentOS安装glibc-2.14
安装了之后在root用户,可能在别的目录下执行
strings libc.so.6|grep GLIBC_*
会报错。但是不影响结果;
后来用xshell重新连接虚拟机。会提示:
[c:~]$ -bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8) -bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF- -bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF -bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF- -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): [root@hadoop01 ~]# su hadoop
修改配置
知道问题后,修改起来就简单了,centos下面全局语系的配置放在/etc/sysconfig/i18n文件,修改
$ vim /etc/sysconfig/i18n
增加
LC_CTYPE="en_US.UTF-8"
重新登录系统,问题就解决了
查询:
centos登录时LC_CTYPE cannot change locale utf8



