Hadoop安装摘要
硬件环境:
3台老爷机,P3/1GB/64GB
软件系统:
ubuntu-12.04.1-server-i386安装时,选择安装OpenSSH、smb(文件共享)服务
jdk1.6.0_32
hadoop-1.0.3
hbase-0.94.2
zookeeper-3.4.4
相关配置
主机:---NameNode&JobTracker
名称:hdfsmaster
IP:192.168.61.190
用户名:administrator
从机1---DataNode&TaskTracker
名称:hdfs01
IP:192.168.61.191
用户名:administrator
从机2---DataNode&TaskTracker
名称:hdfs02
IP:192.168.61.192
用户名:administrator
SSH互信内容,单身即可,不需要密码直接可以访问(第一次输入要Yes)
192.168.61.190-->192.168.61.191,192.168.61.192
1.启动root帐号
$sudopasswdroot
2.配置IP地址
修改文件/etc/network/interfaces添加以下内容:
autoeth0
ifaceeth0inetstatic
address192.168.61.191
netmask255.255.248.0
gateway192.168.60.1
3.应用scp,复制各种安装文件
$scp-rp/usr/local/java/[email protected]:/usr/local/java
4.安装JDK
$tar-xzvfhadoop-1.0.3.tar.gz
$sudochmod777jdk-6u32-linux-i586.bin
$./jdk-6u32-linux-i586.bin
5.配置JDK环境
修改/etc/profile文件,增加以下内容
#SETJAVAenvironment
exportJAVA_HOME=/usr/local/java/jdk1.6.0_32
exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes12.jar
exportPATH=$PATH:$JAVA_HOME/bin
exportJRE_HOME=$JAVA_HOME/jre
#SETHADOOP
exportHADOOP_HOME=/usr/local/java/hadoop-1.0.3
exportPATH=$PATH:/usr/local/java/hadoop-1.0.3/bin
exportCLASSPATH=.:$CLASSPATH:$HADOOP_HOME
6.SSH环境互信
参考信息http://blog.csdn.net/laoyi19861011/article/details/6254743
6.1在主机hdfsmaster(192.168.61.190上操作)
$ssh-keygen-trsa##中间提示一直按回车到底
$cat.ssh/id_rsa.pub>>.ssh/authorized_keys
$cd.ssh
$ls-a##将见到以下3个文件或目录authorized_keysid_rsaid_rsa.pub
$sshlocalhost##测试是否不需要密码
6.2在需要互信的主机上操作
[email protected]:/home/administrator##把hdfsmaster中的id_rsa.pub拷贝到hdfs01中,其中administrator为用户名
6.3在从机hdfs01(192.168.61.191上操作)
$catid_rsa.pub>>.ssh/authorized_keys##注意这个要在/administrator目录中,完成这部之后,hdfsmaster访问hdfs01就不需要密码访问了。
7.检验sshd服务(要求服务一直启动)
$psaux
8.配置DNS,使应用机器名可以相互ping通
$sudovi/etc/hosts
增加以下内容:
192.168.61.190hdfsmaster
192.168.61.191hdfs01
192.168.61.192hdfs02
###127.0.1.1hdfsmaster---------类似这个IP的都要注释掉
这里配置错了,会导致dataNode启动错误,见dataNode中的日志描述,会见到与主机(192.168.61.190)通讯上不。
9.修改hadoop-env.sh指明JDK的路径
$sudovihadoop-env.sh
内容:
exportJAVA_HOME=/usr/local/java/jdk1.6.0_32
10.修改conf/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://hdfsmaster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/administrator/data/hdfs/tmp</value>
</property>
11.修改conf/hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/home/administrator/data/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/administrator/data/hdfs/data</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
12.修改conf/mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>hdfsmaster:9001</value>
</property>
13.conf/masters
hdfsmaster
14.修改conf/slaves
hdfs01
hdfs02
15.将配置好的hadoop拷贝到所有的datanode
$scp-rp/usr/local/java/hadoop-1.0.3/[email protected]:/usr/local/java/hadoop-1.0.3
$scp-rp/usr/local/java/hadoop-1.0.3/[email protected]:/usr/local/java/hadoop-1.0.3
16.调整系统时间
$sudocp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
#中国国家授时中心服务器IP地址
$sudoapt-getinstallntpdate
$sudontpdate210.72.145.44
#写入到Bios
$sudohwclock-w
测试
1.格式化一个新的分布式文件系统
$bin/hadoopnamenode-format
2.在分配的NameNode上,运行下面的命令启动HDFS,所有列出(${HADOOP_CONF_DIR}/slaves文件的内容)的slave上都被会启动DataNode守护进程
$bin/start-dfs.sh
3.在分配的JobTracker上,运行下面的命令启动Map/Reduce:,同理,相应的TaskTracker也会被启动
$bin/start-mapred.sh
4.停止HDFS(在DataNode机上操作)
$bin/stop-dfs.sh
5.停止JobTracker(在JobTracker上操作)
$bin/stop-mapred.sh
6.常用的hdfs命令参考http://www.classcloud.org/cloud/wiki/Hadoop_Lab2
查看目录
$hadoopfs-ls
7.运行例子
$hadoopfs-mkdirinput
$hadoopfs-putconf/input
$hadoopjarhadoop-examples-1.0.3.jargrepinput/confoutput'dfs[a-z.]+'
$hadoopjar$HADOOP_HOME/hadoop-examples-1.0.3.jarwordcountinput/confoutput18_04
8.重启或添加节点:在需要重启的客户机操作
$bin/hadoop-daemon.shstartdatanode
$bin/hadoop-daemon.shstarttasktracker
$bin/hadoop-daemon.shstopdatanode
$bin/hadoop-daemon.shstoptasktracker