Linux 之 VMware虛擬機CentOS上安裝hadoop集群


 

Linux之 hadoop集群

第一步 官網下載jar包 上傳到系統中 解壓

第二步 設置免密登錄
a. 用 ssh-key-gen 在本地主機上創建公鑰和密鑰 ssh-keygen -t rsa -P ''
[root@www.linuxidc.com ~]# ssh-keygen -t rsa -P ''

Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]

Enter passphrase (empty for no passphrase): [Press enter key]

Enter same passphrase again: [Pess enter key]

Your identification has been saved in /home/jsmith/.ssh/id_rsa.

Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.

The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9

root@www.linuxidc.com

b. 用 ssh-copy-id 把公鑰復制到遠程主機上 ssh-copy-id -i  root@Datanode1
[root@www.linuxidc.com ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@Datanode1

root@Datanode1's password:

Now try logging into the machine, with ―ssh ?root@Datanode1‘‖, and check in:

.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.

[注: ssh-copy-id 把密鑰追加到遠程主機的 .ssh/authorized_key 上.]

c. 直接登錄遠程主機
[root@www.linuxidc.com ~]# ssh Datanode1

Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2

[注: SSH 不會詢問密碼.]

[root@Datanode1 ~]

[注: 你現在已經登錄到了遠程主機上]

d. 注意:在這里,執行都在Namenode上面,而且Namenode也需要對自己進行無密碼操作即
[root@www.linuxidc.com ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@www.linuxidc.com操作,

其他的,按照a-c重復操作Datanode2和Datanode3就行了

一定要能無密碼訪問,否則不能集群Hadoop一定失敗.

第三步 設置主機名和ip
1.命令 vi /etc/hostname 設置主機名和ip
2.命令 vi /etc/hosts 設置ip
注釋本地ip 加入我們的ip
192.168.204.128 Master

第四步 創建文件夾 -p 強制創建
1.mkdir /usr/local/hadoop/tmp
2.mkdir /usr/local/hadoop/name
3.mkdir -p /usr/local/hadoop/hdfs/name
4.mkdir -p /usr/local/hadoop/hdfs/data

第五步 修改超級用戶的環境變量
1.vi ~/.bash_profile
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME PATH
2.聲明一下 source ~/.bash_profile

3.hadoop-env.sh中配置JAVA_HOME

第六步 修改4個配置文件,分別是core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml(Hadoop-env.sh、yarn-env.sh)
1. 執行命令到 cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop
修改:
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
<description>默認的HDFS路徑</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>路徑默認是NameNode、DataNode等存放數據的公目錄</description>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
<description> 網頁界面訪問數據使用的用戶名</description>
</property>

</configuration>

hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>備份幾份數據</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/name</value>
<description>NN使用的元數據保存</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file: /usr/local/hadoop /data/dfs/dn</value>
<description>DN使用的數據保存</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop /etc/hadoop/dfs-hosts.exclude</value>
<description>增加、卸載節點的文件的路徑</description>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file: /usr/local/hadoop /data/dfs/nn/edits</value>
<description>edits文件的存儲路徑</description>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>/usr/local/hadoop /data/dfs/snn/edits</value>
<description>SecondaryNameNode在文件系統中存儲用於合並的臨時edits文件的目錄</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.204.128:50090</value>
<description>secondarynamenode提供網絡服務的端口和地址</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>文件操作時的權限檢查標識</description>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>192.168.204.128:50070</value>
<description>namenode提供網絡服務的端口和地址</description>
</property>
</configuration>

mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>使用yarn運行mapreduce程序</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.204.128:10020</value>
<description>MapReduce的JobHistoryserver的IP和端口</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.204.128:19888</value>
<description>MapReduce的JobHistoryserver在web端查看的地址</description>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
<description>是否開啟小作業優化</description>
</property>
</configuration>


yarn-site.xml:
<configuration>
<!-- Site specific YARN configuration properties -->

<property>
<name>yarn.log-aggregation-enable</name>
<value>false</value>
<description>是否啟用日志聚合功能,日志聚合開啟后保存到HDFS上</description>
</property>

<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
<description>聚合后的日志在HDFS上保存多長時間,單位為s </description>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
<description>把resourcemanager放到那台機器</description>
</property>
</configuration>



4.修改slaves文件 加入我們的ip和名稱


第七步 配置一下hadoop的環境變量 然后格式化節點
1. 執行命令 /usr/local/hadoop/hadoop-2.7.3/bin
2. 配置一下hadoop的環境變量:
執行 vi /etc/profile
最后添加 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3. 格式化 hadoop namenode -format

第八步 啟動和停止HDFS 在hadoop的sbin下
1.start-dfs.sh 啟動單一

2.start-all.sh 啟動全部

3.stop-all.sh 停止全部

第九步 啟動完后jps命令可以查看正在啟動的java服務

第十步 netstat -nltp命令查看所監聽的端口

第十一步 查看並關閉防火牆
firewall-cmd --state 查看防火牆

systemctl stop firewalld.service 關閉防火牆

第十二步 hadoop 開機自啟

1.進入/etc/rc.d/init.d目錄

cd /etc/rc.d/init.d

2.新建文件hadoop

touch hadoop

3.添加以下內容,只在master配置即可

#!/bin/bash
#chkconfig:2345 20 90
#description:hadoop
#processname:hadoop
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
case $1 in
start) su root /usr/local/hadoop/hadoop-2.7.3/sbin/start-all.sh;;
stop) su root /usr/local/hadoop/hadoop-2.7.3/sbin/stop-all.sh;;
*) echo "require start|stop" ;;
esac
4.給文件設置權限

chmod +x hadoop

5.加入開機自啟列表

chkconfig --add hadoop

6.查看列表

chkconfig --list

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM