【大資料】安裝偽分散式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=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/