大資料基礎學習-1.CentOS-7.0環境安裝

閒人勿-發表於2018-04-23

一、CentOS7系統安裝和基礎配置

1.安裝CentOS7

1)在電腦上安裝虛擬機器軟體VMworkstation12pro,並準備CentOS-7.0-1406-x86_64-DVD.iso映象檔案。

2)開啟VMware,新建虛擬機器,選擇自定義安裝。





這裡可以將虛擬機器命名,儲存的路徑可以自定義。


接下來都選擇預設,並點選下一步。

3)開啟虛擬機器


4)選擇語言後,進行手動分割槽。



點選安裝位置。


選擇“我要配置分割槽“,點左上角的“完成”,進入下面的介面。分割槽方案選擇“標準分割槽”,並開始掛載分割槽,點選左下方“+”。


將/boot分割槽設為200M,檔案系統方式為ext4,如圖。



同理:將/home目錄設定為2G,檔案系統方式為ext4,將swap分割槽設為2G,檔案系統方式為swap。最後,給根分割槽/分配剩餘的全部空間,檔案系統方式為ext4。


分配完後,單擊左上角的“完成”,出現如下介面,接受更改。


6)分割槽配置完成後,點選安裝,在這個過程中配置ROOT密碼。


注意:這裡安裝的是mini版本,即命令列模式,如果希望想安裝桌面外掛,按照如下操作。

[root@master ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0 is already mounted or /mnt busy
       /dev/sr0 is already mounted on /mnt

確保centos7的映象包已經掛載進來,如果發現映象沒有掛載進來,點選虛擬機器右下角的光碟圖示,選擇設定,將ISO映象檔案掛載進來,再點選連線。


[root@master~]# yum -y groupinstall "Server with GUI"

安裝完成後,執行下面命令,啟動桌面。

[root@master~]# startx

【安裝好後,一般會直接進入桌面。如果出現了黑白的協議頁面,按下'1'為閱讀協議,‘q’為退出,‘c’繼續,‘r’重新整理。首先鍵入‘1’,閱讀協議,接著鍵入‘2’,accept接受協議,接著鍵入‘c’,繼續。之後再彈出的協議許可,直接按一系列的‘c’和回車即可。】

2.網路配置

1)點選虛擬機器,選擇設定,彈出如下視窗,點選網路介面卡,選擇NAT模式。

2)點選虛擬機器的‘編輯’,選擇‘虛擬網路編輯器’,彈出如下視窗,選擇VMnet8,並點選‘更改設定’。


彈出如下視窗,選擇VMnet8,點選NAT設定。


彈出如下視窗,記住子網IP和閘道器,設定虛擬機器的IP將會用到這兩個資訊(當然,你也可以設定其他值)。


3)進入系統,輸入命令ifconfig檢視網路卡ip資訊【不同電腦ip或者網路卡情況會有所不同】。

[root@master ~]# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 8132712  bytes 2582460617 (2.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8132712  bytes 2582460617 (2.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

為了能夠通過遠端工具連線,這裡需要設定靜態ip地址,並設定開機啟動。

[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
#BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes #開機啟動
IPADDR0=192.168.101.101 #這裡的ip需要和虛擬網路編輯器中檢視的子網ip對應起來,保持前三位一致
PREFIX0=24 #子網掩碼 等同於255.255.255.0
GATEWAY0=192.168.101.2 #閘道器
DNS1=114.114.114.114 #DNS服務

儲存退出後,並重啟網路卡。

[root@master ~]# service network restart
Restarting network (via systemctl):                        [  確定  ]
[root@master ~]# ping wwww.baidu.com
PING ps_other.a.shifen.com (220.181.57.217) 56(84) bytes of data.
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=1 ttl=128 time=48.5 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=2 ttl=128 time=41.8 ms

說明網路卡正常,能正常訪問網路,為了能夠方便訪問虛擬機器,可以選擇xshell軟體進行遠端連線。


4)配置主機名稱,關閉防火牆。

