hadoop数据仓库搭建--hadoop初始化及其运行
使用创建的grid用户进行hadoop安装文件的解压,并修改其对应的配置文件
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
- hadoop-env.sh
- yarn-env.sh
修改完毕后将该hadoop目录复制到其他三个从节点
- scp -r ./hadoop-3.1.0 从节点IP:/home/grid
接着以root用户分别在四台机器上的/etc/profile文件中添加以下环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_171 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_HOME=/home/grid/hadoop-3.1.0 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:$HADOOP_HOME/sbin:$HADOOP_HOME/lib export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
使环境变量生效
source /etc/profile
接着以grid用户在主节点机器上执行以下命令
#格式化HDFS hdfs namenode -format #若输出中出现name has beensuccessfully formatted.则初始化成功 #启动HDFS start-dfs.sh #启动YARN start-yarn.sh
输入JPS查看进程,有以下所以进程即为成功
21680 NodeManager 21539 ResourceManager 20883 NameNode 25623 Jps 21225 SecondaryNameNode 21023 DataNode
实践途中遇到两个问题:
1.start-dfs.sh的时候会出现如下警告
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
使用调试模式重新执行,可以看到详细报错信息为
DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path
参考ligt0610的帖子进行处理:https://blog.csdn.net/ligt0610/article/details/47757013
即在hadoop-env.sh里面添加如下:
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
重新执行start-dfs.sh。报警信息不显示。执行成功
2.通过web接口无法查看NameNode
经过查询发现,hadoop3版本已经将该端口由50070变成9870
从该端口进入。成功!
20190616
今天尝试的时候遇到新问题,现记录下来
本次执行到
#格式化HDFS
hdfs namenode -format
时,提示
sh: 5: hdfs: not found
怀疑是useradd的时候没有指定用户的shell类型,因此默认为/bin/sh。导致命令识别不出。
进行以下步骤:
1:查看当前用户的shell类型命令: echo $SHELL
2:改变当前用户登录默认的shell:chsh -s /bin/bash username 或者使用usermod -s /bin/bash username命令
默认的shell改成/bin/bash之后正常了。
---------------------
作者:随风诗雨
来源:CSDN
原文:https://blog.csdn.net/suifengshiyu/article/details/40952771
版权声明:本文为博主原创文章,转载请附上博文链接!
未解决,排除该原因
接下去怀疑是环境变量问题,环境参数没错,在root用户时已经执行过source,再在grid用户下执行,执行后如下
/home/grid/hadoop-2.7.2/bin/hdfs: line 304: /home/grid/jdk1.8.0_25/bin/java: cannot execute binary file
/home/grid/hadoop-2.7.2/bin/hdfs: line 304: /home/grid/jdk1.8.0_25/bin/java: Success
怀疑是jdk版本不对,32位的linux安装了64的jdk