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相關包
刪除/etc/yum.repos.d/rhel-source.repo
使用centos-163.repo替換
安裝rz+sz方便上傳下載文件到本地
yum -y install lrzsz
傳輸全部的依賴文件到其餘服務器
安裝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 應用配置
其餘機器使用相同配置
配置host
192.168.234.114 namenode
192.168.234.111 datanode1
192.168.234.112 datanode2
192.168.234.113 datanode3
其餘namenode和datanode配置同樣
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
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