目录
1. 伪分布配置
实验条件:1台ubuntu服务器,jdk版本1.8.X,Hadoop 版本1.2.X
1.1 ssh localohost
如果不输入口令就无法用ssh登陆localhost,即ssh免密登陆,则执行下面的命令,产生公私钥对,
将私钥放入authorized_keys
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
坑1 ssh端口不对
ssh默认端口是22,但是服务器往往基于安全考虑会修改默认端口,这里要注意,如果修改了ssh端口,
则需要修改默认端口,或者再加一个ssh端口
ps:跟另一个服务器管理员互相该端口和配置文件
1.2 配置/cong/core-site.xml
-
设置hdfs的tmp目录,hadoop会默认把data和name目录放在tmp中
-
hdfs默认端口号地址,临时文件存放目录信息
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
1.3 配置/cong/hdfs-site.xml
设置hdfs的节点个数和信息,包括hdfs的节点路径、数据路径!
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
坑2 hdfs-site.xml中手动设置namenode和datanode的路径和文件
错误示范
如此设置后我碰到的错误是:hadoop namenode -format 无效,报错NameNode is not formatted.
启动hdfs后,namenode无法启动,因为我这个版本目前无需手动设置namenode和datanode路径。
1.4 /cong/mapred-site.xml
设置jobtracker的地址和端口号!
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
2. 验证伪分布式开发环境是否搭建成功
2.1 格式化hadoop的namenode
$HADOOP_HOME/bin/hadoop namenode -format
2.2 启动服务
$HADOOP_HOME//bin/start-all.sh
2.3 用 jps 命令看启动情况
2.3.1 如果NameNode和DataNode进程未启动
到hadoop的logs目录查看日志,查看未启动进程的相应日志,如hadoop-username-namenode-XXXXXXX.log,根据最近的未启动报错查找原因。
- 如果报错是NameNode is not formatted.,则尝试查看start-all.sh前是否执行了format ,如果没有,则先结束服务(见2.4),然后删除且重建$HADOOP_HOME/tmp,接着执行format,再启动服务(见2.2)试试。如果执行了format,则进入下一步。
- 如果出现1中的错误,且执行过format,则尝试查看cong文件中的hdfs-site.xml的配置是否合适,参考1.3中的坑2
- DataNode等的日志报错也是同样的处理思路。
2.4 结束服务
$HADOOP_HOME//bin/stop-all.sh
参考
带来帮助,同时也引入坑的参考:
https://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
https://blog.csdn.net/henni_719/article/details/77732815
https://www.cnblogs.com/hopelee/p/7049819.html