赞
踩
目录
1、平常看B站之类的教学视频配置环境都是在/etc/profile里面设置环境变量然后可以采用which hadoop查看应用安装目录和版本信息(hadoop version),为什么按照部署文档部署的配置环境变量在.bash_profile呢?而不是在/etc/profile呢?
2、切换用户组用户:由root用户切换e3base后,环境配置失效。
将.bash_profile配置的是root用户而不是用户组用户,导致不成功。
root用户拥有十分巨大的权限。在root用户的.bash_profile配置环境变量,实质上是等价于在/etc/profile里面配置变量的。
而一个用户对应有自己的.bash_profile配置文件。
实际生产中不会用root用户进行使用,而是用用户组用户进行操作——为了安全生产。
这就导致,用户组用户(比如说e3base)的.bash_profile在切换后是空的,需要重新配置。
PS:甚至对于个别root用户权限的文档后续还需要赋权。
解决
切换用户组用户,重新部署.bash_profile文件。以后均使用实际使用用户配置环境。
.bash_profile路径:/home/用户名/.bash_profile
cd
vi .bash_profile
PATH=$PATH:$HOME/bin
export E3_INFO_HOME=/e3base/e3-info
export IN_HOME=/e3base
export ZOO_HOME=$IN_HOME/zookeeper
export HADOOP_HOME=$IN_HOME/hadoop
export PATH=$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ZOO_HOME/bin:$PATH
之前用root用户创建/e3base目录导致用户组用户无权访问/e3base下的应用;
chown -R e3base:e3base_lxg /e3base/
/e3base目录由root创建,用户组用户没有操作权限。
chmod -R 777 /e3base
密钥文件authorized_keys依旧是权限不够
赋权前,默认Touch authorized_keys
赋权后:
chmod 600 authorized_keys
Mkdir创建logs目录的时候少打了s,导致目录错误。
修改root/e3base/e3-info/zookeeper/log 为logs
解析集群主机IP失败,未关联
hosts文件未将集群所有主机录进去解析,仅仅是将本机虚拟机录进去解析。
Hosts解析
在每个集群主机中补全配置主机名称和IP解析。
Hadoop内存问题
注意到前面文档:
vim /e3base/hadoop/etc/hadoop/hadoop-env.sh
注:配置文件中HADOOP_HEAPSIZE、HADOOP_NAMENODE_OPTS、HADOOP_DATANODE_OPTS参数中的JVM堆内存大小,如在测试环境,请注意修改这些参数中的-Xms -Xms -Xmn值符合当前主机环境,如堆内存值配置过大超过系统可用内存,会导致服务启动失败。
一般将上面出现的参数名字的参数全修改小,(200/300),默认参数未生产环境的参数,我们带不动。
/e3base/hadoop/sbin/start-dfs.sh
提示:
翻看e3-info日志文件:
使用root创建/var/run/hadoop-hdfs/目录
并通过chown给e3base用户和组赋权;sudo chmod -R 755 /var/run/hadoop-hdfs/
OR : chown -R e3base:e3base_lxg /var/run/hadoop-hdfs/
原本的部署文档是按照五台虚拟机进行部署的,即两台管理节点(namenode)主机,三台datanode数据节点主机。分别对应为:
管理节点:e3base01、e3base02;
数据节点:e3base03、e3base04、e3base05;
而我们部署用三台,两台复用管理和数据节点,一台单独数据节点。那么默认配置文档就出现了问题了——主机数量对不上。
hadoop核心配置文件:
vi hdfs-site.xml
说明:nn对应的是管理节点主机名称。
我们这儿复用,改为对应的管理节点主机(数量不多)名称:e3base03、e3base0。
原因:免去一个个配用户的操作。同时每台主机的用户组不互通【组里面的用户也不互通】
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export E3_INFO_HOME=/e3base/e3-info
export IN_HOME=/e3base
export ZOO_HOME=$IN_HOME/zookeeper
export HADOOP_HOME=$IN_HOME/hadoop
export PATH=$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ZOO_HOME/bin:$PATH
可能存在的三个原因
l /var/run/hadoop-hdfs文件未创建
l /var/run/hadoop-hdfs文件未赋权
l /var/run/hadoop-hdfs文件hadoop自动删除
1、查看日志文件寻找错误定位;
2、注意配置文件默认的数据路径是这个,要创建并赋权或者去该配配置文件也可以
\1. 切换root权限,初始化目录: mkdir /var/run/hadoop-hdfs
\2. 编辑 vi /usr/lib/tmpfiles.d/e3base.conf 写入:d /var/run/hadoop-hdfs 0755 e3base e3base - -
\3. 或者执行 : echo ‘d /var/run/hadoop-hdfs 0755 e3base e3base - -’ >/usr/lib/tmpfiles.d/e3base.conf
PS: 手动赋权:
Datanoded的/var/run/hadoop-hdfs关闭被删除
mkdir /var/run/hadoop-hdfs
[root@e3base03 e3base]# chown -R e3base:e3base_lxg /var/run/hadoop-hdfs
mkdir -p data3/hdfs
chown -R e3base:e3base_lxg /data1
datanode能起来,但是往往存活时间不长,自动被杀死。
1、清空Jn 和Nn文件,因为datanode和namenode的id配不上;
2、清空data1/2/3 hdfs目录下的数据文件;
3、然后重新初始化;
4、切记按照指定顺序初始化和启动服务进程。
l 初始化zkfc
l 启动journal node
l 初始化主namenode
l 启动namenode
l 启动zkfc
l 启动datanode
Block pool ID needed, but service not yet registered with NN, trace… …
主节点们之间,元素据未同步(其中一个跑不起的损坏),拷贝能跑的nn数据到不能跑的nn节点. scp -r nn e3base@192.168.106.128 /e3base/e3-info/hadoop/
ERROR namenode.FSImage: Error replaying edit log at offset 0. Expected transaction ID was 3
org.apache.hadoop.hdfs.server.namenode.RedundantEditLogInputStream$PrematureEOFException: got premature end-of-file at txid 0; expected file to go up to 3
hadoop namenode -recover
从报错来看,,是获取edit log日志出错。说白点,就是namenode元数据破坏了,需要修复。
解决:
(1)、在出错的机器执行如下命令,一路按c或者y
namenode clusterID 和datanode clusterID 不一致导致的差异:
两种解决方案:
1、将data1/2/3/hdfs/下面的文件全删除,重新初始化namenode;
2、修改至ID一致:
将hdfs/current/VERSION 文件中的 clusterID的值覆盖
/current/VERSION 文件中的 clusterID的=后面
也就是让name data两个的clusterID保持一致
3、启动顺序:journal node -> namenode->zkfc->最后datanode;
总体:
l 初始化zkfc
l 启动journal node
l 初始化主namenode
l 启动namenode
l 启动zkfc
l 启动datanode
Error replaying edit log namenode
元数据损坏
删除e3base03下的current里面的所有数据再拷贝过去
scp * e3base03:/e3base/e3-info/hadoop/nn/current/
问题一解决后datanode起不来。
nomenodeid改变。
将/data1/2/2下面的Version文件里面的namenodeID替换统一
datanode找data/1/2/3
Namenode 找nn
ClusterID ->保持一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。