自学内容网 自学内容网

CentOS7下Hadoop集群分布式安装详细图文教程

1、集群规划

主机

角色

DSS20

NameNode    DataNode   ResourceManager  NodeManager

DSS21

SecondaryNameNode  NameNode           NodeManager

DSS22

DataNode          NodeManager

1.1、环境准备

1.1.1 关闭防火墙

#查看防火墙状态
firewall-cmd --state
#停止firewalld服务
systemctl stop firewalld.service  
#开机禁用firewalld服务
systemctl disable firewalld.service  

1.1.2、hadoop集群登录时免密登录注意点以及步骤

        在3台机子都要执行如下操作:

1、vim /etc/hosts编辑,在后面添加以下行。

vim /etc/hosts
#在后面添加以下行
DSS20 192.168.3.20
DSS21 192.168.3.21
DSS22 192.168.3.22

2、使用以下命令,分别更改3台机器的主机名,在3个节点分别执行如下操作:

#在DSS20节点执行
hostnamectl set-hostname DSS20
#在DSS21节点执行
hostnamectl set-hostname DSS21
#在DSS22节点执行
hostnamectl set-hostname DSS22

执行完成后,分别重启后生效。

3、修改ssh的配置文件、 3个节点都需要修改

vi /etc/ssh/sshd_config
##将如下代码注释掉
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

4、要使3个节点免密登陆,需先在本地机器使用ssh-keygen一个公私钥对,如下:

在3个节点分别执行:ssh-keygen -t rsa,以DSS20节点为例:

