资料下载网
首页 计算机 考试教辅
hadoop集群教程 pdf电子书免费下载,百度云
首页 > 计算机 > 计算机网络/服务器 > hadoop集群教程 pdf电子书免费下载,百度云

《hadoop集群教程》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1NulQdxvZ1rXyW9QtBocsiQ
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ad_123536_do_hadoopJQJC.zip

 


hadoop集群教程

作者:empty

出版社:empty

《hadoop集群教程》介绍

Hadoop2.7.0集群搭建

1.系统配置

电脑1(Lenovo E420),win7 64位系统,8G内存,此电脑虚拟机上运行两个ubuntu14.10系统。

电脑2(Lenovo SL410),win7 64位系统,4G内存,此电脑虚拟机上运行一个ubuntu14.10系统。

虚拟机:Vmware10.0

Hadoop2.7.0

Zookeeper3.4.6

2.集群规划

由于本人电脑配置太差,经过实际操作发现E420最多只能运行两台虚拟机ubuntu系统,所以就在另一台电脑SL410上搭建了另一个虚拟机ubuntu系统,其具体规划如下:

主机名IP安装软件运行的进程

Ubuntu1192.168.1.120Jdk,hadoop

zookeeperNameNode、DFSZKFailoverController、DataNode、NodeManager、JournalNode、QuorumPeerMain

Ubuntu2192.168.1.121Jdk,hadoop

zookeeperNameNode,DFSZKFailoverController,DataNode、NodeManager、JournalNode、QuorumPeerMain

Ubuntu3192.168.1.122Jdk,hadoop

zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMain,ResourceManager

说明:

在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步activenamenode的状态,以便能够在它失败时快速进行切换。

hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。

在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条

数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode

这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当

Active NameNode挂掉了,会自动切换Standby NameNode为standby状态。

3.两台电脑之间的通信

按路径“控制面板/网络和Internet/网络和共享中心/无线网络连接/详细信息”进入网络连接详细信息界面查看Win7网络通信相关信息。

在“网络连接详细信息”中要注意以下几个属性:描述(此属性用于在虚拟机中桥接通信时选择桥接目标),IPv4地址,IPv4默认网关,以下是我的具体配置

电脑

类型描述IPv4地址IPv4默认网关

E4201x1 11b/g/n wireless LAN PCI Express Half Mini Card Adapter192.168.1.104192.168.1.1

SL410Intel(R) WIFI Link 1000 BGN192.168.1.103192.168.1.1

设置虚拟机网络信息

1)按路径“编辑(E)/虚拟网络编辑器(N)”进入网络编辑器将WMnet0的VMnet信息设置成桥接模式,“桥接到”选项为上文提到的描述信息,其实这个描述信息就是当前电脑的网卡名称,如下图所示:

2)按路径“虚拟机(M)/设置(S)”进入虚拟机设置界面,选择网络适配器为“桥接模式”,如下图所示:

3)在ubuntu命令行Vim /etc/network/interfaces设置ubuntu IP,如下所示:

注意:address 192.168.1.120(此IP必须和win7 IP在同一个网段)

gateway 192.168.1.1 (此网关必须和win7 的网关相同)

4)在ubuntu命令行vim /etc/hostname中设置ubuntu主机名,如下图所示:

5)在ubuntu命令行vim /etc/hosts 中设置ubuntu主机名和ip地址的对应关系,如下图所示:

6)验证各系统之间是否能够ping通。

4.安装配置zookeeper集群

1)解压zookeeper压缩包到/home/brian/hadoop

tar –zxvf zookeeper-3.4.6.tar.gz –C /home/brian/hadoop

mv /home/brian/hadoop/zookeeper-3.4.6 /home/brian/hadoop/zk

2)在/home/brian/hadoop/zk/conf修改zookeeper配置zoo.cfg,具体配置如下图所示:

3)在/home/brian/hadoop/zk中设置创建tmp目录

Mkdir /home/brian/hadoop/zk/tmp

4)在/home/brian/hadoop/zk/tmp目录中创建空文件myid,并写入1

vim /home/brian/hadoop/zk/tmp/myid。

5)将配置好的zookeeper拷贝到ubuntu2和ubuntu3

scp -r /home/brian/hadoop/zk/ root@ubuntu2:/home/brian/hadoop

scp -r /home/brian/hadoop/zk/ root@ubuntu3:/home/brian/hadoop

6)在ubuntu2和ubuntu3中分别修改myid为2和3。

5.安装配置hadoop集群

1)解压hadoop压缩包到/home/brian/hadoop

tar -zxvf hadoop-2.7.0.tar.gz -C /home/brian/hadoop/

2)安装hadoop

mv /home/brian/hadoop/hadoop-2.7.0 /home/brian/hadoop/hadoop

在~/.bashrc中配置hadoop的安装信息,如下图所示:

6.配置hadoop

hadoop2.7.0的所有配置文件从存在/home/brian/hadoop/hadoop/etc/hadoop之中。

cd /home/brian/hadoop/hadoop/etc/hadoop

1)修改hadoop-env.sh

export JAVA_HOME=/home/brian/hadoop/jdk

2)修改core-site.xml

configuration>

!-- 指定hdfs的nameservice为ns1 -->

property>

name>fs.defaultFS /name>

value>hdfs://ns1 /value>

/property>

!-- 指定hadoop临时目录 -->

property>

name>hadoop.tmp.dir /name>

value>/home/brian/hadoop/hadoop/tmp /value>

/property>

!-- 指定zookeeper地址 -->

property>

name>ha.zookeeper.quorum /name>

