这是第一大部分
Hadoop官方地址:http://hadoop.apache.org/
whj@whj:~$ vim /etc/profile
1 # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
2 # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
3 export JAVA_HOME=/home/whj/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
4 export HADOOP_HOME=~/hadoop-2.7.6
5 export HADOOP_INSTALL=$HADOOP_HOME
6 export HADOOP_MAPRED_HOME=$HADOOP_HOME
7 export HADOOP_COMMON_HOME=$HADOOP_HOME
8 export HADOOP_HDFS_HOME=$HADOOP_HOME
9 export YARN_HOME=$HADOOP_HOME
10 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
11 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
12 if [ "${PS1-}" ]; then
14 if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
15 # The file bash.bashrc already sets the default PS1.
16 # PS1='\h:\w\$ '
17 if [ -f /etc/bash.bashrc ]; then
18 . /etc/bash.bashrc
19 fi
20 else
21 if [ "`id -u`" -eq 0 ]; then
22 PS1='# '
3设置ssh免秘钥(一会写)
四安装hadoop
tar zxvf hadoop-2.7.6.tar.gz -C /home/whj
18
19
20
21
22 fs.defaultFS
23 hdfs://whj:9000
24
25
26 dfs.datanode.data.dir
27 /home/whj/hadoop-2.7.6/tmp/
28
29
30 hadoop.tmp.dir
31 /home/whj/hadoop-2.7.6/tmp
32
33
core-site.xml 33,1 底端
94 export HADOOP_PID_DIR=${HADOOP_PID_DIR}
95 export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
96
97 # A string representing this instance of hadoop. $USER by default.
98 export HADOOP_IDENT_STRING=$USER
99 export JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
100 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB _NATIVE_DIR"
hadoop-env.sh 100,1 底端
17
18
19
20
21 dfs.replication
22 1
23
24
25
26 dfs.namenode.secondary.http-address
27 whj:50090
28
29
1 whj@whj
19 export JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
两个之间加
1
2
3
4 mapreduce.framework.name
5 yarn
6
7
17 export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
18
19 # resolve links - $0 may be a softlink
20 export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
21
22 # some Java parameters
23 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
24 if [ "$JAVA_HOME" != "" ]; then
25 #echo "run java in $JAVA_HOME"
26 JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
20
21 yarn.nodemanager.aux-services
22 mapreduce_shuffle
23
24
25
26 yarn.resourcemanager.hostname
27 node22
28
29
30
(没动)
sudo vim /etc/profile
3 export JAVA_HOME=/home/whj/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
4 export HADOOP_HOME=~/hadoop-2.7.6
5 export HADOOP_INSTALL=$HADOOP_HOME
6 export HADOOP_MAPRED_HOME=$HADOOP_HOME
7 export HADOOP_COMMON_HOME=$HADOOP_HOME
8 export HADOOP_HDFS_HOME=$HADOOP_HOME
9 export YARN_HOME=$HADOOP_HOME
10 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
11 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
//进入hadoop安装目录
cd $HADOOP_HOME
//初始化namenode
hdfs namenode -format
//启动hdfs
sbin/start-dfs.sh
//启动yarn
sbin/start-yarn.sh
这是头部
37 export HADOOP_HOME=~/hadoop-2.7.6
38 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
这是尾部 解决后期报错
source /etc/profile
刷新变量
//进入hadoop安装目录
cd $HADOOP_HOME
//初始化namenode
hdfs namenode -format
//启动hdfs
sbin/start-dfs.sh
//启动yarn
sbin/start-yarn.sh
里面能sudo就sudo该yes就yes
这个界面就ojbk
出现很多比如ava.lang.IllegalArgumentException: URI has an authority component这样的一会再说解决办法,之前提到的警告就是这里会出现的,之前做好这边就没有了,因为原因什么格式,可以百度
netstat -ant | grep 50070 查看有没有这个进程
sudo ufw disable 关闭防火墙
sudo chmod 777 /etc/hosts 先修改一下host权限,因为你需要改一下
我的host
jps
9584 Jps
4182 DataNode
9129 NodeManager
8253 NameNode
出现这些就对了
w1
在执行name node格式化(hdfs namenode -format)的时候,出现了以下无法启动NameNode的错误,研究了很久,,终于知道原因是core-site的文件配置中 tmp 的目录路径写错了,没有tmp就在目录下创建,新版已经没有tmp了
w2
启动Hadoop报错:slave1: datanode running as process 2477. Stop it first.
解决方法:
进程已经在运行中了,在bin模流下执行 $./stop-all.sh
然后再执行 $./start-all.sh
w3
java.lang.IllegalArgumentException: URI has an authority component
at java.io.File.(File.java:423)at org.apache.hadoop.hdfs.server.namenode.NNStorage.getStorageDirectory(NNStorage.java:329)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:276)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:247)at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:985)at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429)at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
出现这个错误
仿照这个,是因为你的/
当然如果你是完全分布式一定要去掉file,伪分布式可以这样
还有最好使用绝对路径
w4
3.1安装后会一直提示错误“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ”
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
把相同配置添加到hadoop-env.sh文件末尾。
w5
hadoop Live Nodes :0
对于这些网上的说法已经很多了,主要包括:
1 关闭safemode模式,输入如下命令:
bin/hadoop dfsadmin -safemode leave
2 检查存储空间是否足够,输入如下命令:
df -hl
3 重新格式化hdfs,按照如下步骤
a) 删除master和所有slave上的 hadoop目录下的logs文件,并重新建立
b) 删除master和所有slave上的hdfs存储目录,即conf/core-site.xml配置文件中 hadoop.tmp.dir属性对应的value所指向的目录,并重新建立
4 检查防火墙是否关闭,输入下面命令查看状态:
service iptables status
输入下面命令关闭防火墙
service iptables stop
5 重新检查配置文件
不过上述方法都用过了,依然没有解决问题,下面一点是如何解决了该问题的操作。
检查每台机器上的/etc/hosts文件,将没有用或不清楚作何用的ip:name对删除,最后只留下了
[root@hadoop1 hadoop]# cat /etc/hosts
127.0.0.1 localhost
192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2
感悟:环境很好搭建,但是出错原因也会很多,希望大佬多提提建议