之前的hadoop是以root用户部署的,使用root用户方便学习,可以减少很多权限方面的问题,但是实际工作中,不可能直接接触到root用户,所以还是要hadoop用户,部署一次。
1、创建hadoop用户,设置密码
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop

2、修改hadoop文件夹权限
将hadoop-2.8.1文件夹创建人,及群组全部改为hadoop:
chown -R hadoop:hadoop hadoop-2.8.1

3、输入jps查看服务,出现下图说明,服务已经启动

此时还是使用的root用户的ssh无密码登录,下篇我们换成hadoop用户的无密码登录,看一下区别
4、启动hdfs

观察:
namenode:localhost
datanode:localhost
secondary namenodes: 0.0.0.0
hdfs的进程有两个localhost,此时本机之外的服务器是无法访问的,作为分布式系统,这肯定不是我们想要的。
问题: 读写都是通过namenode来的,但是namenode:localhost
我们修改一下配置:
hadoop-2.8.1/etc/hadoop/core-site.xml原来是

我们现在修改为

datanode:
vi slaves

localhost修改为当前服务器ip
重新启动hdfs:

namenodes跟datanode已经变成服务器ip,但是secondarynamenode还是“0.0.0.0”;
打开hdfs-site.xml,添加两个属性

./stop-hdfs.xml 关闭hdfs
再次启动:./start-hdfs.xml再次启动

此时全部以hadoop000启动。
好了上面3个服务都已hadoop000启动了,那我们为什么一定要以hadoop000启动呢:
1.对外提供服务 和 集群配置
2.第一次启动之前我们是配置当前hadoop000的无密码信任
最后我们要知道怎样重新部署HDFS?
数据存储删除--》格式化--》启动
注意:部署中使用的ip必须为内网ip,不能用外网ip否则会出现如下错误:

但是,你又找不到端口被谁占用了。
网友评论