硬件环境:
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帐号
$sudo passwd root
2.配置IP地址
修改文件 /etc/network/interfaces 添加以下内容:
auto eth0
iface eth0 inet static
address 192.168.61.191
netmask 255.255.248.0
gateway 192.168.60.1
3.应用scp,复制各种安装文件
$scp -rp /usr/local/java/
[email protected]:/usr/local/java
4.安装JDK
$tar -xzvf hadoop-1.0.3.tar.gz
$sudo chmod 777 jdk-6u32-linux-i586.bin
$./jdk-6u32-linux-i586.bin
5.配置JDK环境
修改 /etc/profile 文件,增加以下内容
#SET JAVA environment
export JAVA_HOME=/usr/local/java/jdk1.6.0_32
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes12.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
#SET HADOOP
export HADOOP_HOME=/usr/local/java/hadoop-1.0.3
export PATH=$PATH:/usr/local/java/hadoop-1.0.3/bin
export CLASSPATH=.:$CLASSPATH:$HADOOP_HOME
6.SSH环境互信
参考信息http://blog.csdn.net/laoyi19861011/article/details/6254743
6.1 在主机hdfsmaster(192.168.61.190上操作)
$ssh-keygen -t rsa ##中间提示一直按回车到底
$cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$cd .ssh
$ls -a ##将见到以下3个文件或目录 authorized_keys id_rsa id_rsa.pub
$ssh localhost ## 测试是否不需要密码
6.2在需要互信的主机上操作
$scp id_rsa.pub
[email protected]:/home/administrator ##把hdfsmaster中的id_rsa.pub拷贝到hdfs01中,其中administrator为用户名
6.3 在从机hdfs01(192.168.61.191上操作)
$cat id_rsa.pub >> .ssh/authorized_keys ##注意这个要在/administrator目录中,完成这部之后,hdfsmaster访问hdfs01就不需要密码访问了。
7.检验sshd服务(要求服务一直启动)
$ps aux
8.配置DNS,使应用机器名可以相互ping通
$sudo vi /etc/hosts
增加以下内容:
192.168.61.190 hdfsmaster
192.168.61.191 hdfs01
192.168.61.192 hdfs02
###127.0.1.1 hdfsmaster ---------类似这个IP的都要注释掉
这里配置错了,会导致dataNode启动错误,见dataNode中的日志描述,会见到与主机(192.168.61.190)通讯上不。
9.修改 hadoop-env.sh 指明JDK的路径
$sudo vi hadoop-env.sh
内容:
export JAVA_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/conf
[email protected]:/usr/local/java/hadoop-1.0.3
$scp -rp /usr/local/java/hadoop-1.0.3/conf
[email protected]:/usr/local/java/hadoop-1.0.3
16.调整系统时间
$sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#中国国家授时中心服务器IP地址
$sudo apt-get install ntpdate
$sudo ntpdate 210.72.145.44
#写入到Bios
$sudo hwclock -w
测试
1.格式化一个新的分布式文件系统
$ bin/hadoop namenode -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
查看目录
$hadoop fs -ls
7.运行例子
$hadoop fs -mkdir input
$hadoop fs -put conf/ input
$hadoop jar hadoop-examples-1.0.3.jar grep input/conf output 'dfs[a-z.]+'
$hadoop jar $HADOOP_HOME/hadoop-examples-1.0.3.jar wordcount input/conf output18_04
8.重启或添加节点:在需要重启的客户机操作
$bin/hadoop-daemon.sh start datanode
$bin/hadoop-daemon.sh start tasktracker
$bin/hadoop-daemon.sh stop datanode
$bin/hadoop-daemon.sh stop tasktracker