栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据系列——Hadoop部署及应用

大数据系列——Hadoop部署及应用

Hadoop有三种部署方式,分别为单机模式、伪集群模式、集群模式。

其中单机模式比较简单,自行查找;伪集群模式和集群模式基本一样,区别就是前者都在一台电脑上,后者在不同的电脑上。

下面以生产环境一般用的集群方式部署为例说明,按最小要求3台节点来介绍集群部署方式。本样例是在3台虚拟机下部署的,每个节点安装Centos7核心版(不带GUI)

3台机器分别规划如下:

hdp1:10.10.10.110

hdp2:10.10.10.112

hdp3:10.10.10.113

下面从如下几个方面介绍下其部署及应用:

相关配置

安装

固定配置

分发程序

启动

查看状态

基本操作

相关配置

挂载windows目录、 IP配置、hosts名称配置、关闭防火墙、SSH配置, 需要3台电脑网络互通且能相互SSH登录,

具体操作参见:

Linux系列——挂载Windows虚拟文件夹到Linux系统

Linux系列——配置SSH免密登录

Linux系列——常规基础操作

安装

先在其中任意一台上面安装。

1、需要先搭建好Zookeeper集群

   具体参见:大数据系列——ZooKeeper部署及应用

2、下载hadoop,直接解压就可以用(注意不是源码包)。例如:hadoop-3.3.1.tar.gz

下载地址

https://archive.apache.org/dist/hadoop/common/

3、解压到目标目录

$ cp /mnt/hdfs/vf/hadoopSetup/hadoop-3.3.1.tar /usr/proc/hadoop 从挂载目录将安装文件拷贝到目标路径

$ cd /usr/proc/hadoop  这里切换到zk安装目录(每台机器都要新建该目录,配好一台后后面两台直接用scp命令分发,具体路径可以自定义,推荐放在/usr下)

$ tar -zxvf hadoop-3.3.1.tar (解压后记着删除压缩文件)

固定配置

分别修改下列配置文件:位于/usr/proc/hadoop/hadoop-3.3.1/etc下

1、hadoop-env.sh

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_JOURNALNODE_USER=root

export HDFS_ZKFCNODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

其中用户可以新建一个专有用户例如:hadoop, 本例统一管理都用root用户了。

2、core-site.xml

 

 

 fs.defaultFS

 hdfs://cluster007

 

 

 

 hadoop.tmp.dir

 /usr/proc/hadoop/tmpdata

 

 

 

 ha.zookeeper.quorum

 hdp1:2181,hdp2:2181,hdp3:2181

 

 

 

 ha.zookeeper.session-timeout.ms

 10000

 

3、hdfs-site.xml

 

 

 dfs.replication

 3

 

 

 

 dfs.namenode.name.dir

 /usr/proc/hadoop/namenode/data

 

 

 

 dfs.datanode.data.dir

 /usr/proc/hadoop/datanode/data

 

 

 

 dfs.nameservices

 cluster007

 

 

 

 dfs.ha.namenodes.cluster007

 nn1,nn2

 

 

 

 dfs.namenode.rpc-address.cluster007.nn1

 hdp1:8020

 

 

 

 dfs.namenode.rpc-address.cluster007.nn2

 hdp2:8020

 

 

 

 dfs.namenode.http-address.cluster007.nn1

 hdp1:50070

 

 

 

 dfs.namenode.http-address.cluster007.nn2

 hdp2:50070

 

 

 

 dfs.namenode.shared.edits.dir

 qjournal://hdp1:8485;hdp2:8485;hdp3:8485/cluster007

 

 

 

 dfs.journalnode.edits.dir

 /usr/proc/hadoop/journalnode/data

 

 

 

 dfs.ha.fencing.methods

 sshfence

 

 

 

 dfs.ha.fencing.ssh.private-key-files

 /root/.ssh/id_rsa

 

 

 

 dfs.ha.fencing.ssh.connect-timeout

 30000

 

 

 

 dfs.client.failover.proxy.provider.cluster007

 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

 

 

 

 dfs.ha.automatic-failover.enabled

 true

 

4、 mapred-site.xml

 

 

 mapreduce.framework.name

 yarn

 

5、 yarn-site.xml

 

 

 yarn.nodemanager.aux-services

 mapreduce_shuffle

 

 

 

 yarn.log-aggregation-enable

 true

 

 

 

 yarn.log-aggregation.retain-seconds

 86400

 

 

 

 yarn.resourcemanager.ha.enabled

 true

 

 

 

 yarn.resourcemanager.cluster-id

 yarn-cluster007

 

 

 

 yarn.resourcemanager.ha.rm-ids

 rm1,rm2

 

 

 

 yarn.resourcemanager.hostname.rm1

 hdp2

 

 

 

 yarn.resourcemanager.hostname.rm2

 hdp3

 

 

 

 yarn.resourcemanager.webapp.address.rm1

 hdp2:8088

 

 

 

 yarn.resourcemanager.webapp.address.rm2

 hdp3:8088

 

 

 

 yarn.resourcemanager.zk-address

 hdp1:2181,hdp2:2181,hdp3:2181

 

 

 

 yarn.resourcemanager.recovery.enabled

 true

 

 

 

 yarn.resourcemanager.store.class

 org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore

 

