찾다
데이터 베이스MySQL 튜토리얼基于Hadoop-0.20.2的完全分布式集群搭建详细过程

之前的学习都是基于伪分布式环境,但是要想深入学习hadoop数据分析技术,就必须将hadoop集群搭建起来。 说来简单,但是应该怎么做呢?不急,本文的主要目的就是流水式的记录,看了之后也能够亲自动手实施这些过程。由于资源问题,只能通过虚拟机来实施模 拟

之前的学习都是基于伪分布式环境,但是要想深入学习hadoop数据分析技术,就必须将hadoop集群搭建起来。

说来简单,但是应该怎么做呢?不急,本文的主要目的就是流水式的记录,看了之后也能够亲自动手实施这些过程。由于资源问题,只能通过虚拟机来实施模 拟集群环境,虽然说是虚机模拟,但是在虚机上的hadoop的集群搭建过程也可以使用在实际的物理节点中,思想是一样的。如果你有足够的节点也可以在虚拟 机上进行一些其它实验测试,这是最好不过的了。

资源介绍:

笔记本一台(自己的) 内存4G 双核四线程

台式机一台(导师的) 内存4G 双核四线程

两台电脑软件情况:

Win7 64位

Vmware-9.0.2

虚拟机情况:

ubuntu-12.04

hadoop-0.20.2

jdk-8u5-linux-i586-demos

准备过程:

环境准备:《搭建Hadoop-0.20.2环境(伪分布式)》 附:后面多次使用。
节点准备:

其实这一步骤非常简单,如果你已经完成了搭建Hadoop-0.20.2环境(伪分布式)这一步,此时你已经准备好了第一个虚拟节点,那第二个和第 三个虚拟机节点如何准备?可能你已经想明白了,你可以按之前那一步的方法,再分别安装两遍Ubuntu系统,就分别实现了第二、三个虚拟机节点。不过这个 过程估计会让你很崩溃,其实还有一个更简单的方法,就是复制和粘贴,没错,就是在你刚安装好的第一个虚拟机节点,将整个系统目录进行复制,形成第二和第三 个虚拟机节点。简单吧。

说明1:其实在这里如果你在复制第一个节点的时候已经将伪分布式环境搭建好,那么复制第二个节点,第三个节点的时候那么SSH已经可以互通。

说明2:如果在第一个节点已经实现伪分布式环境基础上复制的第二个、第三个节点,需要重新配置三个节点中conf文件夹中配置文件。

很多人也许会问,这三个结点有什么用,原理很简单,按照hadoop集群的基本要求,其中一个是master结点,主要是用于运行hadoop程序 中的namenode、secondorynamenode和jobtracker任务。用外两个结点均为slave结点,其中一个是用于冗余目的,如果 没有冗余,就不能称之为hadoop了,所以模拟hadoop集群至少要有三个结点,如果电脑配置非常高,可以考虑增加一些其它的结点。slave结点主 要将运行hadoop程序中的datanode和tasktracker任务。

所以,在准备好这三个结点之后,需要分别将linux系统的主机名重命名(因为前面是复制和粘帖操作产生另两上结点,此时这3个结点的主机名是一样的),重命名主机名的方法:

<code>sudo gedit /etc/hostname
</code>

通过修改hostname文件即可,这三个点结均要修改,以示区分。

以下是我对三个结点的ubuntu系统主机分别命名为:s15(master), s17(slave), s18(slave)

搭建流程:

一、配置hosts文件

二、建立hadoop运行帐号

三、配置ssh免密码连入

四、下载并解压hadoop安装包

五、配置namenode之修改site文件

六、配置hadoop-env.sh文件

七、配置masters和slaves文件

八、向各节点复制hadoop

九、格式化namenode

十、启动hadoop

十一、用jps检验各后台进程是否成功启动

十二、通过webUI查看集群情况

一、配置hosts文件

先简单说明下配置hosts文件的作用,它主要用于确定每个结点的IP地址,方便后续master(s15)结点能快速查到并访问各个结点。在上述 3个虚机结点上均需要配置此文件。由于需要确定每个结点的IP地址,所以在配置hosts文件之前需要先查看当前虚机结点的IP地址是多少,可以通过 ifconfig命令进行查看,如本实验中,s15,s17,s18结点的IP地址分别为:

<code>192.168.130.235
192.168.130.237
192.168.130.238
</code>

如果IP地址不在同一局域网内可以通过ifconfig命令更改结点的IP地址,如果你需要修改很多节点IP,可通过shell脚本来分别执行,省时简单,脚本如下:

