由于从事其他方向,很久没有玩过hadoop,今天心血来潮想安装hadoop试试手,看了下centos居然出了7.x版本,之前一直用的是6.4版本的,特下载下来安装一下。查看下hadoop版本,已经出了3.x版本,下载尝尝鲜。从此刻开始,坑来啦。
坑1:如果安装mini模式的centos你会发现没有ifconfig
对没错,就是没有,/sbin下也没有
解决办法:
yum install net-tools.x86_64
有些朋友这里安装不了,是因为联网不能!!
解决办法:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
大致路径是这里,编辑下网卡
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0261691c-f910-4b94-9c16-a44b64a2be8f
DEVICE=ens33
ONBOOT=yes 这里要改成yes
IPADDR=192.168.85.130
NETMASK=255.255.255.0
GATEWAY=192.168.85.2
DNS1=219.141.140.10
HWADDR=00:0c:29:35:4e:9b
onboot要改成yes,记得重启网卡,命令是这款
systemctl restart network.service
有些还会报错,可能你的虚拟机做的nat没法联网,这里就去查查nat怎样上网好了。
如果可以联网是这样的
坑2:网络通信有问题,那就关闭下防火墙吧
iptables也没有
解决办法:
换命令了。。
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 开机不启动防火墙
坑3:datanode启动不了,报错clusterid错位
解决办法:
我的路径已经改变了,正常应该再这个位置
cd /tmp/hadoop-hadoop/name/current/
查看version文件
记录clusterID号,如CID-79a2612a-ff0c-4aec-a5b6-cafe48d0652a
之后去
cd /tmp/hadoop-hadoop/data/current/
打开version
将clusterID变成之前记录的
再重启hdfs就好了
坑4:slaves文件没有!!
解决方法:
换成worker文件了!!!
坑5:mapreduce执行到0%就不进行了
解决办法:
是因为mapreduce找不到对应的包
环境变量配置一下
JAVA_HOME=/home/hadoop/app/jdk1.8.0_191
HADOOP_HOME=/home/hadoop/app/hadoop-3.1.2
export HADOOP_MAPRED_HOME=$HADOOP_HOME
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_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
重点在这里,改一下mapred-site.xml,这里要添加一些东西才可以找到对应包
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>
${HADOOP_HOME}/etc/hadoop,
${HADOOP_HOME}/share/hadoop/common/*,
${HADOOP_HOME}/share/hadoop/common/lib/*,
${HADOOP_HOME}/share/hadoop/hdfs/*,
${HADOOP_HOME}/share/hadoop/hdfs/lib/*,
${HADOOP_HOME}/share/hadoop/mapreduce/*,
${HADOOP_HOME}/share/hadoop/mapreduce/lib/*,
${HADOOP_HOME}/share/hadoop/yarn/*,
${HADOOP_HOME}/share/hadoop/yarn/lib/*
</value>
</property>
</property>