五、把修改好的Hadoop整个文件夹传到linux下
上述文件修改好之后,把haoop整个目录copy草linux下,记得建个目录放这个,我建的目录是 /usr/local/hadoop,把hadoop的整个目录copy到这个下面,然后就是这样的形式
[root@hadoopName hadoop]# cd /usr/local/hadoop
[root@hadoopName hadoop]# ls
hadoop-0.20.2 hadooptmp
/usr/local/hadoop 下有两个文件,一个就是hadoop的根目录hadoop-0.20.2,另一个,就是上述的hadoop.tmp.dir的目录
六、把hadoop的bin加入到环境变量把hadoop的执行命令加到环境变量里,这样就能直接在命令行里执行hadoop的命令了
操作跟把java的bin加入环境变量一样
1、执行 cd /etc, 进入/etc 目录下。
2、执行 vi profile, 修改profile文件
在里面加入以下四行
Java代码
#set java environment export JAVA_HOME=/usr/program/jdk1.6.0_06 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib3、执行 chmod +x profile ,把profile变成可执行文件
4、执行 source profile,把profile里的内容执行生效
7、格式化hadoop,启动hadoop格式化hadoop
在命令行里执行,hadoop namenode -format,
笔者在格式化的时候出现了一个错误 Invalid byte 2 of 2-byte UTF-8 sequence,经调查,是因为在修改那3个xml 的时候,用非utf-8 编码保存了,所以出错,用editplus打开从新以uft-8的形式保存,在上传到linux上,再执行 hadoop namenode -format 就行了,执行成功之后,去/usr/local/hadoop/hadooptmp 下会自动生成dfs文件夹,进去会有name文件夹,里面还有别的其他namenode上保存名字空间的文件
启动hadoop
在命令行里执行,start-all.sh,或者执行start-dfs.sh,再执行start-mapred.sh。
在命令行里输入 jps,如果出现一下内容,则说明启动成功。
[root@hadoopName ~]# jps
4505 NameNode
4692 SecondaryNameNode
4756 JobTracker
4905 Jps
4854 TaskTracker
4592 DataNode
启动之后,在/usr/local/hadoop/hadooptmp 下的dfs文件夹里会生成 data目录,这里面存放的是datanode上的数据块数据,因为笔者用的是单机,所以name 和 data 都在一个机器上,如果是集群的话,namenode所在的机器上只会有name文件夹,而datanode上只会有data文件夹。
执行 hadoop fs -ls命令,查看当前hdfs分布式文件系统的 文件目录结构,刚执行会说no such dictionary,
你要先建一个文件夹,用命令 haoop fs -mkdir testdir ,然后再执行hadoop fs -ls,就会展示/user/root/testdir
当前用户是root,所以hdfs的根目录就是 /user/root ,