[root@dss20 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hklZKWkiaKI0nAIIOZ/SGC2xsC3TuHQyMavgag9PQ+E root@dss20
The key's randomart image is:
+---[RSA 2048]----+
|XB.    ...       |
|@%* . +o.        |
|&%+= oo.         |
|O+O .. o         |
|oo E  o S        |
|. .    .         |
|.o o             |
|. = .            |
|   o             |
+----[SHA256]-----+
[root@dss20 .ssh]#cd /root/.ssh/
[root@dss20 .ssh]#cat id_rsa.pub > authorized_keys
[root@dss20 ~]#chmod 700 ~/.ssh
[root@dss20 ~]#chmod 600 ~/.ssh/authorized_keys

5、传送文件

在dss20、dss21、dss22分别执行一下操作:

scp /root/.ssh/authorized_keys dss20:/root/.ssh/
scp /root/.ssh/authorized_keys dss21:/root/.ssh/
scp /root/.ssh/authorized_keys dss22:/root/.ssh/

示例操作如下:

[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss21:/root/.ssh/
The authenticity of host 'dss21 (192.168.3.21)' can't be established.
ECDSA key fingerprint is SHA256:YITxRzRr8H26YCwhKfLh0kHTirDLdKr42yWl22r/l+Y.
ECDSA key fingerprint is MD5:e4:5e:d5:dc:03:55:05:ba:bc:00:5c:0b:da:d2:90:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dss21,192.168.3.21' (ECDSA) to the list of known hosts.
root@dss21's password: 
authorized_keys                                                                                                   100%  392    47.6KB/s   00:00    
[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss22:/root/.ssh/
The authenticity of host 'dss22 (192.168.3.22)' can't be established.
ECDSA key fingerprint is SHA256:YITxRzRr8H26YCwhKfLh0kHTirDLdKr42yWl22r/l+Y.
ECDSA key fingerprint is MD5:e4:5e:d5:dc:03:55:05:ba:bc:00:5c:0b:da:d2:90:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dss22,192.168.3.22' (ECDSA) to the list of known hosts.
root@dss22's password: 
authorized_keys                                                                                                   100%  392    40.4KB/s   00:00    
[root@dss20 .ssh]#
[root@dss20 ~]#  cd /root/.ssh
[root@dss20 .ssh]# ll
总用量 16
-rw-------. 1 root root 1176 1月  12 10:25 authorized_keys
-rw-------. 1 root root 1679 1月  11 22:55 id_rsa
-rw-r--r--. 1 root root  392 1月  11 22:55 id_rsa.pub
-rw-r--r--. 1 root root  540 1月  12 10:24 known_hosts
[root@dss20 .ssh]# cat known_hosts
dss21,192.168.3.21 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNdk8m/uErLF2rhHAs74bO7Q+3IydFc8JMYU/fRT1Ck5HxQspny9UrZ3b9GaOPXInBwwm1FeUE2+za43yRZaVjc=
dss22,192.168.3.22 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNdk8m/uErLF2rhHAs74bO7Q+3IydFc8JMYU/fRT1Ck5HxQspny9UrZ3b9GaOPXInBwwm1FeUE2+za43yRZaVjc=
dss20,192.168.3.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBrELKY7s7Hmg1OrV9OE5beTl/2JI6K/neXli2mknZfKiUmNSOh9L19ewgtmKqEVevR83QdK+ZRedrMFENRPThg=
[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss20:/root/.ssh/

6、首次执行需要输入密码

ssh dss21
ssh dss22
ssh dss20

第二次后就无需再输入密码,如下:

1.1.3、安装JDK

将JDK 1.8安装jdk-8u241-linux-x64.tar.gz上传到/opt/目录下,如下操作:

 cd /opt/
 tar zxvf jdk-8u241-linux-x64.tar.gz
 mv /opt/jdk1.8.0_241  /opt/jdk1.8

#复制jdk1.8目录到dss21、dss22
scp -r jdk1.8 root@dss21:$PWD
scp -r jdk1.8 root@dss22:$PWD

#分别在dss20、dss21、dss22配置环境变量
vim /etc/profile
#在最下方添加一下内容
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
#重新加载环境变量文件
source /etc/profile
#查看是否生效
java -version

1.2、hadoop安装

1.2.1、上传Hadoop安装包hadoop-2.7.2.tar.gz到dss20 /opt/server目录下,或下载

cd /opt/server/
#下载
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

   1.2.2、解压hadoop-2.7.2.tar.gz

 tar zxvf hadoop-2.7.2.tar.gz

     1.2.3、修改配置文件(配置文件路径 hadoop-2.7.2/etc/hadoop)

[root@dss20 server]# cd hadoop-2.7.2/etc/hadoop
[root@dss20 hadoop]# ll
总用量 152
-rw-r--r--. 1 10011 10011  4436 1月  26 2016 capacity-scheduler.xml
-rw-r--r--. 1 10011 10011  1335 1月  26 2016 configuration.xsl
-rw-r--r--. 1 10011 10011   318 1月  26 2016 container-executor.cfg
-rw-r--r--. 1 10011 10011   774 1月  26 2016 core-site.xml
-rw-r--r--. 1 10011 10011  3670 1月  26 2016 hadoop-env.cmd
-rw-r--r--. 1 10011 10011  4224 1月  26 2016 hadoop-env.sh
-rw-r--r--. 1 10011 10011  2598 1月  26 2016 hadoop-metrics2.properties
-rw-r--r--. 1 10011 10011  2490 1月  26 2016 hadoop-metrics.properties
-rw-r--r--. 1 10011 10011  9683 1月  26 2016 hadoop-policy.xml
-rw-r--r--. 1 10011 10011   775 1月  26 2016 hdfs-site.xml
-rw-r--r--. 1 10011 10011  1449 1月  26 2016 httpfs-env.sh
-rw-r--r--. 1 10011 10011  1657 1月  26 2016 httpfs-log4j.properties
-rw-r--r--. 1 10011 10011    21 1月  26 2016 httpfs-signature.secret
-rw-r--r--. 1 10011 10011   620 1月  26 2016 httpfs-site.xml
-rw-r--r--. 1 10011 10011  3518 1月  26 2016 kms-acls.xml
-rw-r--r--. 1 10011 10011  1527 1月  26 2016 kms-env.sh
-rw-r--r--. 1 10011 10011  1631 1月  26 2016 kms-log4j.properties
-rw-r--r--. 1 10011 10011  5511 1月  26 2016 kms-site.xml
-rw-r--r--. 1 10011 10011 11237 1月  26 2016 log4j.properties
-rw-r--r--. 1 10011 10011   951 1月  26 2016 mapred-env.cmd
-rw-r--r--. 1 10011 10011  1383 1月  26 2016 mapred-env.sh
-rw-r--r--. 1 10011 10011  4113 1月  26 2016 mapred-queues.xml.template
-rw-r--r--. 1 10011 10011   758 1月  26 2016 mapred-site.xml.template
-rw-r--r--. 1 10011 10011    10 1月  26 2016 slaves
-rw-r--r--. 1 10011 10011  2316 1月  26 2016 ssl-client.xml.example
-rw-r--r--. 1 10011 10011  2268 1月  26 2016 ssl-server.xml.example
-rw-r--r--. 1 10011 10011  2250 1月  26 2016 yarn-env.cmd
-rw-r--r--. 1 10011 10011  4567 1月  26 2016 yarn-env.sh
-rw-r--r--. 1 10011 10011   690 1月  26 2016 yarn-site.xml

1、hadoop-env.sh文件配置

vi hadoop-env.sh
#文件最后添加
export JAVA_HOME=/opt/jdk1.8

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 

2、core-site.xml文件配置

#设置Hadoop本地保存数据路径
mkdir -p /opt/server/data/hadoop-2.7.2

#设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统
 vi core-site.xml
 #把一下内容添加<configuration></configuration>内,如下:

<configuration>
<property>
   <name>fs.defaultFS</name>
   <value>hdfs://dss20:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/server/data/hadoop-2.7.2</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
   <name>hadoop.http.staticuser.user</name>
   <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
</property>

<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
</property>

<!-- 文件系统垃圾桶保存时间 -->
<property>
   <name>fs.trash.interval</name>
   <value>1440</value>
</property>
</configuration>

3、hdfs-site.xml文件配置

#设置SNN进程运行机器位置信息
vi hdfs-site.xml
<!-- 设置SNN进程运行机器位置信息 -->
<configuration>
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>dss21:9868</value>
</property>
</configuration>

4、mapred-site.xml文件配置

复制一份mapred-site.xml文件,如下:

cp mapred-site.xml.template mapred-site.xml
#设置MR程序默认运行模式: yarn集群模式 local本地模式 
vi mapred-site.xml
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<configuration>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>dss20:10020</value>
</property>

<!-- MR程序历史服务器web端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>dss20:19888</value>
</property>

<property>
 <name>yarn.app.mapreduce.am.env</name>
 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
 <name>mapreduce.map.env</name>
 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
 <name>mapreduce.reduce.env</name>
 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>

5、yarn-site.xml文件配置

#设置YARN集群主角色运行机器位置
vi yarn-site.xml
<!-- 设置YARN集群主角色运行机器位置 -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>dss20</value>
</property>

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>

<!-- 是否将对容器实施物理内存限制 -->
<property>
   <name>yarn.nodemanager.pmem-check-enabled</name>
   <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
   <name>yarn.log.server.url</name>
   <value>http://dss20:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7天 -->
<property>
 <name>yarn.log-aggregation.retain-seconds</name>
 <value>604800</value>
</property>
</configuration>

6、workers文件配置

vi workers
#此空白文件配置如下:
dss20
dss21
dss22

至此,hadoop配置基本完成,可以直接把配置好的安装包直接同步至另外2个节点,可以节省安装配置时间。

1.2.4、分发同步hadoop安装包

  cd /opt/server
  #分发同步安装包
  scp -r hadoop-2.7.2 root@dss212:$PWD
  scp -r hadoop-2.7.2 root@dss22:$PWD

同步分发的时间,请喝点茶等待,同步完成,如下图:

1.2.5、将hadoop添加到环境变量(3个节点)

vim /etc/profile
#在最下方添加一下内容
export HADOOP_HOME=/opt/server/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重新加载环境变量文件  
source /etc/profile

1.2.6、Hadoop集群启动

        首次启动,初始化namenode,在dss20主节点执行:

hdfs namenode -format

        启动hadoop

cd /opt/server/hadoop-2.7.2/sbin 
#目录下执行代码执行
start-all.sh

查看dss20节点状态,如下图:

查看dss21节点状态,如下图:

查看dss22节点状态,如下图:

1.2.7、查看hadoop UI管理界面

hadoop管理地址:http://192.168.3.20:8088


hdfs管理地址:http://192.168.3.20:50070

至此,安装完成!


原文地址:https://blog.csdn.net/qingzhumuqingfeng/article/details/145082460

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!