01 ssh免密安装
02 jdk安装
03 hadoop伪分布式安装
前面把伪分布式安装已经做了,今天来讲全分布式的安装。之前是把所有的namenode节点和datanode节点都放到了一台服务器上。今天我们需要把每个节点分开放置。
准备
node01(192.168.146.101):主namenode节点
node02(192.168.146.102):从namenode节点,数据节点
node03(192.168.146.103):数据节点
node04(192.168.146.104):数据节点
hadoop配置文件
指定进程对应的角色,这个和伪分布式安装一致。
cd /usr/hadoop-3.1.2/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk-12.0.1
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
core-site.xml 文件修改,这个是主节点的配置,需要指定主namenode节点的访问端口和临时文件的位置。在做hdfs初始化的时候会格式化这个文件。
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9820</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/full</value>
</property>
</configuration>
hdfs-site.xml文件修改,把数据节点的个数定义为2.把secondarynamenode节点定义到node02上面。
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:9868</value>
</property>
</configuration>
copy hadoop文件到每个服务器上面,我安装的hadoop文件放在 /usr/hadoop-3.1.2 下面。各位根据自己的目录调整。
cd /usr/hadoop-3.1.2
scp -r hadoop-3.1.2/ node01:/usr/hadoop-3.1.2/
scp -r hadoop-3.1.2/ node02:/usr/hadoop-3.1.2/
scp -r hadoop-3.1.2/ node03:/usr/hadoop-3.1.2/
scp -r hadoop-3.1.2/ node04:/usr/hadoop-3.1.2/
启动hadoop
由于启动命令需要到hadoop目录下的bin和sbin目录中执行。为了方便我们在环境变量中添加这两个目录。
vi /etc/profile
export JAVA_HOME=/usr/java/jdk-12.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:/$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/hadoop-3.1.2
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
分发到其他三台服务器上
scp /etc/profile node02:/etc/
scp /etc/profile node03:/etc/
scp /etc/profile node04:/etc/
在每个服务器重读一下这些文件
source /etc/profile
在四个服务器上进行格式化namenode,并且启动hadoop服务。
hdfs namenode -format
start-dfs.sh
输入http://192.168.146.101:9870,进入控制台
可以看到有三个数据节点
具体看看是哪三个节点?
分别是我们定义的node02,node03,node04
再来看看每个服务器上面运行的情况
jps
到此全分布式就配置完成了。
强力推荐阅读文章