在RedHat6.2以上版本的Linux服務器之上快速搭建hadoop2.6版本的集羣方法。以下操作步驟是筆者在安裝hadoop集羣的安裝筆記,如有對hadoop感興趣的博友可按照本文操作進行無障礙搭建。可以確認以下所有操作步驟的準確性和可行性,如在搭建過程中遇到任何問題歡迎隨時交流。
OK話不多說啦,具體操作詳見如下操作步驟~~
在部署hadoop2.6之前的前置任務:
1、禁止selinux
setenforce 0
修改vi /etc/selinux/config的參數如下:
SELINUX=disabled
2、關閉防火牆
iptables -F
service iptables save
service iptables stop
chkconfig --level 2345 iptables off
一:配置域名解析
分別在三臺機器上的/etc/hosts文件最後添加如下信息:
128.230.5.113 hbase01
128.230.5.114 hbase02
128.230.5.115 hbase03
二、添加hadoop的管理賬號
[root@hbase01 ~]# groupadd -g 1000 hadoop
[root@hbase01 ~]# useradd -u 1000 -g 1000 hadoop
三、設置互信機制
[root@hbase01 ~]# su - hadoop
[hadoop@hbase01 ~]$ ssh-keygen -t rsa
scp id_rsa.pub hadoop@ip2:~/.ssh/authorized_keys
scp id_rsa.pub hadoop@ip2:~/.ssh/authorized_keys
如果互信無法成功請修改如下文件的權限即可
chmod 700 .ssh
chmod 0600 authorized_keys
四、配置環境變量
#vim /home/hadoop/.bash_profile --設置環境變量
export JAVA_HOME=/usr/java/jdk1.8.0_40
export JAR_HOME=/usr/java/jdk1.8.0_40/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HBASE_HOME=/usr/local/hbase-0.98.9-hadoop2
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase-0.98.9-hadoop2/bin
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HBASE_HOME=/usr/local/hbase-0.98.9-hadoop2
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase-0.98.9-hadoop2/bin
export PATH
五、測試hadoop環境變量生效
hadoop version
六、配置hadoop集羣
1、配置core-site.xml文件
fs.default.name
hdfs://hbase01:9000
hadoop.tmp.dir
/usr/local/hadoopdata/tmp
io.file.buffer.size
4096
hadoop.native.lib
true
2、配置vim hadoop-env.sh文件
export JAVA_HOME=/usr/java/jdk1.8.0_40
3、配置vim hdfs-site.xml
dfs.nameservices
hadoop-cluster1
dfs.namenode.secondary.http-address
hbase01:50090
dfs.namenode.name.dir
file:///usr/local/hadoopdata/dfs/name
dfs.datanode.data.dir
file:///usr/local/hadoopdata/dfs/data
dfs.replication\
2
dfs.webhdfs.enabled
true
4、配置vim mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobtracker.http.address
hbase01:50030
mapreduce.jobhistory.address
hbase01:10020
mapreduce.jobhistory.webapp.address
hbase01:19888
5、格式化namenode的namespace和dataspace
hadoop namenode -format
6、創建相關目錄
mkdir -p /usr/local/hadoopdata/dfs/data
mkdir -p /usr/local/hadoopdata/dfs/name
mkdir -p /usr/local/hadoopdata/dfs/tmp
chown -R hadoop:hadoop /usr/local/hadoopdata
7、啓動hadoop集羣
#su -hadoop
#start-all.sh
若在namenode顯示如下信息:
[hadoop@hbase01 dfs]$ jps
16393 NameNode
16906 Jps
16622 ResourceManager
在datanode顯示如下信息:
29697 DataNode
29911 Jps
29805 NodeManager
請直接跳到最後訪問hadoop集羣的web控制檯即可管理和監視hadoop集羣的運行
8、輸入jps發現hadoop集羣沒有成功被啓動只有jps進程
9、分析診斷日誌
tail -f hadoop-hadoop-namenode-hbase01.log
發現端口被佔用,通過ps發現另一hadoop進程已經被root賬號啓用kill掉相關hadoop進程,重新啓動hadoop集羣
#stop-all.sh
#start-all.sh
再次執行jps發現此次比上次多了一個java進程,離成功更接近了一步。我們再次通過分析日誌發現對hadoop的分佈式文件系統沒有寫權限
14848 Jps
14595 ResourceManager
/usr/local/hadoopdata/dfs/name
10、解決方法:停止hadoop集羣
stop-all.sh
11、解決方法:創建相關目錄並賦權
mkdir -p /usr/local/hadoopdata/dfs/data
mkdir -p /usr/local/hadoopdata/dfs/name
chown -R hadoop:hadoop /usr/local/hadoopdata
12、訪問hadoop的web頁面,驗證hadoop集羣是否成功搭建完成
在這裏我還是要推薦下我自己建的大數據學習交流qq裙:522189307 , 裙 裏都是學大數據開發的,如果你正在學習大數據 ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有大數據開發相關的),包括我自己整理的一份最新的大數據進階資料和高級開發教程,歡迎進階中和進想深入大數據的小夥伴。上述資料加羣可以領取