<code>#!/bin/bash
sudo ifconfig eth0 192.168.130.235
sudo route add default gw 192.168.130.1
</code>

在这里IP地址和网关修改成你自己需要的,注意:
1.每个节点IP不一样,运行前需修改。
2.脚本没权限,需添加权限。

<code>sudo chown +x 脚本的名字.sh
</code>

3.每次重启虚拟机,IP需重新设置。

将每个结点的IP地址设置完成后,就可以配置每个节点的hosts文件了。执行

<code>sudo gedit /etc/hosts
</code>

添加:

<code>192.168.130.235 s15
192.168.130.237 s17
192.168.130.238 s18
</code>

格式:

<code>节点IP 别名
</code>

二、建立hadoop运行帐号

即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例如下:

<code>sudo groupadd hadoop//设置hadoop用户组
sudo useradd –s /bin/bash –d /home/hadoop –m hadoop –g hadoop –G admin   //添加一个hadoop用户,此用户属于hadoop用户组,且具有admin权限。  
sudo passwd 123456   //设置用户hadoop登录密码
su hadoop   //切换到hadoop用户中
</code>

上述三个节点均需要进行以上步骤来完成hadoop运行帐号的建立。

特别说明:如果之前按照《搭建Hadoop-0.20.2环境(伪分布式)》已经搭建好伪分布式环境再复制第二个、第三个节点,上述添加运行账号可略过。

三、配置ssh免密码连入

这一环节最为重要,而且也最为关键,如果这一步走成功了,后面环节进行的也会比较顺利。

SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可 以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要 进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录 操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大 大提高访问效率。

1.每个结点分别产生公私密钥。可参考《搭建Hadoop-0.20.2环境(伪分布式)》中的搭建流程中的第五步:安装ssh服务。有图有真相。
2.单机回环ssh免密码登录测试。即在单机结点上用ssh进行登录,看能否登录成功。登录成功后注销退出。在第一步已经进行登陆测试了。
3.让主结点(master)能通过SSH免密码登录两个子结点(slave)。 为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:

进入s17节点,

<code>cd .ssh
scp  hadoop@s15:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
</code>

进入s18节点,

<code>cd .ssh
scp  hadoop@s15:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
</code>

进入s15节点,

<code>cd .ssh
scp  hadoop@s15:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
</code>

在这里我并没有这样做,希望大家自己测试,如果有问题还望指出。

特别说明:如果之前按照《搭建Hadoop-0.20.2环境(伪分布式)》已经搭建好伪分布式环境再复制第二个、第三个节点,上述配置ssh免密码连入可略过。

四、下载并解压hadoop安装包

可参考《搭建Hadoop-0.20.2环境(伪分布式)》中的搭建流程中的第七步:安装hadoop(1-4)。

五、配置namenode之修改site文件

在本文中s15节点做为namenode,所以下面配置针对s15中的site文件。

1、打开conf/core-site.xml文件,编辑如下:

<code><?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://www.cndwzone.com/archives/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://s15:9000</value> 
 </property> 
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/tmp</value> 
 </property> 
</configuration>
</code>

注意:如果按照之前的《搭建Hadoop-0.20.2环境(伪分布式)》搭建配置,对比不同。

2、打开conf/mapred-site.xml文件,编辑如下:

<code><?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://www.cndwzone.com/archives/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property> 
  <name>mapred.job.tracker</name>
  <value>192.168.130.235:9001</value> 
 </property>
</configuration>
</code>

注意1:如果按照之前的《搭建Hadoop-0.20.2环境(伪分布式)》搭建配置,对比不同。
注意2:192.168.130.235为master(s15)的IP。

3、打开conf/hdfs-site.xml文件,编辑如下:

<code><?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://www.cndwzone.com/archives/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>  
    <name>dfs.name.dir</name>  
    <value>/usr/local/hadoop/hdfs/name</value>  
  </property>  
  <property>  
    <name>dfs.data.dir</name>  
    <value>/usr/local/hadoop/hdfs/data</value>  
  </property>  
  <property>  
    <name>dfs.replication</name>  
    <value>2</value>  
  </property> 
</configuration>
</code>

注意1:如果按照之前的《搭建Hadoop-0.20.2环境(伪分布式)》搭建配置,对比不同。

六、配置hadoop-env.sh文件

每个节点这个需要根据实际情况来配置。参考《搭建Hadoop-0.20.2环境(伪分布式)》中的搭建流程的第七步:安装hadoop(6)。

七、配置masters和slaves文件

