1.安装JDK
1.1.创建文件夹
mkdir /usr/local/java
1.2.进入文件夹
cd /usr/local/java
1.3.文件上传
文件jdk-8u351-linux-x64.tar.gz上传到/usr/local/java中
1.4.解压JDK
tar -zxvf jdk-8u351-linux-x64.tar.gz
1.5.配置环境变量
修改配置文件/etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
重新加载配置source /etc/profile
查看安装情况
2.关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁止防火墙开启自启
3.修改主机名称
查询主机名 hostname
修改主机名 hostnamectl set-hostname node01
reboot生效
4.设置/etc/hosts
修改文件 vi /etc/hosts
添加内容:
192.168.0.166 node01
192.168.0.167 node02
192.168.0.168 node03
测试一下,互相ping一下名字看是否能ping通
5.配置免密操作
5.1.生成公钥、私钥
ssh-keygen #4个回车 生成公钥、私钥
5.2.公钥信任确认
执行以下命令,添加新的公钥并进行信任确认:
ssh-keyscan -t rsa 主机名 >> ~/.ssh/known_hosts
其中,”主机名”指代你要连接的远程主机名或IP地址。
5.3.公钥拷贝
ssh-copy-id node01,ssh-copy-id node02,ssh-copy-id node03
5.4测试免密登录
6.集群时间同步
yum -y install ntpdate
ntpdate ntp4.aliyun.com
7.安装Hadoop
7.1.创建文件夹
mkdir /usr/local/src/software
mkdir /usr/local/src/server
7.2.下载解压Hadoop
进入文件夹 cd /usr/local/src/software
下载Hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
解压Hadoop tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/src/server
注:wget 未找到 输入以下命令:yum -y install wget
7.3配置环境变量
修改配置文件/etc/profile
export HADOOP_HOME=/usr/local/src/server/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
重新加载配置source /etc/profile
7.4.是否配置成功
命令:hadoop version
8.集群信息配置
创建文件夹:
mkdir /usr/local/src/server/hadoop
mkdir /usr/local/src/server/hadoop/tmp
mkdir /usr/local/src/server/hadoop/dfs
配置文件路径:/usr/local/src/server/hadoop-3.1.3/etc/hadoop
8.1.hadoop-env.sh
#配置JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
#设置用户以执行对应角色shell命令
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
8.2.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/server/hadoop/tmp</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
8.3.hdfs-site.xml
<configuration>
<!-- namenode存储hdfs名字的空间的元数据文件目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/server/hadoop/dfs/name</value>
</property>
<!-- datanode上的一个数据块的物理的存储位置文件 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/src/server/hadoop/dfs/data</value>
</property>
<!-- 指定HDFS保存数据副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置一个block的大小:128M-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!-- 设置HDFS的文件权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 指定DataNode的节点配置文件 -->
<property>
<name>dfs.hosts</name>
<value>/usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers</value>
</property>
</configuration>
8.4.mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 开启MapReduce小任务模式 -->
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<!-- 设置历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<!-- 设置网页访问历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
</configuration>
8.5. yarn-site.xml
<configuration>
<!-- yarn集群主角色RM运行机器。-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
</configuration>
8.6.workers
node01
node02
node03
8.7.同步Hadoop安装包
在node1机器上将Hadoop安装包scp同步到其他机器
scp -r hadoop-3.1.3 root@node02:/usr/local/src/server/
scp -r hadoop-3.1.3 root@node03:/usr/local/src/server/
9.启动Hadoop集群
9.1.格式化操作
命令:hdfs namenode -format
首次启动HDFS时,必须对其进行格式化操作。 format本质上是初始化工作,进行HDFS清理和准备工作。
注:如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,非第一次不用执行格式化 Namenode 操作。
9.2.启动集群
进入 /usr/local/src/server/hadoop-3.1.3/sbin目录下执行
./start-all.sh
9.3.JPS查看结果
9.4.Hadoop Web UI页面-HDFS集群
地址:http://namenode_host:9870
其中namenode_host是namenode运行所在机器的主机名或者ip
9.5.Hadoop Web UI页面-HDFS文件系统
9.6.Hadoop Web UI页面-YARN集群
地址:http://resourcemanager_host:8088
其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip