ビッグ データ オフライン フェーズ 02: Apache Hadoop

Hadoop の概要

Hadoop は、Apache 上で Java 言語で実装されたオープンソース ソフトウェア フレームワークであり、大規模なデータ処理を開発、運用するためのソフトウェア プラットフォームです。シンプルなプログラミング モデルを使用して、大規模コンピューターのクラスター上で大規模なデータセットの分散処理を可能にします。

狭い意味では、Hadoop は Apache を指します。Apache は、次のようなコア コンポーネントを備えたオープン ソース フレームワークです。

  • HDFS (分散ファイル システム): 大容量データ ストレージを解決
  • YARN (ジョブ スケジューリングとクラスター リソース管理のフレームワーク): リソース タスクのスケジューリングを解決します。
  • MAPREDUCE (分散コンピューティング プログラミング フレームワーク): 大規模データ コンピューティングの解決

広い意味では、Hadoop は通常、より広い概念である Hadoop エコシステムを指します。

現在の Hadoop は巨大なシステムに成長しています。エコシステムの成長に伴い、Apache を担当しない新しいプロジェクトもどんどん登場しています。これらのプロジェクトは、HADOOP やより高いレベルの抽象化を補完するのに適しています。

Hadoop開発の簡単な歴史

Hadoop は、Apache Lucene の創設者 Doug Cutting によって作成されました。これは、Lucene のサブプロジェクトである Nutch から生まれました。Nutch の設計目標は、Web クローリング、インデックス作成、クエリなどの機能を含む Web 全体のための大規模な検索エンジンを構築することですが、クロールされる Web ページの数が増加するにつれて、深刻なスケーラビリティの問題に直面します。数十億の Web ページのストレージとインデックス作成の問題を解決します。

2003 年に Google は、この問題に対する実現可能な解決策を提供する論文を発表しました。この論文では、Google 分散ファイル システム (GFS) と呼ばれる Google の製品アーキテクチャについて説明しています。これは、Web クローリングとインデックス作成のプロセスで生成される大きなファイルのストレージ ニーズを解決します。

2004 年、Google は Google バージョンの MapReduce システムを紹介する論文を世界に公開しました。

同時に、Nutch 開発者は HDFS と MAPREDUCE の対応するオープン ソース実装を完了し、Nutch から分離して独立したプロジェクト HADOOP となり、2008 年 1 月までに HADOOP は Apache のトップ プロジェクトとなり、急速な開発期を迎えました。

2006 年に Google は BigTable に関する論文を発表し、これが Hbase の開発のきっかけとなりました。

したがって、Hadoop とそのエコシステムの開発は Google の貢献と切り離すことができません。

Hadoopクラスタ構築

リリースバージョン

Hadoop ディストリビューションは、オープンソースコミュニティ エディション商用エディションに分かれています。

コミュニティ バージョンは、Apache Software Foundation によって維持されているバージョンを指し、公式に維持されているバージョン システムです。

https://hadoop.apache.org/

Hadoop の商用版とは、Hadoop のコミュニティ版をベースに、さまざまなサービス コンポーネントに変更、統合、互換性テストを行った、サードパーティの商用企業がリリースしたバージョンを指します。より有名なものとしては、cloudeera の CDH、 mapR、およびhortonWorks

https://www.cloudera.com/products/open-source/apache-hadoop/key-cdh-components.html

Hadoop のバージョンは非常に特殊で、複数のブランチによって並行して開発されます。大きな観点から見ると、1.x、2.x、3.x の 3 つの主要なバージョン シリーズに分かれています。

Hadoop1.0は、分散ファイルシステムHDFSとオフラインコンピューティングフレームワークMapReduceで構成されます。構造が後退しており、廃止されています。

Hadoop 2.0 には、分散ファイル システム HDFS、リソース管理システム YARN、オフライン コンピューティング フレームワーク MapReduce が含まれています。Hadoop 1.0 と比較して、Hadoop 2.0 はより強力で、スケーラビリティとパフォーマンスが優れており、複数のコンピューティング フレームワークをサポートしています。

Hadoop 3.0 では、以前の Hadoop 2.0 と比較して一連の機能が強化されています。現時点では安定しており、エコシステムの一部のコンポーネントはアップグレードおよび統合されていない可能性があります。

私たちのコースでは、Apache Hadoop 3.3.0 を使用しています。

クラスターの紹介

具体的には、HADOOP クラスターには、HDFS クラスターと YARN クラスターという 2 つのクラスターが含まれており、この 2 つは論理的には分離されていますが、多くの場合、物理的には一緒になっています。

HDFS クラスターは大規模なデータのストレージを担当しており、クラスター内の主な役割は次のとおりです。

ネームノード、データノード、セカンダリネームノード

YARN クラスターは、大規模なデータ操作中のリソースのスケジューリングを担当します。クラスター内の主な役割は次のとおりです。

リソースマネージャー、ノードマネージャー

Hadoop の導入方法には、スタンドアロン モード (独立モード)、擬似分散モード (擬似分散モード)、クラスター モード (クラスター モード) の 3 つがあり、最初の 2 つは 1 台のマシンに導入されます。

スタンドアロンモードはスタンドアロンモードとも呼ばれ、1台のマシンで1つのJavaプロセスを実行し、主にデバッグに使用されます。

擬似分散モードでは、HDFS の NameNode と DataNode、YARN の ResourceManger と NodeManager は 1 つのマシン上で実行されますが、主にデバッグのために、それぞれ別の Java プロセスが起動されます。

クラスター モードは主に実稼働環境の展開に使用されます。N 台のホストを使用して Hadoop クラスターを形成します。この展開モードでは、マスター ノードとスレーブ ノードが異なるマシンに別々に展開されます。

例として 3 つのノードを構築し、役割は次のように割り当てられます。

node1 NameNode DataNode ResourceManager

ノード2 データノード ノードマネージャー セカンダリ名ノード

ノード3 データノード ノードマネージャー


サーバーの基本環境の準備

1.0 配置好各虚拟机的网络(采用NAT联网模式)
		
	1.1修改各个虚拟机主机名
		vi /etc/hostname
		
		node1.itcast.cn    
	
	1.2修改主机名和IP的映射关系
		vi /etc/hosts
			
		192.168.227.151	node1.itcast.cn node1
		192.168.227.152	node2.itcast.cn node2
		192.168.227.153	node3.itcast.cn node3
	
	1.3关闭防火墙
		#查看防火墙状态
		systemctl status firewalld.service
		#关闭防火墙
		systemctl stop firewalld.service
		#关闭防火墙开机启动
		systemctl disable firewalld.service

	1.4.配置ssh免登陆(配置node1-->node1,node2,node3)
	#node1生成ssh免登陆密钥

	ssh-keygen -t rsa (一直回车)
	执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
	将公钥拷贝到要免密登陆的目标机器上
	ssh-copy-id node1
	ssh-copy-id node2
	ssh-copy-id node3
	
	1.5 同步集群时间
		yum install ntpdate
		ntpdate cn.pool.ntp.org

JDK環境のインストール

2.1上传jdk
	jdk-8u65-linux-x64.tar.gz
	
2.2解压jdk
	tar -zxvf jdk-8u65-linux-x64.tar.gz -C /export/server
	
2.3将java添加到环境变量中
	vim /etc/profile
	#在文件最后添加
	export JAVA_HOME=/export/server/jdk1.8.0_65
	export PATH=$PATH:$JAVA_HOME/bin
	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

	#刷新配置
	source /etc/profile

おすすめ

転載: blog.csdn.net/Blue92120/article/details/132203973