簡介:
關於完整分布式請參考: hadoop2.8 ha 集群搭建 【七台機器的集群】
Hadoop:(hadoop2.8)
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了 (relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。 -----來自google
hadoop安裝模式:
hadoop安裝模式有三種,本節重點介紹偽分布式的安裝配置和啟動。
第一種是本地(獨立)模式: 本地模式沒啥意義,大家可以作為一個入門的參考。
第二種是偽分布式集群: 在物理機不允許的情況下,用單機模擬集群的效果
第三種是完全分布式集群: 搭建完成分布式集群,為業務進行服務,具有高容錯,高性能,高冗余等特點。后面我會再詳細介紹
hadoop偽分布式搭建:
第一步:准備工作
centos下載: 下載適合自己的版本
本機已經安裝好VMware和xshell。我已經在虛擬機上創建一個centos作為此次安裝的環境。我采用的是centos7.
注意: 我在這選擇的centos7的mini版本。可以選擇完整版本centos.不過完整版本太大。我就用mini版本演示,mini版本里面很多軟件都需要自己安裝,所以我也會把我安裝的步驟貼出來給大家做個分享。
第二步:啟動虛擬機hadoop_yang
啟動虛擬機后我要做一些調整.
1> 查看ip 使用ifconfig命令,但是會報錯,因為我這是mini版本,沒安裝這些。沒關系,我來安裝一下:(完整版本就已經安裝好了,就不需要下面這步了)
2> xshell連接到這個hadoop_yang上;
3> 修改主機名和關閉防火牆。[ 保存退出 :wq! 或者 shift + zz ]
修改主機名:vi /etc/sysconfig/network
將HOSTNAME=localhost改為HOSTNAME=yang 保存退出
修改主機名與IP映射文件:vi /etc/hosts
添加192.168.146.137 yang 保存退出
修改完成后重啟生效:
關閉防火牆,為了可以在搭建完成后我們可以訪問其端口。如果不想關閉防火牆,可以打開我們要訪問的端口即可。隨自己喜好吧。我在這就直接關閉防火牆進行演示。
1》systemctl stop firewalld 關閉防火牆
2》systemctl status firewalld 查看防火牆狀態
3》 systemctl start firewalld 開啟防火牆
4》 systemctl disable firewalld 禁止防火牆隨機啟動
上面是關閉防火牆,還可以在開啟某一個訪問端口:vi/etc/sysconfig/iptables 這個前提要安裝iptables.就不演示了。
4> SSH設置和密鑰生成
SSH設置需要在集群上做不同的操作,如啟動,停止,分布式守護shell操作。認證不同的Hadoop用戶,需要一種用於Hadoop用戶提供的公鑰/私鑰對,並用不同的用戶共享。
下面的命令用於生成使用SSH鍵值對。復制公鑰形成 id_rsa.pub 到authorized_keys 文件中,並提供擁有者具有authorized_keys文件的讀寫權限。
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys 【可以不加】
第三步:上傳需要軟件[安裝lrzsz]
jdk1.8 ,hadoop2.8 【我已經下載好這些了】
1》到這准備工作已經基本完成,我要在root超級用戶下創建一個我們搭建集群的用戶。hadoop
2》配置hadoop用戶的sudo命令。參考我的博客:sudo的安裝
3》切換到hadoop用戶上。我們來安裝hadoop的偽分布式。
4》上傳軟件
先安裝lrzsz插件
到這,我們已經通過命令把jdk和hadoop上傳到了/home/hadoop的家目錄下了。
第四步:安裝jdk和hadoop:
1>解壓jdk,並移動到 /usr/local 下 修改名稱為jdk1.8
解壓
重命名
移動到指定文件夾
查看移動效果:
配置java環境變量: vi ~/.bashrc [用戶的] 或者 /etc/profile [系統的] 在這我就配置用戶級別的。系統的全局有效。不明白這個范圍的可以上網查一下。我就不詳細介紹了。
source ~/.bashrc 讓配置生效。
然后java -version 驗證java配置是否成功。
2> hadoop的配置:(修改hadoop/etc/hadoop下的配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml))
jdk是hadoop的基礎。安裝好jdk后,我們來配置hadoop。首先解壓hadoop。我在local下創建一個hadoop文件夾,后期hadoop的其他插件我也會放在這個文件夾中。
執行命令 sudo tar -zxvf hadoop----tgz -C /usr/local/hadoop -C參數,是直接解壓到指定文件夾。
配置環境變量:
還可以加上這些屬性:
export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
source ~/.bashrc 讓配置生效。
1》修改hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8
2》
第五步:格式化啟動
1>格式化hdfs(只能格式化一次)
cd $HADOOP_HOME/bin
hdfs namenode -format
2>啟動hadoop
cd $HADOOP_HOME/sbin
啟動hdfs
start-dfs.sh
啟動yarn
start-yarn.sh
啟動historyserver
mr-jobhistory-daemon.sh start historyserver
web驗證:(打開表示啟動成功)
驗證hdfs啟動狀態:http://yang:50070/
驗證yarn啟動狀態:http://yang:8088/
驗證啟動狀態:http://yang:19888/