10、打开conf/masters文件,添加作为secondarynamenode的主机名,因为是完全分布式,只有一个节点,这里只需填写s15就可以。

11、打开conf/slaves文件,添加作为slave的主机名,一行一个。因为是完全分布式,只有两个个节点,添加:

<code>s17
s18
</code>

八、向各节点复制hadoop

如果在一个节点设置hadoop,然后打包使用scp指令,复制其它节点解压即可。

特别说明:如果是复制已经搭建好的伪分布式环境,只需按照上述修改配置即可。

九、格式化namenode

如果之前在使用伪分布式的环境下格式化,使用过,需将hdfs,tmp文件删除。

然后在主节点master(s15)上,执行,

<code>bin/hadoop namenode -format
</code>

注意:上面只要出现“successfully formatted”就表示成功了。

十、启动hadoop

这一步也在主结点master(s15)上进行操作,执行,

<code>bin/start-all.sh
</code>

十一、用jps检验各后台进程是否成功启动

在主结点master(s15)上执行jps查看namenode,jobtracker,secondarynamenode进程是否启动。

在s17和s18结点执行jps查看datanode和tasktracker进程是否启动。

十二、通过webUI查看集群情况

在浏览器中输入:http://192.168.130.235:50030,网址中的IP为master(s15)结点所对应的IP地址。

至此,基于hadoop-0.20.2的完全分布式集群已经全部搭建完成。


附:基于Hadoop-0.20.2的完全分布式的wordcount运行

<code>bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output
</code>

操作同伪分布式模式下,详情参考《运行WordCount》

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
InnoDB 버퍼 풀과 성능의 중요성을 설명하십시오.InnoDB 버퍼 풀과 성능의 중요성을 설명하십시오.Apr 19, 2025 am 12:24 AM

innodbbufferpool은 데이터와 인덱싱 페이지를 캐싱하여 디스크 I/O를 줄여 데이터베이스 성능을 향상시킵니다. 작업 원칙에는 다음이 포함됩니다. 1. 데이터 읽기 : BufferPool의 데이터 읽기; 2. 데이터 작성 : 데이터 수정 후 BufferPool에 쓰고 정기적으로 디스크로 새로 고치십시오. 3. 캐시 관리 : LRU 알고리즘을 사용하여 캐시 페이지를 관리합니다. 4. 읽기 메커니즘 : 인접한 데이터 페이지를 미리로드합니다. Bufferpool을 크기를 조정하고 여러 인스턴스를 사용하여 데이터베이스 성능을 최적화 할 수 있습니다.

MySQL 대 기타 프로그래밍 언어 : 비교MySQL 대 기타 프로그래밍 언어 : 비교Apr 19, 2025 am 12:22 AM

다른 프로그래밍 언어와 비교할 때 MySQL은 주로 데이터를 저장하고 관리하는 데 사용되는 반면 Python, Java 및 C와 같은 다른 언어는 논리적 처리 및 응용 프로그램 개발에 사용됩니다. MySQL은 데이터 관리 요구에 적합한 고성능, 확장 성 및 크로스 플랫폼 지원으로 유명하며 다른 언어는 데이터 분석, 엔터프라이즈 애플리케이션 및 시스템 프로그래밍과 같은 해당 분야에서 이점이 있습니다.

MySQL 학습 : 새로운 사용자를위한 단계별 안내서MySQL 학습 : 새로운 사용자를위한 단계별 안내서Apr 19, 2025 am 12:19 AM

MySQL은 데이터 저장, 관리 및 분석에 적합한 강력한 오픈 소스 데이터베이스 관리 시스템이기 때문에 학습 할 가치가 있습니다. 1) MySQL은 SQL을 사용하여 데이터를 작동하고 구조화 된 데이터 관리에 적합한 관계형 데이터베이스입니다. 2) SQL 언어는 MySQL과 상호 작용하는 열쇠이며 CRUD 작업을 지원합니다. 3) MySQL의 작동 원리에는 클라이언트/서버 아키텍처, 스토리지 엔진 및 쿼리 최적화가 포함됩니다. 4) 기본 사용에는 데이터베이스 및 테이블 작성이 포함되며 고급 사용량은 Join을 사용하여 테이블을 결합하는 것과 관련이 있습니다. 5) 일반적인 오류에는 구문 오류 및 권한 문제가 포함되며 디버깅 기술에는 구문 확인 및 설명 명령 사용이 포함됩니다. 6) 성능 최적화에는 인덱스 사용, SQL 문의 최적화 및 데이터베이스의 정기 유지 보수가 포함됩니다.

MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경