大数据基础平台Hadoop完全分布式集群

网友投稿 692 2022-05-29

大数据基础平台Hadoop完全分布式集群

完全分布式部署介绍

完全分部式是真正利用多台Linux主机来进行部署Hadoop,对Linux机器集群进行规划,使得Hadoop各个模块分别

部署在不同的多台机器上。

NameNode HA+完全分布式部署

部署规划

部署6台主机,注意每台主机的IP地址,主机名要不同,此处IP地址为192.168.1.10-60,主机为hd1-hd6

使用ntpdate命令同步6台主机时间:ntpdate time1.aliyun.com

更改hd1 hosts文件,增加域名

192.168.1.10 hd1

192.168.1.20 hd2

......

通过scp命令传给其他主机:scp /etc/hosts 192.168.1.20:/etc

以此类推

生成密钥对,使6台主机可以相互免密访问

首先在hd1上执行命令,生成密钥对:ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ""

使用for循环将生成的密钥对发到各个主机:

for i in hd{2..6}

> do

> scp -r /root/.ssh $i:/root

> done

部署jdk环境,上传jdk二进制软件包,然后解包到当前目录:

tar xf jdk-8u191-linux-x64.tar.gz

移动到local目录下命名为jdk:

mv jdk1.8.0_191 /usr/local/jdk

使用for循环将解好的包scp到其他主机上:

for i in hd{2..6}

do

scp -r /usr/local/jdk $i:/usr/local

done

配置环境变量:vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export PATH=${JAVA_HOME}/bin:$PATH

将配置好的环境变量文件使用for循环,拷贝到其他主机:

for i in hd{2..6}

do

scp -r /etc/profile $i:/etc

done

拷贝成功,全部执行source /etc/profile

Java jdk环境部署成功

根据上面的规划,我们在编号为hd4-6的主机上部署zookeeper

上传zookeeper包到hd4主机上,解包:tar xf zookerper

移动到local下:mv zookerper /usr/local/zookerper

复制、修改配置文件:

cp /usr/local/zookerper/conf/zoo_sample.cfg /usr/local/zookerper/conf/zoo.cfg

配置cfg文件,更改dataDir目录如图:

在文件末尾增加主机验证

在opt目录下创建data目录:mkdir /opt/data

将1写入myid:echo “1” > /opt/data/myid

其余hd5、hd6主机也同样创建data目录

将2、3写入hd5、hd6的myid文件

将配置文件cfg拷贝到其余主机zookeeper的conf目录下

for i in hd{5..6}

> do

> scp -r /usr/local/zookeeper $i:/usr/local/zookeeper

> done

添加环境变量:vim /etc/profile

将环境变量文件复制到其他主机:scp /etc/profile hd5:/etc/profile

scp /etc/profile hd6:/etc/profile

挨个source

三台主机启动zookeeper服务:zkServer.sh start

查看zookeeper服务状态:zkServer.sh status

部署Hadoop

Hd1主机上传Hadoop软件包

解压到opt目录下:tar xf hadoop2.8.5 -C /opt/hadoop285

更改环境变量vim /etc/profile

键入source /etc/profile

把profile文件发给其他主机:scp /etc/profile hd2:/etc/profile

scp /etc/profile hd3:/etc/profile

更改hd4主机profile文件

键入source /etc/profile

把profile文件发送给其他主机:scp /etc/profile hd5:/etc/profile

scp /etc/profile hd6:/etc/profile

配置hd1的hadoop

修改hadoop-env.sh 25行;mapred-env.sh 16行;yarn-env.sh 23行(针对hadoop285版本)

改为:export JAVA_HOME=/usr/local/jdk

修改core-site.xml

fs.defaultFS

hdfs://ns1

hadoop.tmp.dir

/opt/data/tmp

ha.zookeeper.quorum

hd4:2181,hd5:2181,hd6:2181

修改hdfs-site.xml

dfs.nameservices

ns1

dfs.ha.namenodes.ns1

nn1,nn2

dfs.namenode.rpc-address.ns1.nn1

hd1:9000

dfs.namenode.http-address.ns1.nn1

hd1:50070

dfs.namenode.rpc-address.ns1.nn2

hd2:9000

dfs.namenode.http-address.ns1.nn2

hd2:50070

dfs.namenode.shared.edits.dir

qjournal://hd4:8485;hd5:8485;hd6:8485/ns1

dfs.journalnode.edits.dir

/opt/data/journal

dfs.ha.automatic-failover.enabled

true

dfs.client.failover.proxy.provider.ns1

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

e>

dfs.ha.fencing.methods

sshfence

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

/root/.ssh/id_rsa

配置datanode节点记录文件slaves

hd4

hd5

hd6

配置mapred-site.xml

复制mapred-site.xml.template为mapred-site.xml:

cp /opt/hadoop285/etc/hadoop/mapred-site.xml.template

/opt/hadoop285/etc/hadoop/mapred-site.xml

配置mapred-site.xml文件

mapreduce.framework.name

yarn

配置yarn-site.xml文件

yarn.resourcemanager.hostname

hd3

yarn.nodemanager.aux-services

mapreduce_shuffle

将配置文件传到所有主机

传输时间较长,一般在20分钟左右

传输完毕,所有主机执行source /etc/profile

大数据基础平台Hadoop完全分布式集群

启动集群

在datanode节点(hd4-6)启动zookeeper:zkServer.sh start

启动journalnode(在namenode上操作,例如hd1):hadoop-darmons.sh start journalnode

分别到hd4、5、6节点上验证:jps

格式化hdfs文件系统(在namenode上操作,例如hd1):hdfs namenode -format

复制到hd2主机:scp -r /opt/data hd2:/opt

格式化zk(namenode上操作,例如hd1):hdfs zkfc -formatZK

启动hdfs(在namenode上操作,例如hd1):start-dfs.sh

启动yarn(namenode上操作,例如想让hd2成为resourcemanager,需要在hd2上启动,此处在hd3启动):start-yarn.sh

测试集群

创建文件txt文件

将文件上传hdfs文件系统:hdfs dfs -mkdir /input

hdfs dfs -put test.txt /input

yarn jar /opt/hadoop285/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /input /output/00

查看结果hdfs dfs -cat /output/00/part-r-00000

附件: 大数据基础平台Hadoop集群之Ambari实践.docx 1.02MB 下载次数:0次

Hadoop ssh 云计算 任务调度 大数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:快速排序算法到底有多快?
下一篇:Python中的堆栈:如何,为什么以及在哪里?
相关文章