hadoop簡介
Apache Hadoop軟件庫是一個框架,允許使用簡單的編程模型跨計算機集羣分佈式處理大型數據集。它旨在從單個服務器擴展到數千臺計算機,每臺計算機都提供本地計算和存儲。該庫本身不是依靠硬件來提供高可用性,而是設計用於檢測和處理應用層的故障,從而在計算機集羣之上提供高可用性服務,每個計算機都可能容易出現故障。
hadoop的思想之源來源於Google在大數據方面的三篇論文
GFS => HDFS
MapReduce => MapReduce
BigTable => HBase
hadoop的優勢:
1)高可靠性:
因爲Hadoop假設計算元素和存儲會出現故障,因爲它維護多個工作數據副本,在出現故障時可以對失敗的節點重新分佈處理。
2)高擴展性:
在集羣間分配任務數據,可方便的擴展數以千計的節點。
3)高效性:
在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。
4)高容錯性:
自動保存多份副本數據,並且能夠自動將失敗的任務重新分配。
Hadoop組成:
1)MapReduce(計算):一個分佈式的離線並行計算框架。
2)Yarn(資源調度):作業調度與集羣資源管理框架。
3)HDFS(數據存儲):一個高可靠,高吞吐量的分佈式文件系統。
4)common(輔助工具類):支持其他模塊的工具模塊(Configuration、RPC、序列化機制、日誌操作)。
hadoop安裝
說明:
使用3臺虛擬機服務器
分別是:10.1.255.121,10.1.255.1212 ,10.1.255.123
ip配置:https://blog.csdn.net/weixin_39806100/article/details/86628013
域名配置
vi /etc/hosts
bigdata121 10.1.255.121
bigdata122 10.1.255.122
bigdata123 10.1.255.123
下載地址:
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
1,上傳解壓
我這裏的解壓目錄爲:/opt/moudle/hadoop-2.7.3
2,環境變量
vi /etc/profile
添加如下內容
export HADOOP_HOME=/opt/moudle/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使配置生效
source /etc/profile
3,配置hadoop
cd /opt/moudle/hadoop-2.7.3/etc/hadoop
(1)vi hadoop-env.sh (用於指定jdk路徑)
JDK安裝
添加
export JAVA_HOME=/opt/moudle/jdk1.8.0_181
(2)vi core-site.xml (hadoop全局配置)
<configuration>
<!-- 配置HDFS主節點,namenode的地址,9000是RPC通信端口 -->
<property>
<name>fs.default.name</name><!-- fs.defaultFS -->
<value>hdfs://bigdata121:9000</value>
</property>
<!-- 配置HDFS數據塊和元數據保存的目錄,一定要修改 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moudle/hadoop-2.7.3/tmp</value>
</property>
</configuration>
(3)vi hdfs-site.xml (HDFS配置)
<configuration>
<!-- 數據塊的冗餘度,默認是3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- SecondaryNameNode配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata121:50090</value>
</property>
<!-- 配置HDFS的權限檢查,默認是true -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(4)vi mapred-site.xml (配置MR程序運行的框架,默認沒有)
cp mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 配置MR程序運行的框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)vi yarn-site.xml(配置Yarn)
<configuration>
<!-- 配置Yarn的節點 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata121</value>
</property>
<!-- NodeManager執行MR任務的方式是Shuffle洗牌 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(6)vi slaves (配置從節點)
bigdata122
bigdata123
(7)通過HDFS namenode格式化
hdfs namenode -format
成功日誌:
Storage directory /opt/moudle/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
4,scp 拷貝
scp -r /opt/moudle/hadoop-2.7.3/tmp/ root@bigdata122:/opt/moudle/hadoop-2.7.3/tmp/
scp -r /opt/moudle/hadoop-2.7.3/tmp/ root@bigdata122:/opt/moudle/hadoop-2.7.3/tmp/
5,ssh免密登錄
#生成鑰匙對
ssh-keygen -t rsa
#將公鑰拷貝到其它兩臺機器上
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata121
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata122
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata123
其它兩臺機器重複上面的操作。
6,啓動
cd /opt/moudle/hadoop-2.7.3/sbin
#啓動
./start-all.sh
#停止
./stop-all.sh
7,查看java進程
jps
顯示結果如下
主節點
7283 Jps
7013 ResourceManager
6859 SecondaryNameNode #第二節點
6670 NameNode #名稱節點
從節點
4244 DataNode #數據節點
4469 Jps
4351 NodeManager
8,web訪問:
yarn:
http://10.1.255.121:8088
hdfs:
http://10.1.255.121:50070
hadoop運行wordcount 案例
cd /opt/moudle/hadoop-2.7.3/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/a.txt ~/temp/out