Hadoop叢集安裝
對Hadoop的叢集來說,可以分成兩大類角色:Master 和 Slave,前者主要配置NameNode和JobTracker 的角色,負責總管分散式資料和分解任務的執行,後者配置DataNode和TaskTracker 的角色,負責分散式資料儲存以及任務的執行。
系統版本
rhel-server-6.3-x86_64
hadoop 版本
hadoop-0.20.2.tar.gz // 我用其他版本時總出問題,這個版本卻很不錯,不知大傢什麼個情況
JDK
jdk-7u7-linux-x64.tar.gz
IP地址分配
IP | 主機名 |
192.168.100.16 | master |
192.168.100.17 | slave1 |
配置host
Namenode(master)的機器,需要配置叢集中所有機器的ip
修改/etc/hosts
127.0.0.1 localhost
::1 localhost6.localdomain6 localhost6
192.168.100.11 master
192.168.100.12 slave1
其他的datanode的/etc/hosts 只需要配置namenode的機器ip和本機ip,那當然也可以配置所有的IP
192.168.100.11 master
192.168.100.12 slave1
修改hostname(可選)
vi /proc/sys/kernel/hostname
注意:
/etc/hosts檔案 /etc/sysconfig/network檔案及執行 $hostname 命令得到的主機名要一致
關閉防火牆
[root@master bin]# service iptables stop;
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@slave1 ~]# chkconfig iptables off;
建立haoop使用者和組
groupadd -g 600 hadoop;
useradd -u 800 -g hadoop -d /home/hadoop hadoop
每個節點都有相同的使用者hadoop
[root@prac1 ~]# chmod -R 775 /etc/sudoers
用root許可權的使用者登入系統,執行:
[root@master ~]# vi /etc/sudoers
在開啟的檔案中加入:
hadoop ALL=(ALL) ALL
注:方便hadoop使用者訪問和修改系統檔案與配置
建立ssh無密碼登入
注意在hadoop家目錄下執行命令
在兩個節點都執行如下操作
[hadoop@master ~]$ ssh-keygen -t rsa // 遇到輸入全回車
[hadoop@master ~]$ ssh-keygen -t dsa
在master節點執行以下命令
[hadoop@master ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
[hadoop@master ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys
[hadoop@master ~]$ chmod -R 775 .ssh/authorized_keys
注意以下兩步要在master上進行,如果在slave1上進行,則信任關係建立不成功
[hadoop@master ~]$ ssh slave1 cat .ssh/id_rsa.pub >>.ssh/authorized_keys
[hadoop@master ~]$ ssh slave1 cat .ssh/id_dsa.pub >>.ssh/authorized_keys
[hadoop@master ~]$ scp .ssh/authorized_keys slave1:~/.ssh/
測試ssh
ssh slave1 date
ssh master date
要保證ssh訪問自己和對方都不需要密碼
[hadoop@master ~]$ ssh slave1 date
Tue Oct 16 17:43:46 CST 2012
[hadoop@master ~]$ ssh master date
Tue Oct 16 17:43:53 CST 2012
[hadoop@slave1 ~]$ ssh master date
Tue Oct 16 17:44:16 CST 2012
[hadoop@slave1 ~]$ ssh slave1 date
Tue Oct 16 17:44:20 CST 2012
注:
[hadoop@master ~]$ ssh-keygen -t rsa // 執行它是生成id_rsa/id_rsa.pub的無密碼的公/私鑰對
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[hadoop@master ~]$ ls -l ~/.ssh // 這樣我們會看到如下所示的結果集:
-rw------- 1 root root 1675 Jul 5 14:01 id_rsa
-rw-r--r-- 1 root root 394 Jul 5 14:01 id_rsa.pub
然後將id_rsa.pub的內容複製到每個機器(也包括本機)的~/.ssh/authorized_keys檔案中
[hadoop@master ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
因為ssh服務對檔案的許可權有著非常嚴格的限制(authorized_keys只能擁有指定使用者的寫許可權)於是需要進行如下處理
[hadoop@master ~]$ chmod 644 ~/.ssh/authorized_keys
[hadoop@master ~]$ scp .ssh/authorized_keys slave1:~/.ssh/ // 複製到其他機器上
如果 建立ssh無密碼登入 這小節不太清楚,可參考其他文件
下載jdk和hadoop
安裝jdk(所有節點)
免安裝檔案直接解壓到當前目錄即可:
[root@prac1 ]# tar zxvf jdk-7u7-linux-x64.tar.gz // oracle 官網下載
[root@prac1 jdk1.7.0_07]# pwd
/root/jdk1.7.0_07
[root@prac1 jdk1.7.0_07]# cd ..
[root@prac1 ~]# mv jdk1.7.0_07/ jdk
[root@prac1 ~]# mv jdk /usr/local // 把整個hadoop 或jdk 單獨放到根目錄下面還不行
然後修改/etc/profile:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
儲存,並執行source /etc/profile
安裝hadoop
[hadoop@master ~]$ su - root
Password:
[root@master ~]# cd /usr/local/
[root@master local]# tar zxvf hadoop-0.20.2.tar.gz
[root@master local]# mv hadoop-0.20.2 hadoop
然後修改/etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
source /etc/profile
配置hadoop
root使用者建立hadoop所需要的目錄
mkdir -p /hadoop/hdfs/tmp
mkdir -p /hadoop/hdfs/name
mkdir -p /hadoop/hdfs/data
mkdir -p /hadoop/mapred/local
mkdir -p /hadoop/mapred/system
chown -R hadoop:hadoop /hadoop
chmod -R 775 /hadoop
1.修改/usr/local/hadoop/conf/hadoop-env.sh,新增jdk支援 // 這個很重要
export JAVA_HOME=/usr/local/jdk
2.修改conf/core-site.xml,增加下面內容
3.修改conf/hdfs-site.xml,增加下面內容
3.修改conf/mapred-site.xml,增加下面內容
4. 修改conf/masters,這個決定那個是secondarynamenode
master
5 .修改conf/slaves,這個是所有datanode的機器
slave1
注:上面各個配置檔案的意思請參考其他文件
將配置好的hadoop複製到所有的datanode
root@master:/data/soft/hadoop/conf# scp -rp /data/soft/hadoop-0.21.0 10.10.236.191:/data/soft/hadoop-0.21.0
格式化hdfs檔案系統的namenode
[root@master conf]# hadoop namenode -format
12/10/15 17:30:51 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = master.oracle.com/60.195.191.227
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.2
STARTUP_MSG: build = -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
Re-format filesystem in /hadoop/hdfs/name ? (Y or N) Y // 注意這裡是大寫的Y
12/10/15 17:30:54 INFO namenode.FSNamesystem: fsOwner=root,root,sfcb
12/10/15 17:30:54 INFO namenode.FSNamesystem: supergroup=supergroup
12/10/15 17:30:54 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/10/15 17:30:54 INFO common.Storage: Image file of size 94 saved in 0 seconds.
12/10/15 17:30:54 INFO common.Storage: Storage directory /hadoop/hdfs/name has been successfully formatted.
12/10/15 17:30:54 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master.oracle.com/60.195.191.227
************************************************************/
啟動hadoop叢集
root@master:/data/soft/hadoop# bin/start-all.sh
Hdfs操作
建立目錄
root@master:/data/soft/hadoop # bin/hadoop dfs -mkdir testdir
檢視現有檔案
root@master:/data/soft/hadoop # bin/hadoop dfs -ls
關閉Hdfs
root@master:/data/soft/hadoop# bin/stop-all.sh
利用jps檢視已經啟動的服務
Master:
[hadoop@master ~]$ jps
2167 NameNode
2355 JobTracker
2297 SecondaryNameNode
4027 Jps
[hadoop@master ~]$
Slave:
[hadoop@slave1 ~]$ jps
6192 Jps
2096 DataNode
2178 TaskTracker
[hadoop@slave1 ~]$
[hadoop@slave1 ~]$ hadoop dfsadmin -report
Configured Capacity: 10568916992 (9.84 GB)
Present Capacity: 3969232896 (3.7 GB)
DFS Remaining: 3818074112 (3.56 GB)
DFS Used: 151158784 (144.16 MB)
DFS Used%: 3.81%
Under replicated blocks: 29
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 1 (1 total, 0 dead)
Name: 192.168.100.12:50010
Decommission Status : Normal
Configured Capacity: 10568916992 (9.84 GB)
DFS Used: 151158784 (144.16 MB)
Non DFS Used: 6599684096 (6.15 GB)
DFS Remaining: 3818074112(3.56 GB)
DFS Used%: 1.43%
DFS Remaining%: 36.13%
Last contact: Tue Oct 16 17:37:26 CST 2012
[hadoop@slave1 ~]$
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28254374/viewspace-1059609/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hadoop叢集安裝配置Hadoop
- Hadoop 叢集安裝與配置Hadoop
- hadoop叢集安裝檔案Hadoop
- 【Hadoop】 分散式Hadoop叢集安裝配置Hadoop分散式
- Hadoop叢集安裝詳細教程Hadoop
- 學習一:hadoop 1.0.1叢集安裝Hadoop
- hadoop+hbase+zookeeper叢集安裝方法Hadoop
- hadoop叢集安裝遇到Duplicate metricsName:getProtocolVersionHadoopProtocol
- hadoop學習之hadoop完全分散式叢集安裝Hadoop分散式
- 完全分散式模式hadoop叢集安裝與配置分散式模式Hadoop
- Hadoop3.0完全分散式叢集安裝部署Hadoop分散式
- 【redis叢集安裝】Redis
- zookeeper 叢集安裝
- kafka叢集安裝Kafka
- hbase叢集安裝
- StarRocks 叢集安裝
- cdh 叢集安裝
- Hadoop叢集安裝-CDH5(5臺伺服器叢集)HadoopH5伺服器
- Hadoop叢集安裝-CDH5(3臺伺服器叢集)HadoopH5伺服器
- ElasticSearch 6.6.0叢集安裝Elasticsearch
- TiDB叢集安裝TiDB
- Elasticsearch 叢集安裝部署Elasticsearch
- 【Zookeeper】zookeeper叢集安裝
- 記HBase叢集安裝
- kubernetes叢集安裝
- elasticsearch叢集安裝(3臺)Elasticsearch
- Storm叢集安裝與部署ORM
- ZooKeeper叢集安裝和部署
- linux ZooKeeper叢集安裝Linux
- WAS叢集安裝配置過程
- Kubernetes 叢集安裝
- redis cluster 4.0.9 叢集安裝搭建Redis
- WAS中介軟體垂直叢集安裝
- WAS中介軟體水平叢集安裝
- mongo副本集叢集安裝配置Go
- K8S叢集安裝K8S
- CDH5 叢集安裝教程H5
- Flink(四)叢集安裝(二)