大數據已是當今這個時代很是很是熱的一個技術方向,全部的行業都在利用大數據提高業務,包括不少的實體行業,製造企業,都但願利用現有的數據、亦或是能夠爬取的數據。挖掘出更多的商業價值。曾經個人駕校教練就和我說過一個場景,能不能利用大數據和人工智能的技術手段,來分析當地有比較大意向想要學車,考駕照,買車的人。而後把駕校的招生信息或者廣告直接經過必定的渠道(短信、郵件、電話、某某貼吧、論壇、app等等方式),推送給意向準客戶。咱們都知道任何的技術項目,研發就是爲了提高業務下降成本,特別是傳統的研發,下降成本就是最最核心的目的。由於前期的:市場調研、業務產品規劃、戰略部署等更多的是拓展市場以及競爭對手的分析。有點扯遠了。回到大數據,首先得有一個好的框架工具,那就是今天要介紹的Hadoop。同時要基於Hadoop來作大數據開發,就必須把環境給搭建起來。html
VMware的安裝就不說了,很簡單下一步、下一步就行了。 下載地址:www.vmware.com/products/wo… VMware 14的版本,我用的是windows版本。java
CentOS使用6.5的版本node
CentOS 鏡像選擇 web
硬盤大小配置 apache
自定義硬件配置vim
等待完成安裝windows
NAT網絡配置bash
接下來配置虛擬機的網絡,點擊編輯---選擇「虛擬網絡編輯器」服務器
ip:192.168.241.0、 子網掩碼:255.255.255.0、 網關:192.168.241.2網絡
這些後面配置的時候都須要用到,先作一個記錄
終端輸入命令:
進入cd /etc/sysconfig/network-scripts
vim ifcfg-eth0
將ip、子網掩碼、網關等信息輸入並保存
輸入/etc/init.d/network restart,重啓網絡服務。
ping www.baidu.com, 以下圖表示能夠訪問網絡。
直接操做VM虛擬機着實麻煩,使用SecureCRT命令行神器,鏈接虛擬機,能夠很方便的操做。 安裝好SecureCRT後,打開Session Manager-->New Session-->降master的機子的ip作爲host輸入,用戶名是你配置的。鏈接的時候會要求輸入密碼,單機save password,方便之後鏈接無需再次輸入密碼。
很簡單,先掛起master主節點虛擬機,而後找到虛擬機本地磁盤的路徑文件夾,複製兩個文件夾並重命名以下圖:
一樣的,在SecureCRT中,新建兩個從節點的session機器。步驟和3master的同樣。
jdk我用的是 1.8版本,這個能夠去oracle官方下載。首先要將Windows下的文件拷貝到CentOS中,須要有一個共享文件夾。 選擇電腦小圖標設置,在選項的共享文件夾,啓用文件共享並添加共享文件。
經過 cp拷貝命令將jdk1.8的壓縮包拷貝到/usr/local/src/java目錄下,首先建立java目錄:
mkdir /usr/local/src/java
cp jdk* /usr/local/src/java
拷貝完成後,進入/usr/local/src/java經過tar -zxvf jdk*命令解壓jdk的壓縮包。
編輯配置jdk環境變量
vim ~/.bashrc
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_181
export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
export PATH=:$PATH:$JAVA_HOME/bin
source ~/.bashrc更新環境變量文件(這個文件表示當前用戶組的環境變量)
配置從節點jdk及其環境變量
把解壓的jdk文件拷貝到另外兩個從節點:
在/usr/local/src/hadoop/hadoop-2.6.1目錄下新建tmp文件夾、dfs/name、dfs/data等文件夾。
修改配置文件:
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152
vim yarn-env.sh
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152
vim slaves
slave1
slave2
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.241.10:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/tmp</value>
</property>
</configuration>
複製代碼
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/data</value>
</property>
<property>
<name>dfs.repliction</name>
<value>3</value>
</property>
</configuration>
複製代碼
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
複製代碼
vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
複製代碼
將hadoop加入環境變量
vim ~/.bashrc
export HADOOP_HOME=/usr/local/src/hadoop/hadoop-2.6.1
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bashrc 更新環境變量
將三臺機器的網絡配置到各自的/etc/hosts文件中。
192.168.241.10 master
192.168.241.11 slave1
192.168.241.12 slave2
同時將三臺機器的域名:master、slave一、slave2配置到網絡文件中
vim /etc/sysconfig/network
HOSTNAME=master
HOSTNAME=slave1
HOSTNAME=slave2
並使用hostname和bash命令而後上面域名生效,以下圖:
關閉全部機器節點的防火牆,避免啓動hadoop出現沒必要要的錯誤,難以排查問題
/etc/init.d/iptables stop
setenforce 0
創建機器節點間的互信免密登陸
ssh-keygen
cd ~/.ssh (進入隱藏的ssh目錄)
將id_rsa.pub公鑰文件中的加密字符串拷貝到authorized_keys文件中。
將其它節點機器的ssh的id_rsa.pub公鑰文件中的加密字符串拷貝到authorized_keys文件中。這裏個人集羣有三臺節點機器,那就authorized_keys文件中有三個加密字符串,以下圖:
驗證是否經過ssh互信免費登陸成功
ssh slave1
啓動集羣,初始格式化Namenode
hadoop namenode -format
./start-all.sh
檢查集羣進程是否都起來
jps命令
master
![]()
slave1
![]()
slave2
![]()
這樣表示hadoop分佈式集羣環境搭建成功!!!