value>ubuntu1:2181,ubuntu2:2181,ubuntu3:2181 /value>

/property>

/configuration>

3)修改hdfs-site.xml

configuration>

!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->

property>

name>dfs.nameservices /name>

value>ns1 /value>

/property>

!-- ns1下面有两个NameNode,分别是nn1,nn2 -->

property>

name>dfs.ha.namenodes.ns1 /name>

value>nn1,nn2 /value>

/property>

!-- nn1的RPC通信地址 -->

property>

name>dfs.namenode.rpc-address.ns1.nn1 /name>

value>ubuntu1:9000 /value>

/property>

!-- nn1的http通信地址 -->

property>

name>dfs.namenode.http-address.ns1.nn1 /name>

value>ubuntu1:50070 /value>

/property>

!-- nn2的RPC通信地址 -->

property>

name>dfs.namenode.rpc-address.ns1.nn2 /name>

value>ubuntu2:9000 /value>

/property>

!-- nn2的http通信地址 -->

property>

name>dfs.namenode.http-address.ns1.nn2 /name>

value>ubuntu2:50070 /value>

/property>

!-- 指定NameNode的元数据在JournalNode上的存放位置 -->

property>

name>dfs.namenode.shared.edits.dir /name> value>qjournal://ubuntu1:8485;ubuntu2:8485;ubuntu3:8485/ns1 /value>

/property>

!-- 指定JournalNode在本地磁盘存放数据的位置 -->

property>

name>dfs.journalnode.edits.dir /name>

value>/home/brian/hadoop/hadoop/journal /value>

/property>

!-- 开启NameNode失败自动切换 -->

property>

name>dfs.ha.automatic-failover.enabled /name>

value>true /value>

/property>

!-- 配置失败自动切换实现方式 -->

property>

name>dfs.client.failover.proxy.provider.ns1 /name>

value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider /value>

/property>

!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

property>

name>dfs.ha.fencing.methods /name>

value>

sshfence

shell(/bin/true)

/value>

/property>

!-- 使用sshfence隔离机制时需要ssh免登陆 -->

property>

name>dfs.ha.fencing.ssh.private-key-files /name>

value>/root/.ssh/id_rsa /value>

/property>

!-- 配置sshfence隔离机制超时时间 -->

property>

name>dfs.ha.fencing.ssh.connect-timeout /name>

value>30000 /value>

/property>

/configuration>

4)修改mapred-site.xml

configuration>

!-- 指定mr框架为yarn方式 -->

property>

name>mapreduce.framework.name /name>

value>yarn /value>

/property>

/configuration>

5)修改yarn-site.xml

configuration>

!-- 指定resourcemanager地址 -->

property>

name>yarn.resourcemanager.hostname /name>

value>ubuntu3 /value>

/property>

!-- 指定nodemanager启动时加载server的方式为shuffle server -->

property>

name>yarn.nodemanager.aux-services /name>

value>mapreduce_shuffle /value>

/property>

/configuration>

6)修改slaves

slaves是指定子节点的位置,因为要在ubuntu1上启动HDFS、在ubuntu3启动yarn,所以ubuntu1上的slaves文件指定的是datanode的位置,ubuntu3上的slaves文件指定的是nodemanager的位置

cd /home/brian/hadoop/hadoop/etc/hadoop/

vim slaves

ubuntu1

ubuntu2

ubuntu3

7.将配置好的hadoop拷贝到ubuntu2和ubuntu3

scp -r /home/brian/hadoop/hadoop root@ubuntu2:/home/brian/hadoop/

scp -r /home/brian/hadoop/hadoop root@ubuntu3:/home/brian/hadoop/

*********************注意:以下操作必须严格按照顺序*****************************

8.启动zookeeper集群(在ubuntu1,ubuntu2,ubuntu3的/home/brian/hadoop/zk/bin/里开启)

cd /home/brian/hadoop/zk/bin

./zkServer.sh start(启动zookeeper节点)

./zkServer.sh status(查看zookeeper状态)

9.启动journalnode(在ubuntu1,ubuntu2,ubuntu3的/home/brian/hadoop/hadoop/sbin里启动)

hadoop-daemons.sh start journalnode

jps(依次在每个节点中查看各节点是否多了Journalnode进程)

10.格式化HDFS

在ubuntu1上执行格式化命令

hdfs namenode -format

格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/home/brian/hadoop/hadoop/tmp,然后将/home/brian/hadoop/hadoop/tmp拷贝到ubuntu2和ubuntu3的/home/brian/hadoop/hadoop下。

scp -r /home/brian/hadoop/hadoop/tmp root@ubuntu2:/home/brian/hadoop/hadoop

scp -r /home/brian/hadoop/hadoop/tmp root@ubuntu3:/home/brian/hadoop/hadoop

11.格式化ZK

在ubuntu1上执行格式化命令

hdfs zkfc -formatZK

12.启动HDFS

在ubuntu1的/home/brian/hadoop/hadoop/sbin中执行start-dfs.sh命令

cd /home/brian/hadoop/hadoop/sbin/

start-dfs.sh

启动之后,分别进入ubuntu1,ubuntu2,ubuntu3中jps,查看是否多了NameNode 和 DFSZKFailoverController两个进程

13.启动YARN

在ubuntu3中的/home/brian/hadoop/hadoop/sbin中执行start-yarn.sh命令

cd /home/brian/hadoop/hadoop/sbin/

start-yarn.sh

是在ubuntu3上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动

14.到此,hadoop2.7.0的配置完毕,可以通过浏览器访问来查看部署是否成功


《hadoop集群教程》目录

empty

empty

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5