hadoop linux命令 linux hadoop配置
在这个地址去下载 hadoop(国内的速度快):http:///apache/hadoop/common/
下载好后,将安装包上传到服务器:linux上可通过rz命令进行上传,或者通过sftp上传
上传后解压缩: tar -zxvf hadoop-3.1.3.tar.gz
进行伪分布式/单机版配置:
这是我的 etc/profile文件里的配置,可以参考:
{ # set java_home enviroment export JAVA_HOME=/usr/java/jdk1.8.0_211 export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:/usr/local/bin/go export GOPATH=/root/go # hive export HIVE_HOME=/usr/hadoop/apache-hive-3.1.2-bin export PATH=$PATH:$HIVE_HOME/bin # hadoop export HADOOP_HOME=/usr/hadoop/hadoop-3.1.3 export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib # hbase export HBASE_HOME=/usr/hbase/hbase-2.2.3 export PATH="$HBASE_HOME/bin:$PATH" }执行下面命令让配置立刻生效,注意:中间有空格
source /etc/profile配置 $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration> <!--指定文件系统为HDFS及NameNode主节点运行的机器端口和ip地址--> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!--本地临时存储目录--> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-3.1.3/data/tmpData</value> </property> </configuration>
配置 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
配置 $HADOOP_HOME/etc/hadoop/,
配置 $HADOOP_HOME/etc/hadoop/,
配置 $HADOOP_HOME/etc/hadoop/: 均设置JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_231
配置公钥
启动hadoop
注意:有的人如果是直接复制粘贴进配置文件的,格式化时可能报 编码错误,删掉直接在配置文件里写就可以
#启动 sbin/启动时可能会报错:ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
按大括号里内容调整配置:
启动时可能会警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
按大括号里内容调整配置:
{
可能下面三种之一原因造成
原因一:是版本 默认 64位 而 系统是 32位,要自己验证一下
进入:/usr/local/hadoop-2.5.2/lib/native
用ldd命令查看依赖库:ldd .1.0.0
提示:.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
是64位,所以并不是版本的问题
原因二:是依赖库的问题
进入:/usr/local/hadoop-2.5.2/lib/native
用ldd命令查看依赖库:ldd .1.0.0
如果提示类似信息:./.1.0.0: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./.1.0.0)
可以看到依赖的都是/lib64/的动态库,所以不是64位/32位问题。但是看到报错,GLIBC_2.25找不到,现在检查系统的glibc库
输入命令:ldd --version
会输出如下信息:
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
统预装的glibc库是2.12版本,而hadoop期望是2.14版本,所以打印警告信息。
现在有两个办法,重新编译glibc.2.25版本,安装后专门给hadoop使用,这个至于怎么编译安装自己百度哈。
可以直接确认下glibc 目前支持的版本,如下查询方法:
输入命令:strings /lib64/libc.so.6|grep GLIBC
可以看到目前只支持到 2.25,但是提示一下,升级这个库是有风险的
第二个办法直接在log4j日志中去除告警信息。在//usr/hadoop/hadoop-3.1.3/etc/hadoop/log4j.properties文件中添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR原因三 :环境配置的问题:
在/etc/profile中,添加下面配置:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_HOME=/usr/hadoop/hadoop-3.1.3 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
最后记得使配置生效:source /etc/profile
并把相同配置添加到文件末尾。
}
先停了上次启动的进程: ./
再进行启动:sbin/
输入命令 : jps
可以看到如下提示:
可以看到namenode和datanode进程都已启动.至此,单机版hadoop已经安装并成功启动!