1. 程式人生 > >【大資料】安裝偽分散式Hadoop叢集

【大資料】安裝偽分散式Hadoop叢集

壓縮包: eclipse-jee-photon-R-linux-gtk-x86_64.tar.gz hadoop-2.9.1.tar.gz jdk-10.0.1_linux-x64_bin.tar.gz

配置主機名和網路

配置主機名:

#hostnamectl set-hostname bigdata

配置網路:

#vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=03063201-19aa-4cdf-8478-9c19a44a746e
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

關閉防火牆並設定開機不自啟(centos7+)

[[email protected] ~]# firewall-cmd --state
running
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[
[email protected]
~]# firewall-cmd --state not running

配置檔案設定DNS(/etc/resolv.conf)

新增 nameservcer 8.8.8.8 儲存退出

配置主機名對映

新增 192.168.0.100 bigdata 儲存退出

建立資料夾

#mkdir /software 上傳jdk、hadoop、eclipse(Java EE)到/software

解壓

建立資料夾:

#mkdir /tools

#mkdir /tools/java

#mkdir /tools/hadoop

解壓jdk:

#cd /software

#tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz -C /tools/java

解壓hadoop:

#cd /software

#tar -zxvf hadoop-2.9.1.tar.gz -C /tools/hadoop

配置java、hadoop環境變數

配置java環境變數

#vi /etc/profile

在最後新增

#JAVA_HOME export JAVA_HOME=/tools/java/jdk-10.0.1 export PATH=PATH:PATH:JAVA_HOME/bin 儲存退出

生效環境變數:#source /etc/profile

配置hadoop環境變數

#vi /etc/profile
在export JAVA_HOME=/tools/java/jdk-10.0.1後面新增
export HADOOP_HOME=/tools/hadoop/hadoop-2.9.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
儲存退出

生效環境變數:#source /etc/profile

修改hadoop配置檔案

偽分散式需要修改5個配置檔案

#cd /tools/hadoop/hadoop-2.9.1/etc/hadoop

#第27行 export JAVA_HOME=/tools/java/jdk-10.0.1

第二個:core-site.xml

指定hadoop執行時產生檔案的儲存目錄:#mkdir /tools/hadoop/hadoop-2.9.1/data

#cd /tools/hadoop/hadoop-2.9.1/etc/hadoop
#vi core-site.xml
<!-- 制定HDFS的老大(NameNode)的地址 -->
<property>
   <name>fs.defaultFS</name>
    <value>hdfs://bigdata:9000</value>
</property>

<!-- 指定hadoop執行時產生檔案的儲存目錄 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/tools/hadoop/hadoop-2.9.1/data</value>
</property>

<!-- 垃圾回收機制,按秒計算 -->
<property>
    <name>fs.trash.interval</name>
    <value>259200</value>
</property>

第三個:hdfs-site.xml

#cd /tools/hadoop/hadoop-2.9.1/etc/hadoop
#vi hdfs-site.xml
<!-- secondarynode放在第slave2上 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave2:50090</value>
</property>
​```		
### 第四個:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
字尾名為.template的時候hadoop是不識別的
將mapred-site.xml.template改名為mapred-site.xml:#mv mapred-site.xml.template mapred-site.xml
​```cpp
#cd /tools/hadoop/hadoop-2.9.1/etc/hadoop
#vi mapred-site.xml
<!-- 指定mr執行在yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>

<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
</property>

第五個:yarn-site.xml

#cd /tools/hadoop/hadoop-2.9.1/etc/hadoop
#vi yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>slave1</value>
</property>

<!-- reducer獲取資料的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- #########nodemanager resouce######### -->
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
</property>

<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>4</value>
</property>

<property>
    <name>yarn.log-aggregetion-enable</name>
    <value>true</value>
</property>

<property>
    <name>yarn.log-aggregetion.retain-seconds</name>
    <value>640800</value>
</property>

第六個:slaves

修改為 master slave1 slave2

export JAVA_HOME=/root/hj/java/jdk-10.0.1

export JAVA_HOME=/root/hj/java/jdk-10.0.1

格式化namenode

#hdfs namenode -format/hadoop name -format

啟動hadoop

檢視啟動了哪些程序:#jps

[[email protected] ~]# jps
56147 SecondaryNameNode
56583 NodeManager
56712 Jps
56300 ResourceManager
55853 NameNode
55982 DataNode

配置SSH免密登入

在需要免密登入的全部節點上,修改hosts檔案,全部都需要新增一樣的內容。

注意:在前面第4已經配置了主機名對映,所以,這裡主機名對映需需要配置了。

#vi /etc/hosts 新增 192.168.0.200 bigdata 儲存退出

登入測試要輸入密碼 在hadoop1上登入hadoop2:#ssh bigdata 退出登入的節點:#exit

在hadoop1中執行:#ssh-keygen -trsa 然後,不斷的按回車鍵。

#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

#chmod 600 ~/.ssh/authorized_keys

將公鑰複製到其他機器上 在bigdata免密登入bigdata自己:#scp ~/.ssh/authorized_keys bigdata:~/.ssh/