一、啟動namenode服務(wù)后甸各,web頁面依然無法訪問
1垛贤、啟動namenode服務(wù),
指令:start-all.sh
'''
[root@hadoop1 hadoop-3.2.1]# start-all.sh
Starting namenodes on [hadoop1]
Starting datanodes
Starting secondary namenodes [hadoop1]
Starting resourcemanager
Starting nodemanagers
ERROR: Refusing to run as root: roo account is not found. Aborting.
'''
2趣倾、查看namenode服務(wù)是否啟動聘惦,
'''
[root@hadoop1 hadoop-3.2.1]# jps
8130 Jps
7494 ResourceManager
6871 NameNode
7244 SecondaryNameNode
'''
3、查看后臺監(jiān)聽端口
'''
[root@hadoop1 hadoop-3.2.1]# netstat -nltp |grep 6871
tcp? ? ? ? 0? ? ? 0 192.168.43.250:9000? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? LISTEN? ? ? 6871/java? ? ? ? ?
tcp? ? ? ? 0? ? ? 0 0.0.0.0:9870? ? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? LISTEN? ? ? 6871/java? ?
'''
4儒恋、查看web是否可以訪問善绎,發(fā)現(xiàn)web頁面無法訪問
5、檢查防火墻設(shè)置诫尽,可以看到hadoop1服務(wù)器已經(jīng)禁用了除本機(jī)外的其他多有服務(wù)訪問禀酱,
[root@hadoop1 hadoop-3.2.1]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num? target? ? prot opt source? ? ? ? ? ? ? destination? ? ? ?
1? ? ACCEPT? ? all? --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ? state RELATED,ESTABLISHED
2? ? ACCEPT? ? icmp --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ?
3? ? ACCEPT? ? all? --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ?
4? ? ACCEPT? ? tcp? --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ? state NEW tcp dpt:22
5? ? REJECT? ? all? --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ? reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num? target? ? prot opt source? ? ? ? ? ? ? destination? ? ? ?
1? ? REJECT? ? all? --? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ? reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num? target? ? prot opt source? ? ? ? ? ? ? destination? ? ? ?
6、關(guān)閉防火墻牧嫉,并把防火墻設(shè)置為開啟不啟動
centos6:
? ? 關(guān)閉防火墻:service iptables stop
? ? 設(shè)置開啟不啟動防火墻:chkconfig iptables off
centos7:
? ? 關(guān)閉防火墻:systemctl stop firewalld.service
? ???設(shè)置開啟不啟動防火墻:systemctl disable firewalld.service
7剂跟、檢查web已經(jīng)可以正常顯示
8、如果上面的操作依然無法訪問的話酣藻,需要查看一下主機(jī)的hosts文件 是否有配置域名映射
二曹洽、開啟datanode指令時出現(xiàn)waring
[root@hadoop1 hadoop-3.2.1]# hadoop-daemon.sh start datanode
WARNING: Use of this script to start HDFS daemons is deprecated.
WARNING: Attempting to execute replacement "hdfs --daemon start" instead.
主要是2.7版本的hadoop已經(jīng)把hadoop命令改為hdfs命令了,所以嘗試使用
指令:hdfs --daemon start datanode
'''
[root@hadoop2 hadoop-3.2.1]# hdfs --daemon start datanode
[root@hadoop2 hadoop-3.2.1]# jps
4064 Jps
4033 DataNode
2922 ResourceManager
'''
三臊恋、使用root配置的hadoop并啟動會出現(xiàn)報(bào)錯
錯誤:
??????? Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
??????? Starting secondary namenodes [slave1]
??????? ERROR: Attempting to operate on hdfs secondarynamenode as root
??????? ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
原因分析:由于root沒有start-dfs.sh和 stop-dfs.sh腳本的執(zhí)行權(quán)限衣洁,在這兩個腳本的開頭加上如下參數(shù),給root賦予執(zhí)行權(quán)限即可:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs /* 后續(xù)版本這邊需要修改為 HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh抖仅,stop-yarn.sh頂部也需添加以下
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn??/* 后續(xù)版本這邊需要修改為?HDFS_DATANODE_SECURE_USER=hdfs
YARN_NODEMANAGER_USER=root
4坊夫、hdfs運(yùn)行指令時出現(xiàn)warn警告提示:
2019-11-13 00:07:58,517 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
該警告信息主要是由于是依賴庫的問題
我們對靜態(tài)庫查看下依賴:看下依賴是否都正常:
通過指令 ldd libhadoop.so.1.0.0
'''
./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
? ? ? ? linux-vdso.so.1 =>? (0x00007fff369ff000)
? ? ? ? libdl.so.2 => /lib64/libdl.so.2 (0x00007f3caa7ea000)
? ? ? ? libc.so.6 => /lib64/libc.so.6 (0x00007f3caa455000)
? ? ? ? /lib64/ld-linux-x86-64.so.2 (0x00007f3caac1b000)
'''
可以看到是glibc 版本的問題:
我們再確認(rèn)下:
GLIBC_2.14找不到,現(xiàn)在檢查系統(tǒng)的glibc庫,? ldd --version? 即可檢查撤卢。
輸入命令:
'''
ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2010 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.
'''
還可以直接確認(rèn)下glibc 目前支持的版本:
通過如下查詢方法:
'''
strings /lib64/libc.so.6|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
'''
可以看到目前只支持到 2.12?
解決辦法有兩個
1环凿、升級 glibc 庫
2、屏蔽hadoop提示這個告警
直接在log4j日志中去除告警信息放吩。在$HADOOP_HOME/etc/hadoop/log4j.properties文件中添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR