第一步:修改主机名,并且添加映射
hostnamectl set-hostname master-centos
vi /etc/hosts
第二步:安装SSH服务端(已安装则跳过)
yum install openssh-server
第三步:以root的身份创建Hadoop用户,并且为用户hadoop设置密码
adduser hadoop
passwd hadoop
第四步:修改sudoers文件权限,并且在sudoers文件中添加用户权限
chmod u+w /etc/sudoers
vi /etc/sudoers
hadoop ALL=NOPASSWD:ALL
第五步:进入hadoop用户验证设置是否成功,输出为root
su hadoop
sudo whoami
——————————————之前在root下完成————————————————
第六步:修改SSH配置文件添加以下内容,并且重启SSH服务
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
RSAAuthentication yes
PasswordAuthentication yes
sudo systemctl restart sshd.service
第七步:以hadoop用户身份生成密钥并且拷贝密钥到指定位置,最后进行免密登录
ssh-keygen -t rsa
ssh-copy-id hadoop@master-centos
ssh master-centos
或者:
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub hadoop@master-centos:/home/hadoop
修改.ssh目录权限和authorized_keys文件权限,并且进行免密登录测试
chmod 700 .ssh
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
ssh master-centos
———————————确保免密登录无误后再进行下面的内容——————————————
第八步:上传和解压缩jdk文件,并且修改归属权限和创建软连接
sudo tar -zxvf jdk-8u301-linux-x64.tar.gz -C/opt
sudo chown -R hadoop.hadoop /opt/jdk1.8.0_301/
sudo ln -s /opt/jdk1.8.0_301/ /usr/local/java
第九步:配置JDK和Hadoop环境变量,并且使配置文件生效
vi .bashrc
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bashrc
第十步:上传和解压缩hadoop文件,并且创建软连接
sudo tar -zxvf hadoop-3.3.1.tar.gz -C/opt
sudo ln -s /opt/hadoop-3.3.1/ /usr/local/hadoop
第十一步:配置Hadoop的hadoop-env.sh,core-site.xml,hdfs-site.xml文件
sudo vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export HDFS_NAMENODE_OPTS=" -Xms1024m -Xmx1024m -XX:+UseParallelGC"
export HDFS_DATANODE_OPTS=" -Xms1024m -Xmx1024m"
export HADOOP_LOG_DIR=/data/logs/hadoop
sudo vi $HADOOP_HOME/etc/hadoop/core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master-centos:8020</value>
</property>
sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/nn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/dn</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///data/hadoop/hdfs/tmp</value>
</property>
第十二步:创建存储文件夹和日志文件夹,并且修改归属权限
sudo mkdir -p /data/hadoop/hdfs/nn
sudo mkdir -p /data/hadoop/hdfs/dn
sudo mkdir -p /data/hadoop/hdfs/tmp
sudo mkdir -p /data/logs/hadoop
sudo chown -R hadoop.hadoop /data/hadoop
sudo chown -R hadoop.hadoop /data/logs/hadoop
第十三步:关闭防火墙服务和禁止开机启动
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
第十四步:格式化namenode,并且启动单机模式
hdfs namenode -format
start-dfs.sh
最后浏览器登陆查看是否配置成功
主机名:9870或http://本地IP地址:9870
集群搭建
在Hadoop环境的基础上
第一步:个节点主机名与IP映射
sudo hostnamectl set-hostname hadoop001
sudo vi /etc/hosts
第二步:各节点免密登录
ssh-keygen -t rsa (如果是克隆的需要删除原来的密钥 rm -rf .ssh/ )
ssh-copy-id hadoop@hadoop001
scp .ssh/authorized_keys hadoop@hadoop002:/home/hadoop/.ssh/ (分发到各个节点)
第三步:在其它节点修改Hadoop的 core-site.xml 文件,主机名称修改为当前主机名称
vi $HADOOP_HOME/etc/hadoop/core-site.xml
第四步:启动Hadoop确定单机可以正常启动
start-dfs.sh
第五步:将所有节点上的DataNode数据目录删除
rm -rf /data/hadoop/hdfs/dn/current
第六步:将DataNode节点上的NameNode的数据目录删除
rm -rf /data/hadoop/hdfs/nn/current
第七步:将NameNode节点上的hdfs-site.xml配置文件中的副本数修改为当前集群DataNode的个数,并分发到其他节点的相同目录下
scp $HADOOP_HOME/etc/hadoop/hdfs-site.xml hadoop@hadoop002:/usr/local/hadoop/etc/hadoop/hdfs-site.xml
第八步:在NameNode节点上的 /usr/local/hadoop/etc/hadoop 目录下编辑一个workers添加所有DataNode节点的主机名,并分发到其他节点的相同目录下
scp /usr/local/hadoop/etc/hadoop/workers hadoop@hadoop002:/usr/local/hadoop/etc/hadoop/workers
第九步:在NameNode节点上启动集群
start-all.sh