一、伪分布式Hadoop的配置
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
1.修改core-site.xml文件
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
2.修改hdfs-site.xml文件
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
二、伪分布式Hadoop的启动
1.配置完成后,执行NameNode的格式化
cd /usr/local/hadoop ./bin/hdfs namenode -format #如果初始化成功,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错。
2.开启 NameNode 和 DataNode 守护进程
./sbin/start-dfs.sh
启动完成后,可以通过命令jps来判断是否成功启动,若成功启动,则会列出如下进程“NameNode”、“DataNode”和“SecondaryNameNode” ,如果没有NameNode或DataNode,那就是配置不成功,可以通过查看启动日志排查原因。
三、常见的问题及解决办法
1.DataNode没有启动
./sbin/stop-dfs.sh #关闭 rm -r ./tmp #删除tmp文件,注意这会删除HDFS中原有的数据,如果原有数据很重要,不要这样做 ./bin/hdfs namenode -format #重新格式化NameNode ./sbin/start-dfs.sh #重启
2. 删除tmp文件时,显示权限不足
将hadoop文件夹的权限授予hadoop用户。
sudo chown -R hadoop /usr/local/hadoop # 用户名为hadoop,我的hadoop所在的文件夹为/usr/local/hadoop
3.SecondaryNameNode没有启动
sbin/stop-dfs.sh #关闭进程,然后尝试重新启动
如果还不成功,查看第二名称节点日志文件hadoop-hadoop-secondarynamenode-pl-Lenovo-S40-70.log(将红色部分替换成你的主机名)
一般会出现端口占用的情况,需要找到被占用的端口ID,并将其杀死,然后再重启。
sudo lsof -i:端口 -P sudo kill -9 PID