1.下載tag軟件包后,我習慣放到software文件夾下,並建立app文件夾
2.通過tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/app/ 命令解壓到app目錄下
3.配置環境變量:通過vim ~/.bash_profile進行編輯
export HADOOP_HOME=/home/安裝目錄/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
4.使用source命令使修改立即生效source ~/.bash_profile,打印出環境變量:echo $HADOOP_HOME
5.在etc/hadoop目錄下 vim hadoop-env.sh,配置export JAVA_HOME=/usr/lib/jvm/java-8-oracle
6.在etc/hadoop目錄下 vim core-site.xml 配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://主機名:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/目錄/app/tmp</value>
</property>
</configuration>
7.在etc/hadoop目錄下 vim hdfs-site.xml 配置
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/目錄/app/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/目錄/app/tmp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
8.在etc/hadoop目錄下沒有mapred-site.xml文件需要通過拷貝一個 mapred-site.xml.template cp mapred-site.xml.template mapred-site.xml 並使用vim mapred-site.xml進行編譯
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9.在etc/hadoop目錄下 vim yarn-site.xml 配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
以上配置完成后需要的NameNode進行格式化
操作位置:hadoop的安裝目錄下bin文件夾執行./hdfs namenode -format或者./hadoop namenode -format
注意:啟動HDFS后,如果沒有namenode節點或datanode節點,需要刪除tmp目錄下的所有文件之后重新格式化,另重新啟動linux系統后hdfs不會啟動。
因為Hadoop集群分布時需要設置SSH免密碼登陸
/.ssh/id_rsa.pub ~/.ssh/authorized_keys
查看主機名:hostname可以查看到當前主機的主機名
另:刪除用戶:sudo userdel -r 用戶名
判斷是否真正刪除:cat /etc/passwd,中沒有用戶信息
ifconfig查看IP地址確定對應的主機名
sudo vi /etc/hosts,如果IP地址修改,需要對應上
啟動hdfs:在hadoop/sbin/目錄下./start-dfs.sh,會有3個進程namenode,datanode,secondarynamenode
HDFS的web訪問方式:http://hadoop(主機名):50070
然后通過jps驗證3個節點是否啟動成功,然后使用命令hadoop -fs -ls /查看目錄是否存在。
啟動yarn:在hadoop/sbin/目錄下./start-yarn.sh,會有2個進程resourcename,nodemanager,通過jps驗證2個節點是否啟動成功
web訪問yarn方式:http://hadoop(主機名):8088
hadoop包括3部分:HDFS,YARN,MapReduce
2、什么是hadoop?
一個分布式系統基礎架構,充分利用集群的高速運算和存儲。
Hadoop Distributed File System(HDFS) 分布式存儲
YARN是資源調度平台
MapReduce是分布式計算
3、企業選擇Hadoop作為大數據平台的原因?
1)源碼開放
2)社區活躍、參與者眾多
3)設計到分布式存儲和計算:
Flume進行數據采集
Spark/MR/Hive數據處理
HDFS/HBase數據存儲
4)已經得到企業的驗證
4、HDFS設計目標
非常巨大的分布式文件系統
運行在普通的廉價的硬件上
易擴展、為用戶提供性能不錯的文件存儲服務
5、HDFS架構
1、Master(NameNode/NN) 對應 N個Slaves(DataNode/NN)
2、一個文件會被拆分成多個塊(Block)
默認:128M
例: 130M ==> 128M + 2M
3、NameNode、DataNode負責內容:
NN:
1)負責客戶端請求的響應
2)負責元數據(文件名稱、副本系數、Block存放的DN)的管理
DN:
1)存儲用的文件對應的數據塊(Block)
2)定期向NN發送心跳信息(默認3秒),匯報本身及其所有的Block信息,健康狀況
4、 重要提示:
A typical deployment has a dedicated machine that runs only the NameNode software.
Each of the other machines in the cluster runs one instance of the DataNode software.
The architecture does not preclude running multiple DataNodes on the same machine
but in a real deployment that is rarely the case.
一個典型的部署有一個專用的機器,它只運行NAMENODE軟件。
群集中的每個其他機器運行DATEAON軟件的一個實例。
架構不排除在同一台機器上運行多個數據流。
但在實際部署中,情況很少。 #不建議這種操作
NameNode + N個DataNode
建議:NameNode、DataNode分布在單獨的節點中
2)replication factor 副本系數、副本因子
3)All blocks in a file except the last block are the same size
除了最后一個塊之外,文件中的所有塊都是相同大小的
HDFS相關配置:
hadoop-env.sh,core-site.xml,hdfs-site.xml3個配置文件進行修改
機器參數配置
hostname:主機名
修改機器名:/etc/sysconfig/network
NETWORK=yes
HOSTNAME=主機名
設置IP和hostname的映射關系:IP地址:主機名
SSH免密碼登錄:
ssh-keygen -t rsa
5、HDFS優缺點
優點:
高容錯
適合批處理
適合大數據處理
可構建在廉價機器上
缺點:
低延遲訪數據訪問
不適合小文件存儲
6、MapReduce
1、特點
1)易於編程
2)良好的擴展性
3)高容錯性
4)海量數據的離線處理
2、不擅長場景
1)實時計算
2)流式計算
3)DAG(有向無環圖)計算