NOTE:因为hadoop远程调用用的是RPC,所以linux系统必须关闭防火墙
service iptables stop
格式化:hadoop namenode -format
1.vi /etc/inittab
id:5:initdefault:改为id:3:initdefault:即为字符型启动
2.ip configuration:/etc/sysconfig/network-scripts/
3.vi /etc/hosts,add hostname
4.useradd hadoop :增加一个用户
passwd hadoop :给用户加密码
5.对于以下文件:
-rw-r--r-- 1 root root 42266180 Dec 26 10:08 hadoop-0.19.0.tar.gz
可用如下的命令修改:
chmod 777 hadoop hadoop-0.19.0.tar.gz :修改文件权限为最大权限
chown hadoop.hadoop hadoop-0.19.0.tar.gz :修改文件的所有者和组所有者都改为hadoop
6.在每台master和slavers上各增加ssh授权(在hadoop用户下操作)
用ssh-keygen -t rsa命令后一路三个回车
cd .ssh
cp id_rsa.pub authorized_keys
通过scp将master上的authorized_keys文件Copy到其他所有slaves机器上如:
scp authorized_keys root@slave01:/home/hadoop/master_au_keys
同时将每天slave机器上的authorized_keys也copy到master机器上增加进master的authorized_keys中
用ssh master或ssh slave01不用密码,即OK!
7.安装JDK
到sun网站下载JDK安装包jdk-6u11-linux-i586.bin,copy到机器的usr目录中,并在每台机器的root用户下面安装.
在root用户下:
cd /usr
chmod +x jdk-6u11-linux-i586.bin 给安装文件增加执行权限.
./jdk-6u11-linux-i586.bin,按提示按几个空格健后,输入yes后开始安装jdk6.
安装好后,将目录名修改为jdk6.
注(Centos5.2可以不用删除1.4的jdk了):一般linux里安装好后自带一个1.4的jdk,必须删除.
rpm -qa |grep -i java,将查看到的包含java的rmp包全部删除.
rpm -e 包名.
设置JDK的环境变量,考虑到JDK可能会有其他系统用户也会用到,建议将环境变量直接设置在/etc/profile中具体内容:
export JAVA_HOME=/usr/jdk6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
用source /etc/profile使用java环境生效.
8.Hadoop环境变量设置和配置文件修改
在conf/hadoop-env文件里增加jdk目录
export JAVA_HOME=/usr/jdk6
在masters里增加nameNode机器名:master
在slavers里增加dataNode机器名:slave01...
在/etc/profile文件中增加hadoop的path路径:
export HADOOP_HOME=/home/hadoop/hadoop-0.19.0
export PATH=$PATH:$HADOOP_HOME/bin
修改hadoop-site.xml
增加以下内容:
<configuration>
<property>
<name>fs.default.name</name>//你的namenode的配置,机器名加端口
<value>hdfs://10.2.224.46:54310/</value>
</property>
<property>
<name>mapred.job.tracker</name>//你的JobTracker的配置,机器名加端口
<value>hdfs://10.2.224.46:54311/</value>
</property>
<property>
<name>dfs.replication</name>//数据需要备份的数量,默认是三
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>//Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
<value>/home/hadoop/tmp/</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data/</value>
</property>
<property>
<name>mapred.child.java.opts</name>//java虚拟机的一些参数可以参照配置
<value>-Xmx512m</value>
</property>
<property>
<name>dfs.block.size</name>//block的大小,单位字节,后面会提到用处,必须是512的倍数,因为采用crc作文件完整性交验,默认配置512是checksum的最小单元。
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
</configuration>
-----------------------
启动之前,我们先要格式化namenode,先进入~/HadoopInstall/hadoop目录,执行下面的命令
$bin/hadoop namenode -format
下面就该正式启动hadoop啦,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
--------------------------
查看和测试
bin/hadoop dfsadmin -report 查看所有的datanode节点情况
通过web形式去浏览 NameNode和 JobTracker
* NameNode - http://10.0.0.88:50070
* JobTracker - http://10.0.0.88:50030
------------------
linux文件compress
打包:tar cvf 打包后文件名.tar 要打包的目录名
压缩:gzip 压缩文件 ==>*.tar.gz
解包: tar xvzf *.tar.gz