1. 启动zookeeper
没有问题
2. 上传hadoop安装包
解压,如图。
3. 节点功能分配
NameNode1 | NameNode2 | DataNode | Zookeeper | ZKFC | JournalNode | |
---|---|---|---|---|---|---|
Node1 | 是 | 是 | 是 | 是 | 是 | |
Node2 | 是 | 是 | 是 | 是 | 是 | |
Node3 | 是 | 是 | 是 |
4. 准备安装环境
```shell
[root@BaseNode opt]# ls
apache-tomcat-18080 hadoop-3.1.2 zook
apache-tomcat-8080 nginx zook
[root@BaseNode opt]# cd hadoop-3.1.2/etc/hadoop/
[root@BaseNode hadoop]#
5. 修改集群环境
[root@BaseNode hadoop]# vim hadoop-env.sh
由于通过SSH远程启动进程的时候默认不会加载/etc/profile设置,JAVA_HOME变量就加载不到,需要手动指定。在最后一行追加:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export export HDFS_SECONDARYNAMENODE_USER=root
6. 修改配置文件
vim /opt/hadoop-3.1.2/etc/hadoop/core-site.xml
追加到configuration标签中间
<configuration>
<!-- 指定访问HDFS的时候路径的默认前缀 / hdfs://node1:9000/ -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://zkbase:9000</value>
</property>
<!-- 指定hadoop的临时目录位置,它会给namenode、secondarynamenode以及datanode的存储目录指定前缀 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/bdp/hadoop/full</value>
</property>
</configuration>
[root@BaseNode hadoop]# vim hdfs-site.xml
<configuration>
<!--声明日志node-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>zknode1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>zknode1:50091</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>zknode1:50093</value>
</property>
<!--声明副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
[root@BaseNode hadoop]# vim workers
BaseNode
zknode1
zknode2
zkNode3
~
7. SCP Hadoop到其他三台主机
8. 修改四台主机的/etc/profile文件
export HADOOP_HOME=/opt//hadoop-3.1.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin/$PATH
source /etc/profile
9. 格式化namenode
在basenode上面,hdfs namenode -format
10. 启动下,start-dfs.sh,然后访问jps
啊偶,失败了
权限不足的原因,来,我们着手解决。
设置免密
ssh-copy-id -i ~/.ssh/id_rsa.pub <ip>
启动成功
大功告成!