6、 workers(之前版本是slaves,注意查看)

hdp1

hdp2

hdp3

分发程序(有点慢约10分钟,等待完成停止不动后,回车)

scp -r /usr/proc/hadoop  root@hdp2:/usr/proc/hadoop  分发到hdp2

scp -r /usr/proc/hadoop  root@hdp3:/usr/proc/hadoop  分发到hdp3

启动

1、分别启动3台机器上的ZooKeeper进程

$ cd /usr/proc/zk/apache-zookeeper-3.5.9-bin/ 切换到进程目录

$ ./zkServer.sh start

2、分别启动3台机器上的Journalnode进程,(注意进程路径是sbin)

$ cd /usr/proc/hadoop/hadoop-3.3.1/sbin 切换到进程目录

$ ./hadoop-daemon.sh start journalnode

3、初始化NameNode(Active状态)(注意进程路径是bin)

      然后将格式化后的元数据目录(dfs.namenode.name.dir约定目录)复制到另外一台namenode(Standby)上(scp xxx xxx)

$ cd /usr/proc/hadoop/hadoop-3.3.1/bin 切换到进程目录

$ hdfs namenode -format

scp -r /usr/proc/hadoop/namenode/data

 root@hdp2:/usr/proc/hadoop/namenode/data 分发到hdp2

4、初始化HA在任意一台namenode上,推荐在Active上做(注意进程路径是bin)

$ cd /usr/proc/hadoop/hadoop-3.3.1/bin 切换到进程目录

$ hdfs zkfc -formatZK

5、启动HDFS (所有namenode和datanode都会启动,注意进程路径是sbin)

$ cd /usr/proc/hadoop/hadoop-3.3.1/sbin 切换到进程目录

$ ./start-dfs.sh

6、启动Yarn(所有RM和NodeM都会启动,注意进程路径是sbin)

$ cd /usr/proc/hadoop/hadoop-3.3.1/sbin 切换到进程目录

$ ./start-yarn.sh

查看状态

1、Zookeeper状态:

在3台机器都正确启动ZooKeeper进程后,进行查看状态,

$ cd /usr/proc/zk/apache-zookeeper-3.5.9-bin/ 切换到进程目录

$ ./zkServer.sh status

3台机器的状态,其中有一台是:leader,另外2台是:follower

2、执行JPS查看各进程状态

hdp1:

NameNode

DataNode

Journalnode

ZKFC

ResourceManager(Active)

hdp2:

SecondaryNameNode

DataNode

Journalnode

ZKFC

NodeManager

hdp3:

ResourceManager(Standby)

DataNode

Journalnode

NodeManager

3、查看Web UI

 HDFS:见hdfs-site.xml配置

dfs.namenode.http-address.cluster007.nn1

Yarn:见yarn-site.xml配置

yarn.resourcemanager.webapp.address.rm1

基本操作

分别启停Hdfs

bin/hadoop-daemon.sh start/stop

namenode/datanode/secondarynamenode

分别启停Yarn

bin/yarn-daemon.sh start/stop resourcemanager/nodemanager

集群整体启停Hdfs

bin/start-dfs.sh / stop-dfs.sh

集群整体启停Yarn

bin/start-yarn.sh / stop-yarn.sh

查看当前目录

bin/hadoop dfs -ls /

查看hdfs中的目录,例如:/user/proc/xx目录下的文件

bin/hadoop fs -lsr /user/proc/xx

创建目录,例如:/user/proc/tmp

bin/hadoop fs -mkdir /user/proc/tmp

递归创建多层文件夹输入, 例如:/usr/proc/a/b/c/file1.txt

bin/hadoop fs -mkdir -p /usr/proc/a/b/c/file1.txt

重命名目录,例如:tmp重命名tmp1

bin/hadoop dfs -mv /user/proc/tmp  /user/proc/tmp1

删除文件,例如:/user/proc/tmp/fileX

bin/hadoop fs -rm /user/proc/tmp/fileX

删除目录下所有文件,例如:/user/proc/tmp

bin/hadoop fs -rmr /user/proc/tmp

上传文件,例如:上传file1文件到newTmp目录

bin/hadoop fs –put /usr/proc/tmp/file1 /usr/proc/newTmp/

下载文件,例如:下载file1到tmp目录

bin/hadoop fs –get /usr/proc/newTmp/file1  /usr/proc/tmp

将指定目录下的所有内容merge成一个新文件,下载到本地

bin/hadoop dfs -getmerge /usr/proc  /usr/home/newfile

查看文件,例如:/usr/proc/tmp/file1

bin/hadoop fs –cat /usr/proc/tmp/file1

将目录拷贝到本地

bin/hadoop dfs -copyToLocal /home localdir

查看dfs的情况

bin/hadoop dfsadmin -report

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号