前提:准备3台linux服务器,并保证其网络可进行相互通信
假设三台机器IP分别为:
192.168.88.101
192.168.88.102
192.168.88.103
一.配置三台服务器之间SSH免密登录,关闭防火墙,时间同步
三台服务器均执行以下1,2,3,4,5,6,8命令
1.创建用户test 密码test(安全起见,建议不适用root用户免密登录)
adduser test
passwd test
2.切换test用户
su test
3.编辑主机名 – 分别设置对应的主机名例如:node1,node2,node3
vi /etc/hostname
4.配置主机及域名对应关系
vi /etc/hosts
IP 主机名
例如:
192.168.88.101 node1
192.168.88.102 node2
192.168.88.103 node3
- 执行以下命令,然后连续点三下回车生成SSH密匙对,创建公钥和私钥。
ssh-keygen -t rsa -b 4096
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
6.关闭防火墙
查看防火墙状态,如果为启动running,则进行关闭
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld //关闭开机自启动
7.这时,就可使用test用户进行三台机器免密登录了
例如:192.168.88.101 这台机器执行
ssh node2
就可登录成功,无需输入密码。
8.修改时区并配置自动时间同步
yum install -y ntp // 安装ntp软件
rm -f /etc/localtime;sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时区
ntpdate -u ntp.aliyun.com //同步时间
systemctl start ntpd //启动ntp自动同步服务
systemctl enable ntpd //设置开启自启动
二.安装JDK
1.执行以下命令,下载JDK1.8安装包。
wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
2.执行以下命令,解压下载的JDK1.8安装包。
tar -zxvf jdk-8u151-linux-x64.tar.gz
3.移动并重命名JDK包。
mv jdk1.8.0_151/ /usr/java8
4.配置Java环境变量。
echo 'export JAVA_HOME=/usr/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
5.查看Java是否成功安装。
java -version
三.安装Hadoop
注:下载Hadoop安装包可以选择华为源(速度中等,可以接受,重点是版本全)、清华源(3.0.0以上版本下载速度太慢,版本也少)、北京外国语大学源(下载速度特快,但是版本比较少)——本人亲测
- 执行以下命令,下载Hadoop安装包。
wget --no-check-certificate https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
- 执行以下命令,解压Hadoop安装包至/opt/hadoop。
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/
mv /opt/hadoop-3.1.3 /opt/hadoop
- 执行以下命令,配置Hadoop环境变量。
echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile
- 执行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh。
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh
- 执行以下命令,测试Hadoop是否安装成功。
hadoop version
如果返回版本信息,则表示安装成功。
四.配置Hadoop
-
打开hadoop安装路径下的/etc/hadoop文件夹下相关配置文件
workers -- 配置从节点(DataNode)有哪些 hadoop-env.sh -- 配置hadoop的相关环境变量 core-site.xml -- hadoop核心配置文件 hdfs-site.xml -- HDFS核心配置文件
vim workers
vim hadoop-env.sh
- 修改Hadoop配置文件 core-site.xml。
vim /opt/hadoop/etc/hadoop/core-site.xml
在节点内插入如下内容。
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
1.fs.defaultFS -- HDFS文件系统的网络通信路径
2.hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)
3.表明Datanode将和node1的8020端口通讯,node1是namenode所在机器
4.此配置固定了node1必须启动namenode进程
- 修改Hadoop配置文件 hdfs-site.xml。
a. 执行以下命令开始进入编辑页面。
vim /opt/hadoop/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>dfs.blocks</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.hadler.count</name>
<value>100</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dn</value>
</property>
vi /etc/profile
然后向里面加入如下的内容
export HDFS_NAMENODE_USER=test
export HDFS_DATANODE_USER=test
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=test
输入如下命令使改动生效
source /etc/profile
五:启动Hadoop
- 执行以下命令,初始化hadoop – namenode 。
hadoop namenode -format
- 依次执行以下命令,启动Hadoop集群。
start-dfs.sh
关闭集群
stop-dfs.sh
- 启动成功后,执行以下命令,查看已成功启动的进程。
jps
node1:
node2:
node3:
4.WEBUI查看hdfs文件系统的管理网页
http://node1:9870