大数据集群安装(三)Hadoop Apache集群安装部署 详细 (包括环境准备和Zookeeper安装)

本次测试3台集群(node1(192.168.1.2),node2(192.168.1.4),node3(192.168.1.6)),所有的主服务都安装在node1节点,操作系统为CentOS7.6

1.环境准备

参考博客:https://blog.csdn.net/qq_35260875/article/details/111315110

2.安装Zookeeper

参考博客:https://blog.csdn.net/qq_35260875/article/details/111322620

3.下载Hadoop

(1)下载

下载地址:https://archive.apache.org/dist/hadoop/core/

选择需要的apache版本进行下载,本次测试使用3.1.4的版本

名字:hadoop-3.1.4.tar.gz

本次安装Hadoop是非高可用模式

(2)解压

将下载的压缩包通过FTP工具上传,放置于node1节点的/usr/local目录下 

mv hadoop-3.1.4.tar.gz /usr/local
cd /usr/local
tar -zxvf hadoop-3.1.4.tar.gz

(3)建立软链接,便于后期版本更换

ln -s hadoop-3.1.4 hadoop

(4)删除安装包

rm -rf hadoop-3.1.4.tar.gz

4.修改配置文件

在node1节点下修改

# 进入配置目录

cd /usr/local/hadoop/etc/hadoop

(1)修改hadoop-env.sh

在node1节点下修改hadoop-env.sh

# 修改JAVA_HOME为绝对路径,使用echo命令添加方便,hadoop3.1版本需要在启动文件声明用户名等信息,测试使用root用户,根据实际环境来选择用户

echo "export JAVA_HOME=/usr/local/jdk" >> hadoop-env.sh
echo "export HDFS_NAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_DATANODE_USER=root" >> hadoop-env.sh

(2)修改yarn-env.sh

在node1节点下修改yarn-env.sh

# 设置用户

echo "export YARN_REGISTRYDNS_SECURE_USER=root" >> yarn-env.sh
echo "export YARN_RESOURCEMANAGER_USER=root" >> yarn-env.sh
echo "export YARN_NODEMANAGER_USER=root" >> yarn-env.sh

(3)修改core-site.xml

在node1节点下修改core-site.xml

vim core-site.xml

# 在<configuration>中添加如下配置

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name> 
    <value>/tmp/hadoop</value>
</property>

# 在node1节点上创建目录

mkdir /tmp/hadoop

(4)修改hdfs-site.xml

在node1节点下修改hdfs-site.xml

vim hdfs-site.xml

注意:datanode的目录为数据目录,根据服务器可用的磁盘来创建目录,有多少块磁盘,就创建多少个datanode目录,假设我们这边有5块数据盘。提升读写能力

且数据盘分别挂载在/data/data1,/data/data2,/data/data3,/data/data4,/data/data5目录下面。

使用lsblk查看磁盘挂载信息:

lsblk

以下是测试的磁盘信息:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdf 8:80 0 3.7T 0 disk 
└─sdf1 8:81 0 3.7T 0 part /data/data5
sdd 8:48 0 3.7T 0 disk 
└─sdd1 8:49 0 3.7T 0 part /data/data3
sdb 8:16 0 3.7T 0 disk 
└─sdb1 8:17 0 3.7T 0 part /data/data1
sde 8:64 0 3.7T 0 disk 
└─sde1 8:65 0 3.7T 0 part /data/data4
sdc 8:32 0 3.7T 0 disk 
└─sdc1 8:33 0 3.7T 0 part /data/data2

#这些数据目录需要提前在每个数据节点(node1,node2,node3)下创建

# 在<configuration>中添加如下配置

<property> 
    <name>dfs.replication</name> 
    <value>3</value> 
</property> 
<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/data/data1/hadoop/nn</value> 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
 <value>/data/data1/hadoop/dn,/data/data2/hadoop/dn,/data/data3/hadoop/dn,/data/data4/hadoop/dn,/data/data5/hadoop/dn</value> 
</property> 
<property> 
    <name>dfs.http.address</name> 
    <value>node1:50070</value> 
</property> 
<property> 
    <name>dfs.namenode.http-bind-host</name> 
    <value>0.0.0.0</value> 
</property>

(5)修改mapred-site.xml

在node1节点下修改mapred-site.xml

vim mapred-site.xml

# 在<configuration>中添加如下配置

<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
    <final>true</final> 
</property> 
<property> 
    <name>mapreduce.job.reduce.slowstart.completedmaps</name> 
    <value>0.88</value> 
