天天看點

大資料之hadoop

一、大資料

大資料:解決海量資料問題的技術。大資料由巨型資料集組成,把資料集合并進行分析可得出許多額外的資訊和資料關系性。

大資料是指無法在一定時間内用正常軟體工具對其内容進行抓取、管理和處理的資料集合。

大資料技術是指從各種各樣類型的資料中,快速獲得有價值資訊的能力,适用于大資料的技術,包括大資料技術包括大規模并行處理資料庫,資料挖掘電網,分布式檔案系統,分布式資料庫,雲計算平台,網際網路和可擴充的存儲系統。

大資料的特性:

大體量:可從數百tb到數十數百pb、甚至eb的規模

多樣性:大資料包括各種形式的形态的資料

時效性:需要在一定的時間限度下得到及時的處理

準确性:處理的結果要保證一定的準确性

大價值:大資料包含很多深度的價值,大資料分析挖掘和利用将帶來巨大的商業價值

二、hadoop

hadoop是一種分析和處理海量資料的軟體平台,是一款開源軟體,使用java開發,可以提供一個分布式基礎架構

hadoop特點:高可靠性、高擴充性、高效性、高容錯性、低成本

hadoop常用元件:

-hdfs(hadoop分布式檔案系統)

-mapreduce(分布式計算架構)

-zookeeper(分布式協作服務)

-hbase(分布式列存資料庫)

-hive(基于hadoop的資料倉庫)

-sqoop(資料同步工具)

-pig(基于hadoop的資料流系統)

-mahout(資料挖掘算法庫)

-flume(日志收集工具)

hadoop核心元件:

-hdfs:分布式檔案系統

-yarn:叢集資源管理系統

-mapreduce:分布式計算架構

hdfs角色及概念

-namenode:master節點,管理hdfs的名稱空間和資料塊映射資訊,配置副本政策,處理所有用戶端請求。

-secondary namenode:定期合幵 fsimage 和fsedits,推送給namenode,緊急情況下,可輔助恢複namenode

-datanode:資料存儲節點,存儲實際的資料,彙報存儲資訊給namenode。

-client:切分檔案,通路hdfs,與namenode互動,擷取檔案位置資訊,與datanode互動,讀取和寫入資料。

hadoop的部署模式有三種:

-單機

-僞分布式(所有角色裝一台機器上)

-完全分布式(不同角色裝不同機器)

三、單機模式:

1.擷取軟體

http://hadoop.apache.org

下載下傳:hadoop-2.7.6.tar.gz

解壓:tar -xf hadoop-2.7.6.tar.gz

安裝:mv hadoop-2.7.6

2.安裝java環境,jps工具

yum -y install java-1.8.0-openjdk

yum -y install java-1.8.0-openjdk-devel

3.設定環境變量

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

export java_home="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"

export hadoop_conf_dir="/usr/local/hadoop/etc/hadoop"

分析單詞出現的次數

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount oo xx

四、完全分布式:

-分布式檔案系統:是指檔案系統管理的實體存儲資源不一定直接連接配接在本地節點上,而是通過計算機網絡節點相連,分布式檔案系統的設計基于客戶機/伺服器模式;分布式檔案系統可以有效解決資料的存儲和管理難題,将固定于某個地點的某個檔案系統,擴充到任意多個地點/多個檔案系統,衆多的節點組成一個檔案系統網絡,每個節點可以分布在不同的地點,通過網絡進行節點間的通信和資料傳輸。

叢集組建條件:

all: 能互相 ping 通 (配置 /etc/hosts)

all: 安裝 java-1.8.0-openjdk-devel

nn1: 能 ssh 免密登入所有叢集主機,包括自己(不能提示輸入 yes)

ssh 免密登入:部署 sshkey

不輸入 yes:修改 /etc/ssh/ssh_config

60行添加 stricthostkeychecking no

配置檔案格式

<property>

<name></name>

<value></value>

<description></description>

</property>

配置檔案參考網址http://hadoop.apache.org

cd /usr/local/hadoop/etc/hadoop

1.配置環境變量檔案hadoop-env.sh(參見三、3)

2.核心配置檔案core-site.xml

vim core-site.xml

<configuration>

<name>fs.defaultfs</name>

<value>hdfs:///nn01:9000</value>

<name>hadoop.tmp.dir</name>

<value>/var/hadoop</value>

</configuration>

在所有主機上建立/var/hadoop

2.完全分布式配置hdfs-site.xml

vim hdfs-site.xml

<name>dfs.datanode.http-address</name>

<value>nn01:50070</value>

<name>dfs.namenode.secondary.http-address</name>

<value>nn01:50090</value>

<name>dfs.replication</name>

<value>2</value>

3.配置slaves

vim slaves

node01

node02

node03

4.同步配置到所有主機

5.格式化 namenode (nn01上操作)

./bin/hdfs namenode -format

6.啟動叢集 (nn01上操作)

./sbin/start-dfs.sh

停止叢集可以使用 ./sbin/stop-dfs.sh

7.驗證角色 jps (所有主機操作)

8.驗證叢集是否組建成功 (nn01上操作)

./bin/hdfs dfsadmin -report

服務啟動日志路徑 /usr/local/hadoop/logs

繼續閱讀