標籤:大資料 hadoop apark flume kafka
1、Hadoop生態概況
Hadoop是一個由Apache基金會所開發的分布式系統整合架構,使用者可以在不瞭解分布式底層細節情況下,開發分布式程式,充分利用叢集的威力來進行高速運算與儲存,具有可靠、高效、可伸縮的特點
Hadoop的核心是YARN,HDFS,Mapreduce,常用模組架構如下
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/89/76/wKioL1gUT8nCycQjAAKOnd4EMEo166.png" title="1.png" alt="wKioL1gUT8nCycQjAAKOnd4EMEo166.png" />
2、HDFS
源自Google的GFS論文,發表於2013年10月,HDFS是GFS的複製版,HDFS是Hadoop體系中資料存放區管理的基礎,它是一個高度容錯的系統,能檢測和應對硬體故障
HDFS簡化了檔案一致性模型,通過流式資料訪問,提供高輸送量應用程式資料訪問功能,適合帶有大型資料集的應用程式,它提供了一次寫入多次讀取的機制,資料以塊的形式,同時分布在叢集不同物理機器
3、Mapreduce
源自於Google的MapReduce論文,用以進行大資料量的計算,它屏蔽了分散式運算架構細節,將計算抽象成map和reduce兩部分
4、HBASE(分布式列存資料庫)
源自Google的Bigtable論文,是一個建立在HDFS之上,面向列的針對結構化的資料可伸縮,高可靠,高效能分布式和面向列的動態模式資料庫
5、zookeeper
解決分布式環境下資料管理問題,統一命名,狀態同步,叢集管理,配置同步等
6、HIVE
由Facebook開源,定義了一種類似sql查詢語言,將SQL轉化為mapreduce任務在Hadoop上面執行
7、flume
日誌收集工具
8、yarn分布式資源管理員
是下一代mapreduce,主要解決原始的Hadoop擴充性較差,不支援多種計算架構而提出的,架構如下
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/79/wKiom1gUUtfyL4A3AAIHT-X65D8457.png" title="1.png" alt="wKiom1gUUtfyL4A3AAIHT-X65D8457.png" />9、spark
spark提供了一個更快更通用的資料處理平台,和Hadoop相比,spark可以讓你的程式在記憶體中運行
10、kafka
分布式訊息佇列,主要用於處理活躍的流式資料
11、Hadoop偽分布式部署
目前而言,不收費的Hadoop版本主要有三個,都是國外廠商,分別是
1、Apache原始版本
2、CDH版本,對於國內使用者而言,絕大多數選擇該版本
3、HDP版本
這裡我們選擇CDH版本hadoop-2.6.0-cdh5.8.2.tar.gz,環境是centos7.1,jdk需要1.7.0_55以上
[[email protected] ~]# useradd hadoop
我的系統預設內建的java環境如下
[[email protected] ~]# ll /usr/lib/jvm/total 12lrwxrwxrwx. 1 root root 26 Oct 27 22:48 java -> /etc/alternatives/java_sdklrwxrwxrwx. 1 root root 32 Oct 27 22:48 java-1.6.0 -> /etc/alternatives/java_sdk_1.6.0drwxr-xr-x. 7 root root 4096 Oct 27 22:48 java-1.6.0-openjdk-1.6.0.34.x86_64lrwxrwxrwx. 1 root root 34 Oct 27 22:48 java-1.6.0-openjdk.x86_64 -> java-1.6.0-openjdk-1.6.0.34.x86_64lrwxrwxrwx. 1 root root 32 Oct 27 22:44 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0lrwxrwxrwx. 1 root root 40 Oct 27 22:44 java-1.7.0-openjdk -> /etc/alternatives/java_sdk_1.7.0_openjdkdrwxr-xr-x. 8 root root 4096 Oct 27 22:44 java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64lrwxrwxrwx. 1 root root 32 Oct 27 22:44 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0lrwxrwxrwx. 1 root root 40 Oct 27 22:44 java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdkdrwxr-xr-x. 7 root root 4096 Oct 27 22:44 java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64lrwxrwxrwx. 1 root root 34 Oct 27 22:48 java-openjdk -> /etc/alternatives/java_sdk_openjdklrwxrwxrwx. 1 root root 21 Oct 27 22:44 jre -> /etc/alternatives/jrelrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.6.0 -> /etc/alternatives/jre_1.6.0lrwxrwxrwx. 1 root root 38 Oct 27 22:44 jre-1.6.0-openjdk.x86_64 -> java-1.6.0-openjdk-1.6.0.34.x86_64/jrelrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.7.0 -> /etc/alternatives/jre_1.7.0lrwxrwxrwx. 1 root root 35 Oct 27 22:44 jre-1.7.0-openjdk -> /etc/alternatives/jre_1.7.0_openjdklrwxrwxrwx. 1 root root 52 Oct 27 22:44 jre-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64 -> java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64/jrelrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.8.0 -> /etc/alternatives/jre_1.8.0lrwxrwxrwx. 1 root root 35 Oct 27 22:44 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdklrwxrwxrwx. 1 root root 48 Oct 27 22:44 jre-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64 -> java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64/jrelrwxrwxrwx. 1 root root 29 Oct 27 22:44 jre-openjdk -> /etc/alternatives/jre_openjdk
[[email protected] ~]# cat /home/hadoop/.bashrc 增加如下環境變數
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/binexport HADOOP_PREFIX=/opt/hadoop/currentexport HADOOP_MAPRED_HOME=${HADOOP_PREFIX}export HADOOP_COMMON_HOME=${HADOOP_PREFIX}export HADOOP_HDFS_HOME=${HADOOP_PREFIX}export HADOOP_YARN_HOME=${HADOOP_PREFIX}export HTTPS_CATALINA_HOME=${HADOOP_PREFIX}/share/hadoop/httpfs/tomcatexport HADOOP_CONF_DIR=/etc/hadoop/confexport YARN_CONF_DIR=/etc/hadoop/confexport HTTPS_CONFIG=/etc/hadoop/confexport PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
我們將Hadoop安裝在/opt/hadoop目錄下面,建立如下軟串連,設定檔放在/etc/hadoop/conf目錄下面
[[email protected] hadoop]# ll current
lrwxrwxrwx 1 root root 21 Oct 29 11:02 current -> hadoop-2.6.0-cdh5.8.2
做好如下授權
[[email protected] hadoop]# chown -R hadoop.hadoop hadoop-2.6.0-cdh5.8.2
[[email protected] hadoop]# chown -R hadoop.hadoop /etc/hadoop/conf
CDH5新版本的Hadoop啟動服務腳步位於$HADOOP_HOME/sbin目錄下面,啟動服務有如下
namenode
secondarynamenode
datanode
resourcemanger
nodemanager
這裡以Hadoop使用者來進行管理和啟動Hadoop的各種服務
[[email protected] etc]# cd /etc/hadoop/conf/
[[email protected] conf]# vim core-site.xml
<configuration><property> <name>fs.defaultFS</name> <value>hdfs://hadoop1</value></property></configuration>格式化namenode[[email protected] conf]# cd /opt/hadoop/current/bin[[email protected] bin]# hdfs namenode -format啟動namenode服務[[email protected] bin]# cd /opt/hadoop/current/sbin/[[email protected] sbin]# ./hadoop-daemon.sh start namenode[[email protected] sbin]$ ./hadoop-daemon.sh start datanode
查看服務啟動情況
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/77/wKioL1gUV3WC1ynsAAAUH-zmTVk706.png" title="1.png" alt="wKioL1gUV3WC1ynsAAAUH-zmTVk706.png" />
namenode啟動完成後,就可以通過web介面查看狀態了,預設連接埠是50070,我們訪問測試下
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/79/wKiom1gUWonxt4H4AAEUR2zLnmI763.png" title="1.png" alt="wKiom1gUWonxt4H4AAEUR2zLnmI763.png" />
本文出自 “厚德載物” 部落格,謝絕轉載!
大資料Hadoop快速入門