节点分布
NN | SNN | DN | |
---|---|---|---|
node1 | ✔️ | ||
node2 | ✔️ | ✔️ | |
node3 | ✔️ | ||
node4 | ✔️ |
准备工作
免密登陆
添加用户
最好三台用户名一样,方便免密登陆
useradd hdfs
passwd hdfs
更改hostname
sudo yum install vim
vim /etc/hostname
分别更改hostname
node1
node2
node3
hosts配置
vim /etc/hosts
10.211.55.3 node1
10.211.55.4 node2
10.211.55.5 node3
10.211.55.6 node4
重启
免密
只需要 node1 -> node1、node2、node3、node4
ssh-keygen
将公钥复制到其他主机
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
ssh-copy-id node4
时间同步
集群中所有机器安装ntp时间同步工具
yum -y install ntp ntpdate
node1时间同步服务器设置
1. 启动时间同步服务器
sudo systemctl start ntpd
sudo systemctl enable ntpd
centos 6
service ntpd start
chkconfig ntpd on
2. 修改/etc/ntp.conf文件,添加server设置127.127.1.0为其自身
sudo vim /etc/ntp.conf
3. 在public servers节下添加
server 127.127.1.0 #设置自己作为时间同步服务器
4. 在access节下新增加一个restrict段为可以接受服务的网段,本例为10.211.55.3
restrict 10.211.55.3
5. 保存退出,并重启ntp系统服务
sudo systemctl restart ntpd
centos 6
service ntpd restart
ntp同步客户端设置(node2 node3 node4)
sudo vim /etc/ntp.conf
1. 在server下面添加一个时间同步服务器地址
server node1
2. 在 node2 3 4 中同步时间
sudo ntpdate node1
3. 所有节点设置ntp服务开启启动
sudo systemctl start ntpd
sudo systemctl enable ntpd
centos 6
service ntpd start
chkconfig ntpd on
4. 所有节点启动时间同步
sudo timedatectl set-ntp yes
基础环境
sudo yum install rsync
hadoop 2.10.1
下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
jdk1.8
https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
sudo mkdir /usr/local/java/
sudo tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/local/java/
sudo vim /etc/profile
# java
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
分发
scp -r /usr/local/java root@node2:/usr/local
scp -r /usr/local/java root@node3:/usr/local
scp -r /usr/local/java root@node4:/usr/local
集群配置
Hadoop安装
解压
mkdir env
tar -zxvf hadoop-2.10.1.tar.gz -C env/
配置 etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
配置 etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
配置 etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdfs/env/hadoop-2.10.1/hadoopdata</value>
</property>
</configuration>
配置 etc/hadoop/hdfs-site.xml
副本数
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
</configuration>
配置 etc/hadoop/slaves
datanode 节点信息
node2
node3
node4
配置环境变量
vim /etc/profile
# hadoop
export HADOOP_HOME=/home/hdfs/env/hadoop-2.10.1
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
source /etc/profile
检查环境变量
hdfs
格式化文件系统
尽在系统第一次运行时执行
hdfs namenode -format
分发
(新建env文件夹)
分发hadoop
scp -r hadoop-2.10.1 node2:~/env/
scp -r hadoop-2.10.1 node3:~/env/
scp -r hadoop-2.10.1 node4:~/env/
切root分发环境变量 或者 手动修改
Hadoop启动
start-dfs.sh
Python安装
压缩包
tar -xvJf Python-3.7.8.tar.xz
# 编译安装
mkdir /usr/local/python3
cd Python-3.7.8
./configure --prefix=/usr/local/python3
make && make install