1. 程式人生 > >大數據學習之Hadoop快速入門

大數據學習之Hadoop快速入門

spa data 一次 架構 spark 1.7 cor catalina 工具

1、Hadoop生態概況

Hadoop是一個由Apache基金會所開發的分布式系統集成架構,用戶可以在不了解分布式底層細節情況下,開發分布式程序,充分利用集群的威力來進行高速運算與存儲,具有可靠、高效、可伸縮的特點。
大數據學習資料分享群119599574

Hadoop的核心是YARN,HDFS,Mapreduce,常用模塊架構如下

技術分享圖片

2、HDFS

源自谷歌的GFS論文,發表於2013年10月,HDFS是GFS的克隆版,HDFS是Hadoop體系中數據存儲管理的基礎,它是一個高度容錯的系統,能檢測和應對硬件故障

HDFS簡化了文件一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序,它提供了一次寫入多次讀取的機制,數據以塊的形式,同時分布在集群不同物理機器

3、Mapreduce

源自於谷歌的MapReduce論文,用以進行大數據量的計算,它屏蔽了分布式計算框架細節,將計算抽象成map和reduce兩部分

4、HBASE(分布式列存數據庫)

源自谷歌的Bigtable論文,是一個建立在HDFS之上,面向列的針對結構化的數據可伸縮,高可靠,高性能分布式和面向列的動態模式數據庫

5、zookeeper

解決分布式環境下數據管理問題,統一命名,狀態同步,集群管理,配置同步等

6、HIVE

由Facebook開源,定義了一種類似sql查詢語言,將SQL轉化為mapreduce任務在Hadoop上面執行

7、flume

日誌收集工具

8、yarn分布式資源管理器

是下一代mapreduce,主要解決原始的Hadoop擴展性較差,不支持多種計算框架而提出的,架構如下

技術分享圖片9、spark

spark提供了一個更快更通用的數據處理平臺,和Hadoop相比,spark可以讓你的程序在內存中運行
大數據學習資料分享群119599574

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以上

[root@hadoop1 ~]# useradd hadoop

我的系統默認自帶的java環境如下

  1. [root@hadoop1 ~]# ll /usr/lib/jvm/
  2. total 12
  3. lrwxrwxrwx. 1 root root 26 Oct 27 22:48 java -> /etc/alternatives/java_sdk
  4. lrwxrwxrwx. 1 root root 32 Oct 27 22:48 java-1.6.0 -> /etc/alternatives/java_sdk_1.6.0
  5. drwxr-xr-x. 7 root root 4096 Oct 27 22:48 java-1.6.0-openjdk-1.6.0.34.x86_64
  6. lrwxrwxrwx. 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_64
  7. lrwxrwxrwx. 1 root root 32 Oct 27 22:44 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0
  8. lrwxrwxrwx. 1 root root 40 Oct 27 22:44 java-1.7.0-openjdk -> /etc/alternatives/java_sdk_1.7.0_openjdk
  9. drwxr-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_64
  10. lrwxrwxrwx. 1 root root 32 Oct 27 22:44 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
  11. lrwxrwxrwx. 1 root root 40 Oct 27 22:44 java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk
  12. drwxr-xr-x. 7 root root 4096 Oct 27 22:44 java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64
  13. lrwxrwxrwx. 1 root root 34 Oct 27 22:48 java-openjdk -> /etc/alternatives/java_sdk_openjdk
  14. lrwxrwxrwx. 1 root root 21 Oct 27 22:44 jre -> /etc/alternatives/jre
  15. lrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.6.0 -> /etc/alternatives/jre_1.6.0
  16. lrwxrwxrwx. 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/jre
  17. lrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
  18. lrwxrwxrwx. 1 root root 35 Oct 27 22:44 jre-1.7.0-openjdk -> /etc/alternatives/jre_1.7.0_openjdk
  19. lrwxrwxrwx. 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/jre
  20. lrwxrwxrwx. 1 root root 27 Oct 27 22:44 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
  21. lrwxrwxrwx. 1 root root 35 Oct 27 22:44 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
  22. lrwxrwxrwx. 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/jre
  23. lrwxrwxrwx. 1 root root 29 Oct 27 22:44 jre-openjdk -> /etc/alternatives/jre_openjdk

[root@hadoop1 ~]# cat /home/hadoop/.bashrc 增加如下環境變量

  1. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
  2. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  3. export PATH=$PATH:$JAVA_HOME/bin
  4. export HADOOP_PREFIX=/opt/hadoop/current
  5. export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
  6. export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
  7. export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
  8. export HADOOP_YARN_HOME=${HADOOP_PREFIX}
  9. export HTTPS_CATALINA_HOME=${HADOOP_PREFIX}/share/hadoop/httpfs/tomcat
  10. export HADOOP_CONF_DIR=/etc/hadoop/conf
  11. export YARN_CONF_DIR=/etc/hadoop/conf
  12. export HTTPS_CONFIG=/etc/hadoop/conf
  13. export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

我們將Hadoop安裝在/opt/hadoop目錄下面,建立如下軟連接,配置文件放在/etc/hadoop/conf目錄下面

[root@hadoop1 hadoop]# ll current

lrwxrwxrwx 1 root root 21 Oct 29 11:02 current -> hadoop-2.6.0-cdh5.8.2

做好如下授權

[root@hadoop1 hadoop]# chown -R hadoop.hadoop hadoop-2.6.0-cdh5.8.2

[root@hadoop1 hadoop]# chown -R hadoop.hadoop /etc/hadoop/conf

CDH5新版本的Hadoop啟動服務腳步位於$HADOOP_HOME/sbin目錄下面,啟動服務有如下

namenode

secondarynamenode

datanode

resourcemanger

nodemanager

這裏以Hadoop用戶來進行管理和啟動Hadoop的各種服務

[root@hadoop1 etc]# cd /etc/hadoop/conf/

[root@hadoop1 conf]# vim core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://hadoop1</value>
  5. </property>
  6. </configuration>
  7. 格式化namenode
  8. [root@hadoop1 conf]# cd /opt/hadoop/current/bin
  9. [root@hadoop1 bin]# hdfs namenode -format
  10. 啟動namenode服務
  11. [root@hadoop1 bin]# cd /opt/hadoop/current/sbin/
  12. [root@hadoop1 sbin]# ./hadoop-daemon.sh start namenode
  13. [hadoop@hadoop1 sbin]$ ./hadoop-daemon.sh start datanode

查看服務啟動情況

技術分享圖片

namenode啟動完成後,就可以通過web界面查看狀態了,默認端口是50070,我們訪問測試下

技術分享圖片

大數據學習之Hadoop快速入門