大資料的簡介及Hadoop單機和分散式安裝方法1
hadoop:開源軟體,可靠的、分散式、可伸縮的大資料軟體(是一個生態體系包括但不限於:hive、spark、MR、persto、kylin)
國家提出去IOE戰略:
- IBM //ibm大、小型機
- Oracle //oracle資料庫伺服器 RAC
- EMC //EMC共享儲存裝置。
資料量的技術;目前網際網路公司產生的資料量是非常大的;比如阿里巴巴天貓和淘寶商城每天產生的資料量在600PB兩級;資料隨著時間的長短產生的價值月低;實時計算是未來的發展的趨勢。
二進位制換算公式:
機制 | K | M | G | T | P | E | Z | Y | N |
二進位 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 |
海量資料PB、RAID、磁碟陣列。
大資料解決了兩個問題:
1.儲存:分散式儲存
2.計算:分散式計算
分散式:由分佈在不同主機上的程序協同在一起,才能構成整個應用。採用的架構為:B/S:Browser / http server:瘦客戶端.
failure over //容災(這是架構師需要考慮的問題,其目的是保證業務的連續性)
fault over //容錯
雲端計算特點:
- 服務化。
- 計算資源虛擬化
- 儲存系統和網路資源虛擬機器
- PAAS(RDS、快取平臺、MQ訊息中介軟體、大資料平臺、分散式服務治理等等)
- SAAS(這個主要分行業,金融行業、交通、ERP等等)
大資料的四個V特徵:
1.volume //體量大
2.variety //樣式多.
3.velocity //速度快
4.valueless //價值密度低
hadoop四個模組:
1.common
2.hdfs
3.hadoop yarn
4.hadooop mapreduce(mr)
安裝hadoop
環境說明:在/root新建了soft;和大資料相關的軟體都放到soft
1.安裝jdk
a)下載jdk-8u65-linux-x64.tar.gz;下載地址為百度雲:https://pan.baidu.com/s/16423sIRTOupnr9hNR-x8VQ
b)tar jdk-8u65-linux-x64.tar.gz
$>mkdir /root/soft
$>rz jdk-8u65-linux-x64.tar.gz
$>tar -xzvf jdk-8u65-linux-x64.tar.gz
c)建立符號連線
$>ln -s /root/soft/jdk-1.8.0_65 /root/soft/jdk
d)驗證jdk安裝是否成功
$>cd /soft/jdk/bin(也可以進入任何目錄)
$>./java -version
配置環境變數:
1.編輯/etc/profile
$>vim /etc/profile
...
export JAVA_HOME=/root/soft/jdk
exprot PATH=$PATH:$JAVA_HOME/bin
2.使環境變數即刻生效
$>source /etc/profile
3.進入任意目錄下,測試是否ok
$>cd ~
$>java -version
示例:
#hive
export HIVE_HOME=/usr/local/hive/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
#zookeeper
export zk_HOME=/usr/local/zk
export PATH=$PATH:$zk_HOME/bin
#zookeeper
export zk_HOME=/usr/local/zk
export PATH=$PATH:$zk_HOME/bin
#jdk
export JAVA_HOME=/root/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
export HADOOP_HOME=/root/soft/hadoop
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
安裝hadoop
1.安裝hadoop
a)下載hadoop-2.7.3.tar.gz 下載Hadoop-2.7.3的百度雲地址為:https://pan.baidu.com/s/14NsDXAvO5AJraUR1sNk4ng
b)tar開
$>cd /root/soft
$>rz hadoop-2.7.3.tar.gz
$>tar -xzvf hadoop-2.7.3.tar.gz
c)建立符號連線
$>ln -s /root/soft/hadoop-2.7.3 /root/soft/hadoop
d)驗證jdk安裝是否成功
$>cd /soft/hadoop/bin
$>./hadoop version
2.配置hadoop環境變數
$>vim /etc/profile
...
export JAVA_HOME=/root/soft/jdk
exprot PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/root/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.生效
$>source /etc/profile
配置hadoop單機版和叢集配置
1.standalone(local)nothing !不需要啟用單獨的hadoop程序(單機版本資料hadoop)。
2.Pseudodistributed mode
偽分佈模式(完全分散式安裝可以本部落格中的hadoop安裝2)
a)進入${HADOOP_HOME}/etc/hadoop目錄
b)編輯core-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost(自己Linux系統下/etchostname的名字)/</value>
</property>
</configuration>
c)編輯hdfs-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
d)編輯mapred-site.xml
注意:cp mapred-site.xml.template mapred-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
e)編輯yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
啟用Hadoop
1)cd /root/soft/hadoop/sbin
2)執行:start-all.sh檔案
3)或者可以執行:start-dfs.sh和start-yarn.sh
4)成功安裝驗證
最終jps檢視有5個程序:
- namenode
- datanode
- secondnamenode
- resourcemanager
- nodemanager
如下圖所示:
配置SSH(免金鑰登入,機器多為了提高效率)
1)檢查是否安裝了ssh相關軟體包(openssh-server + openssh-clients + openssh)
- 執行命令為: yum list installed | grep ssh
- 沒有安裝openssh-server + openssh-clients + openssh
- 命令為:yum install -y openssh-server + openssh-clients + openssh
2)檢查是否啟動了sshd程序
$>ps -Af | grep sshd
3)在client側生成公私祕鑰對。
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4)生成~/.ssh資料夾,裡面有id_rsa(私鑰) + id_rsa.pub(公鑰)
5)追加公鑰到~/.ssh/authorized_keys檔案中(檔名、位置固定)
- cd ~/.ssh
- cat id_rsa.pub >> authorized_keys
6)修改authorized_keys的許可權為644。
$>chmod 644 authorized_keys(644 rw-r--r--)給authorized_keys賦許可權
7)測試
$>ssh localhost
8)這些操作的目的是多臺機器免密碼登入,其目的在後面scp傳輸檔案的時候不用輸入密碼