环境与配置
- ubuntu 20.04.6 /centos8
- hadoop 3.3.5
指令有部分不一样但是,配置是相同的
安装步骤
- 创建一个虚拟机,克隆三个虚拟机,master内存改大一点4G,salve内存1Gj
- 修改主机名和配置静态ip(管理员模式下))
`
hostnamectl set-hostname node1 # 修改主机名
sudo passwd root #设置root密码
sudo apt install -y ifupdown net-tools #安装网络服务
sudo apt-get install openssh-server -y # 安装ssh服务
init 6 # 重启
vi /etc/network/interfaces # 创建文件夹,填入下面的内容
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.139.130
netmask 255.255.255.0
gateway 192.168.139.2
dns-nameservers 223.5.5.5
dns-nameservers 8.8.8.8
systemctl restart networking(重启网络服务)
可参考链接: https://blog.csdn.net/alfiy/article/details/122279914
3. 修改windows的hosts和linux的host
vim /etc/hosts # 修改主机映射
4. 设置ssh免密登录,三台机器都要
ssh-keygen -t rsa -b 4096
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
如果报错 Permission denied (publickey,password)
参考: https://blog.csdn.net/weixin_41891385/article/details/118631106
每台机器创建hadoop用户
sudo useradd -r -m -s /bin/bash hadoop
sudo passwd hadoop
sudo vim /etc/sudoers
复制root那一行,把root改为hadoop
参考链接: https://www.cnblogs.com/geyouneihan/p/9839153.html
`
- 把hadoop包分别拉倒三个虚拟机中
`
mkdir -p /export/server
tar -zxvf jdk.tar.gz -C /export/server/
ln -s /export/server/jdk jdk
vim /etc/profile 添加下面内容
export JAVA_HOME=/export/server/jdk
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
source /etc/profile
先删除系统的java链接,然后在添加自己的软连接
rm -f /usr/bin/java
ln -s /export/server/jdk/bin/java /usr/bin/java
apt-get install lib32z1 # 解决报错问题
验证
java -version
javac -version
scp -r jdk/ node2:pwd
/ 远程复制到node2,首先先进入到jdk所在的文件夹
6. 关闭防火墙 sudo ufw disable 7.同步三台机器的时间
sudo apt install -y ntp
rm -f /etc/localtime ;sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
apt install ntpdate
ntpdate -u ntp.aliyun.com
sudo service ntp restart
8. 安装hadoop设置软连,修改hadoop文件夹下面的/etc/里面的文件
worker 文件添加
node1
node2
node3
vim hadoop-env.sh 添加
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR= H A D O O P H O M E / e t c / h a d o o p e x p o r t H A D O O P L O G D I R = HADOOP_HOME/etc/hadoop export HADOOP_LOG_DIR= HADOOPHOME/etc/hadoopexportHADOOPLOGDIR=HADOOP_HOME/logs
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export YARN_PROXYSERVER_USER=root
下面这些参数是ubuntu系统需要的
export HADOOP_COMMON_HOME= H A D O O P H O M E e x p o r t H A D O O P H D F S H O M E = HADOOP_HOME export HADOOP_HDFS_HOME= HADOOPHOMEexportHADOOPHDFSHOME=HADOOP_HOME
export HADOOP_YARN_HOME= H A D O O P H O M E e x p o r t H A D O O P M A P R E D H O M E = HADOOP_HOME export HADOOP_MAPRED_HOME= HADOOPHOMEexportHADOOPMAPREDHOME=HADOOP_HOME
core-site.xml 添加
fs.defaultFS
hdfs://node1:9001
hdfs-site.xml 添加
dfs.datanode.data.dir.perm
700
dfs.namenode.name.dir
/data/nn
dfs.namenode.hosts
node1,node2,node3
dfs.blocksize
268435456
dfs.namenode.handler.count
100
dfs.datanode.data.dir
/data/dn
dfs.namenode.datanode.registration.ip-hostname-check
false
dfs.replication
3
三台机器都创建datanode和namenode对应的文件夹
mkdir -p /data/nn;mkdir -p /data/dn
把node1的hadoop文件夹复制到node2,node3
scp -r hadoop-3.3.5/ node2:pwd
/
scp -r hadoop-3.3.5/ node3:pwd
/
复制完之后创建软连
ln -s /export/server/hadoop hadoop
三台机器都操作配置环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin::$HADOOP_HOME/sbin
source /etc/profile
为hadoop用户创建权限操作/data,/export
chown -R hadoop:hadoop /data; chown -R hadoop:hadoop /export
9.格式化hadoop
su hadoop
hadoop namenode -format
10.启动hadoop
start-dfs.sh
jps 查看启动状态
stop-dfs.sh
`
11. 如果三个节点总有一个datanode或者主节点的namenode启动失败
删除 data/dn;data/nn;hadoop/logs;hadoop/tmp里面的内容
hadoop namenode -format 最好执行一次,否则每次执行都要删除上面的内容