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