編輯~/.bashrc,並新增如下內容

[root@master ~]# vim ~/.bashrc
#iptables -F #清除預設表filter中所有規則鏈中的規則,centos7中防火牆預設不是這個。
#setenforce 0 #表示關閉selinux防火牆
hostname masteractive #配置主機名
# systemctl stop firewalld.service  # 關閉防火牆
# systemctl status firewalld  # 檢視防火牆狀態, inactive 表示關閉

5)配置host

[root@masteractive ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.101.101 masteractive 
192.168.101.102 masterstandby
192.168.101.103 slave1
192.168.101.104 slave2

3.安裝vim

因為centos7沒有安裝vim,所以需要額外安裝。

[root@master ~]# rpm -qa | grep vim
vim-minimal-7.4.160-1.el7.x86_64
vim-common-7.4.160-2.el7.x86_64
vim-enhanced-7.4.160-2.el7.x86_64
vim-filesystem-7.4.160-2.el7.x86_64

若vim已經正確安裝,則會顯示上面幾個包的名稱,如果缺少了其中某個,執行:yum -y install +缺少的包名,下載安裝該包即可。(注:執行  yum install vim -y 可一鍵自動安裝)

4.構建叢集

重複上述虛擬機器安裝和配置操作,再建立3臺虛擬機器作為從節點,主機名和ip地址如下。建立4臺虛擬機器的目的是為了在學習Hadoop2.0時,搭建高可用的叢集。在學習時,一般不會用到這麼多臺機器,1臺虛擬機器搭建偽分散式即可。

192.168.101.102 masterstandby
192.168.101.103 slave1 
192.168.101.104 slave2 

【當然,也可以採用複製虛擬機器或者克隆的方式產生多臺虛擬機器,但由於是複製操作,虛擬機器網路卡將會一模一樣,MAC值將會重複,導致不能上網,需要再手動修改,解決辦法這裡就不展開了。如果修改不成功再查詢原因將耗費更多時間,得不償失,建議直接安裝,可以當做練手。】

5.ssh免密登入

建立每臺機器的互信關係,使得每臺機子之間登入不需要密碼。

[root@master src]# ssh-keygen    #然後回車然後回車(回兩次車)
[root@master src]# cd ~/.ssh/
[root@master .ssh]# ll
total 16
-rw-r--r--. 1 root root1179 Jan 30 08:05 authorized_keys
-rw-------. 1 root root1675 Jan 30 08:00 id_rsa
-rw-r--r--. 1 rootroot  393 Jan 30 08:00 id_rsa.pub
-rw-r--r--. 1 root root1971 Jan 30 08:07 known_hosts

Id_rsa.pub是共鑰檔案,id_rsa是金鑰檔案,將id_rsa.pub檔案內容拷貝給authorized_keys(注:如果沒有authorized_keys這個檔案,需先建立),在其他節點上同理操作,並將其他節點上Id_rsa.pub檔案裡面的內容全部拷貝到主節點的authorized_keys中,masteractive節點再將最終的authorized_keys分發給其他節點

[root@master .ssh]# scp -rp authorized_keys slave1:~/.ssh/  #同理拷貝給slave2和masterstandby
[root@master .ssh]# ssh slave1    #第一次可能會要求輸入密碼,輸入密碼回車後登入到從節點,第二次將會自動登入

二、安裝jdk1.8

1.安裝jdk-8u144-linux-x64

通過xshell的Xftp外掛(需要安裝xftp),將jdk-8u144-linux-x64.tar.gz拖到/usr/local/src/目錄下(當然也可根據習慣採用其他目錄)。


[root@master src]# tar xvzf jdk-8u144-linux-x64.tar.gz #安裝jdk

2.配置環境變數

在~/.bashrc檔案的底部新增java環境變數:

[root@master src]# vim ~/.bashrc
export JAVA_HOME=/usr/local/src/jdk1.8.0_144
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@master src]# source ~/.bashrc   #生效一下
[root@master src]# scp -rp jdk1.8.0_144 masterstandby:/usr/local/src/  #同理將jdk分發到slave1和slave2,路徑保持一致,再分別給masterstandby、slave1和slave2配置環境變數。

三、hadoop2.0 安裝

基礎環境準備完畢後,開始大資料的基礎學習,首先安裝的就是hadoop-2.6.0-cdh5.7.0(採用cdh的原因是版本比較穩定)。

http://archive.cloudera.com/cdh5/cdh/5/

[root@masterstandby src]# yum install -y wget #如果沒有wget命令就安裝一下
[root@masterstandby src]# wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz #下載Hadoop

1.安裝hadoop-2.6.0-cdh5.7.0.tar.gz

[root@master src]# tar xvzf hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master src]# cd hadoop-2.6.0-cdh5.7.0/
[root@master hadoop-2.6.0-cdh5.7.0]# mkdir tmp 

2.修改配置檔案

[root@master hadoop-2.6.0-cdh5.7.0]# cd etc/hadoop

1)core-site.xml

<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/src/hadoop-2.6.0-cdh5.7.0/tmp</value>
        </property>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://masteractive:9000</value>
        </property>
</configuration>

預設的hadoop.tmp.dir是/tmp/hadoop-${user.name},此時有個問題就是NameNode會將HDFS的後設資料儲存在這個/tmp目錄下,如果作業系統重啟了,系統會清空/tmp目錄下的東西,導致NameNode後設資料丟失,應該修改這個路徑。

fs.default.name是namenode的RPC互動埠,預設是8020,這裡改成9000是為了今後在spark中不會有埠衝突的問題。

2)hadoop-env.sh

export JAVA_HOME=/usr/local/src/jdk1.8.0_144  #新增java路徑

3)mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

指定mapreduce執行在yarn框架上。

4) hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
</configuration>

dfs.replication配置HDFS儲存時資料的備份數量。

5)yarn-env.sh

export JAVA_HOME=/usr/local/src/jdk1.8.0_144 #配置jdk路徑

6)yarn-site.xml

<configuration>
	<property> 
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>masteractive</value>
        </property>
</configuration>

NodeManager上執行的附屬服務,需配置成mapreduce_shuffle,才可執行MapReduce程式。yarn.resourcemanager.hostname指定了Resourcemanager執行在哪個節點上。

7)slaves

masteractive
masterstandby
slave1
slave2

如果要配置偽分散式,主節點masteractive也作為slave節點。

8)分發hadoop到從節點

[root@masteractive src]# scp-rp hadoop-2.6.0-cdh5.7.0 slave1:/usr/local/src/ #同理傳送給slave2和masterstandby

9)配置hadoop環境變數

export HADOOP_HOME=/usr/local/src/hadoop-2.6.0-cdh5.7.0
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin

3.啟動hadoop

格式化hdfs檔案系統,啟動hadoop叢集

[root@masteractive bin]# ./hadoop namenode -format
[root@masteractive hadoop-2.6.0-cdh5.7.0]# ./sbin/start-all.sh
[root@masteractive hadoop]# jps
118561 DataNode
118446 NameNode 

【注:有時候會發現DataNode未啟動的問題,這很可能是clusterid的問題,因為如果多次格式化namenode,會導致主從的clusterid不一致。解決方法:刪除tmp目錄,目的是刪除裡面dfs資料夾下的data和name目錄,之後再建立tmp目錄,重新格式化即可。】

如果遇到主機無法用域名ping通虛擬機器的問題,則修改C:\Windows\System32\drivers\etc的hosts,新增內容如下:

192.168.101.101 masteractive masteractive


到這裡,就把hadoop的虛擬機器環境搭建起來了,再繼續學習時,將會安裝其他元件,例如zookeeper、hive、HBASE、flume、kafka、storm、spark等等,在學習這些元件時,都有詳細安裝說明。

相關文章