</property> 
<property> 
    <name>mapreduce.application.classpath</name> 
    <value> 
    /usr/local/hadoop/etc/hadoop, 
    /usr/local/hadoop/share/hadoop/common/*, 
    /usr/local/hadoop/share/hadoop/common/lib/*, 
    /usr/local/hadoop/share/hadoop/hdfs/*, 
    /usr/local/hadoop/share/hadoop/hdfs/lib/*, 
    /usr/local/hadoop/share/hadoop/mapreduce/*, 
    /usr/local/hadoop/share/hadoop/mapreduce/lib/*, 
    /usr/local/hadoop/share/hadoop/yarn/*, 
    /usr/local/hadoop/share/hadoop/yarn/lib/* 
    </value> 
</property> 
<property> 
    <name>mapreduce.map.memory.mb</name> 
    <value>6144</value> 
</property> 
<property> 
    <name>mapreduce.reduce.memory.mb</name> 
    <value>6144</value> 
</property> 
<property> 
    <name>mapreduce.map.java.opts</name> 
    <value>-Xmx5530m</value> 
</property> 
<property> 
    <name>mapreduce.reduce.java.opts</name> 
    <value>-Xmx2765m</value> 
</property> 
<property> 
    <name>mapred.child.java.opts</name> 
    <value>-Xmx2048m -Xms2048m</value> 
</property> 
<property> 
    <name>mapred.reduce.parallel.copies</name> 
    <value>20</value> 
</property> 
<property> 
    <name>yarn.app.mapreduce.am.env</name> 
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> 
</property> 
<property> 
    <name>mapreduce.map.env</name> 
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> 
</property> 
<property> 
    <name>mapreduce.reduce.env</name> 
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> 
</property>

# 参数配置,以上的参数配置是根据自己环境来配置的。需要看服务器的内存,CPU核数这些。

参数推荐会在之后详细解释

以下两个参数影响MapReduce的任务,推荐设置384GB的内存,下面两个参数设置为11GB

mapreduce.map.memory.mb

mapreduce.reduce.memory.mb

(6)修改yarn-site.xml

在node1节点下修改yarn-site.xml

vim yarn-site.xml

# 在<configuration>中添加如下配置

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>node1:8088</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <final>true</final>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.bind-host</name>
    <value>0.0.0.0</value> 
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>204800</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name> 
    <value>204800</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name> 
    <value>1024</value>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name> 
    <value>48</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-vcores</name> 
    <value>48</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-vcores</name> 
    <value>1</value>
</property>
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <name>yarn.client.nodemanager-connect.max-wait-ms</name>
    <value>300000</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>
    /usr/local/hadoop/etc/hadoop,
    /usr/local/hadoop/share/hadoop/common/*,
    /usr/local/hadoop/share/hadoop/common/lib/*,
    /usr/local/hadoop/share/hadoop/hdfs/*,
    /usr/local/hadoop/share/hadoop/hdfs/lib/*,
    /usr/local/hadoop/share/hadoop/mapreduce/*,
    /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
    /usr/local/hadoop/share/hadoop/yarn/*,
    /usr/local/hadoop/share/hadoop/yarn/lib/*
    </value>
</property>

# 参数配置,以上的参数配置是根据自己环境来配置的。需要看服务器的内存,CPU核数这些。

# 重要yarn资源参数推荐设置
yarn.nodemanager.resource.memory-mb:单台服务器可用内存的80%
yarn.scheduler.maximum-allocation-mb:和yarn.nodemanager.resource.memory-mb一致
yarn.scheduler.minimum-allocation-mb:1024
yarn.nodemanager.resource.cpu-vcores:单台服务器可用CPU的80%
yarn.scheduler.maximum-allocation-vcores:和yarn.nodemanager.resource.cpu-vcores一致
yarn.scheduler.minimum-allocation-vcores:1

(7)修改slaves或者workers

确认hadoop版本,3.x以下的版本编辑slaves文件,3.x及以上的编辑workers文件

在node1节点下修改slaves或者workers

vim workers

# 添加所有datanode节点的主机名

node1
node2
node3

5.同步配置

(1)拷贝目录

在node1节点拷贝Hadoop目录到其他两个节点

scp -r /usr/local/hadoop-3.1.4 root@node2:/usr/local
scp -r /usr/local/hadoop-3.1.4 root@node3:/usr/local

(2)创建软链接

# 在node2节点下执行

cd /usr/local
ln -s hadoop-3.1.4 hadoop

# 在node3节点下执行

cd /usr/local
ln -s hadoop-3.1.4 hadoop

6.配置环境变量

在三个节点下执行以下命令

vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop 
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

# 环境变量生效

source /etc/profile

7.启动Hadoop

(1)启动ZK

需要先启动Zookeeper,在三个节点下执行以下命令

zkServer.sh start

(2)格式化HDFS

在node1节点下执行命令

hdfs namenode -format

(3)启动

在node1节点下执行命令

# 启动HDFS

cd /usr/local/hadoop/sbin
./start-dfs.sh

# 启动yarn

cd /usr/local/hadoop/sbin
./start-yarn.sh

(4)验证环境

在三个节点下执行命令

jps
node1结果:
NameNode
DataNode
ResourceManager
SecondaryNameNode
QuorumPeerMain
NodeManager

node2结果:
DataNode
QuorumPeerMain
NodeManager

猜你喜欢

转载自blog.csdn.net/qq_35260875/article/details/111615555