hadoop2.5.1安裝到虛擬機

1.虛擬機安裝
系統版本 RHEL6.3

2.虛擬機ip配置
採用 共享方式(nat) : 
默認:
使用vmnet8 將虛擬機設置成使用dhcp方式上網,windows下選擇"自動獲取ip",linux下開啓dhcp服務便可。 
手動設置: 
ip設置與vmnet8同網段, 
網關設置成vmnet8的網關, 
DNS服務器設置與主機相同, 
實現虛擬機<--->主機虛擬機<---->互聯網 通訊。

vim /etc/sysconfig/network-scripts/ifcfg-eth0
......
BOOTPROTO=static
ONBOOT="yes"
IPADDR=192.168.234.100 --設置爲網關同ip段
NETMASK=255.255.255.0
GATEWAY=192.168.234.2-- vmnet8的網關
......
最後不要忘了設置DNS  echo "nameserver 8.8.8.8" >> /etc/resolv.conf
重啓reboot

設置好了就能夠用SecureCRT查看了,而且可以ping通外網

yum源配置
查看文檔  使用CentOS的yum源進行升級或軟件安裝 

rpm -qa |grep yum 查看yum安裝狀況
rpm -qa |grep yum | xargs rpm -e --nodeps 卸載rhel原有yum

安裝yum軟件包 
1. #rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm 2. # rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm 
3. #rpm -ivh yum-3.2.29-30.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.3 0-14.el6.noarch.rpm 

因爲centos官網6.3版的再也不更新且文件不存在,因此選用的是 centos官網 6.5版本的yum相關包
同時下載163的倉庫, http://mirrors.163.com/.help/CentOS6-Base-163.repo 修改$releaseser爲6.5
刪除/etc/yum.repos.d/rhel-source.repo
使用centos-163.repo替換

scp  centos-163.repo  root@192.168.234.112 :/etc/yum.repos.d/

安裝rz+sz方便上傳下載文件到本地
yum -y install lrzsz 

傳輸全部的依賴文件到其餘服務器
scp -r dep   root@192.168.234.112 :/home/hadoop/

安裝java,並配置環境變量
java -version 查看現有java版本

rpm -qa|grep java 查看java安裝包
rpm -qa|grep java | xargs rpm -e --nodeps   卸載java安裝包

vim /etc/profile 添加java環境變量配置
#set java path
JAVA_HOME=/usr/java/jdk1.7.0_45
JRE_HOME=/usr/java/jdk1.7.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

source /etc/profile 應用配置
其餘機器使用相同配置
scp /etc/profile root@192.168.234.112:/etc/profile

配置host
192.168.234.114  namenode
192.168.234.111 datanode1
192.168.234.112 datanode2
192.168.234.113 datanode3 
其餘namenode和datanode配置同樣
scp /etc/hosts root@192.168.234.112:/etc/hosts


ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp到datanode

安裝hadoop
tar -xvf dep/hadoop/hadoop-2.5.1.tar.gz

配置hadoop

/home/hadoop/hadoop-2.5.1/etc/hadoop中的slaves文件添加數據節點
datanode1
datanode2
datanode3

配置hostname
格式化namenode報錯處理方法

/etc/sysconfig/network  中的hostname修改掉,並重啓網絡服務生效
service network restart

格式化文件系統
bin/hdfs namenode -format

http://192.168.234.114:50070/ 必定要記得關閉namenode的防火牆,不然訪問不了
service iptables stop/status


但啓動./start-dfs.sh一直會有個警告
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [namenode]

hadoop fs -mkdir /input命令報錯

開啓debug模式
export HADOOP_ROOT_LOGGER=DEBUG,console

能夠看到是由於glibc版本過低的緣由

有兩種解決方法
1.在glibc2.12環境下從新編譯hadoop
2.安裝glibc2.14或以上版本

這裏我採用第二種
升級glibc到2.14以上, 升級前 千萬 不要卸載 glibc ,卸載後全部命令都失效了, 重啓還報錯
kernel panic - not attempted to kill init, 害得我只能重裝系統了,又搞了半天
重裝namenode以後, 從datanode傳 hadoop 過去
格式化文件系統後重啓,不然會找不到數據節點

1. 下載 
glibc-2.15-60.el6.x86_64.rpm 
glibc-common-2.15-60.el6.x86_64.rpm
安裝
rpm -ivh glibc-2.15-60.el6.x86_64.rpm glibc-common-2.15-60.el6.x86_64.rpm --replacefiles
不加 --replacefiles會報文件衝突的錯

從新運行./start-dfs.sh,再也不報警了

hadoop fs -mkdir /input 建立文件夾
hadoop fs -ls / 展現文件列表

Hadoop報錯:NoRouteToHostException: No route to host
關閉datanode數據節點的防火牆

測試mapreduce
建立文件夾input,建立測試文件test1,test2
mkdir input && cd input
echo "a b c d e" > test1
echo "a b c d f" > test2
hadoop fs -put input /

能夠看到已經加入hdfs中

運行WordCount
cd /home/hadoop/hadoop-2.5.1/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /input /output

本身打的包
hadoop jar wordct.jar org.WordCount /input /output

hadoop fs -cat /output/part-r-00000
相關文章
相關標籤/搜索