|
注:文档是实际安装后,参考网上的文档写的。由于文档是很早就写了,今天才发出来,所以忘记所参考文章的作者了,为此表示歉意。
版本:hadoop-0.20.2
master:hadoop1slave: hadoop2,hadoop3,hadoop4 一. 准备: install ssh install rsync ① 保证每台机器可以互相登陆 vim /etc/hosts //相互添加机器名② 做无密码登陆 ssh-keygen -t rsa cp> rsync -azv /root/.ssh/ hadoop[2,3,4]:/root/③ java在1.5版本以上 59 yum search zlib 60 yum install zlib-devel.x86_64 61 yum search gzip 62 yum install zlib-devel.x86_64 65 yum search jdk 66 yum install java-1.6.0-openjdk-devel.x86_64二. 安装: 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。 修改hadoop-0.20.2/conf/vim hadoop-env.sh文件 添加:export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk.x86_64 // 添加java安装路径到 主要的配置文件是,hadoop-0.20.2/conf/下的core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slave #vim core-site.xml fs.default.name //fs.default.name是NameNode的URI hdfs://hadoop:9000 //hdfs://主机名:端口号 hadoop.tmp.dir /hadoop/tmp #vim hdfs-site.xml dfs.name.dir /hadoop/filesystem/name,/hadoop/filesystem/name1 //hadoop的name目录,可以添加多个目录,用逗号分隔 dfs.data.dir /hadoop/filesystem/data,/hadoop/filesystem/data2, // hadoop的data目录,可以添加多个目录,用逗号分隔 dfs.replication 3 dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。 dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。 dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。 注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。 配置conf/mapred-site.xml mapred.job.tracker //JobTracker的主机或IPhadooptry1:9001 //主机名:端口 配置conf/master和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。 vim masters:hadoop1 vim slaves:hadoop2 hadoop3 hadoop4 配置结束,把配置好的hadoop-0.20.2文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh $ scp -r /home/hdp/hadoop-0.20.2 root@hadoop2:/opt/hadoop 三、hadoop启动先格式化一个新的分布式文件系统 $ cd hadoop-0.20.2$ bin/hadoop namenode -format成功情况下系统输出:10/07/14 10:00:13 INFO namenode.NameNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = v-jiwan-ubuntu-0/127.0.0.1STARTUP_MSG: args = [-format]STARTUP_MSG: version = 0.20.2STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010************************************************************/10/07/14 10:00:14 INFO namenode.FSNamesystem: fsOwner=root,root10/07/14 10:00:14 INFO namenode.FSNamesystem: supergroup=supergroup10/07/14 10:00:14 INFO namenode.FSNamesystem: isPermissionEnabled=true10/07/14 10:00:14 INFO common.Storage: Image file of>10/07/14 10:00:14 INFO common.Storage: Storage directory /opt/hadoop/hadoopfs/name1 has been successfully formatted.10/07/14 10:00:14 INFO common.Storage: Image file of>10/07/14 10:00:14 INFO common.Storage: Storage directory /opt/hadoop/hadoopfs/name2 has been successfully formatted.10/07/14 10:00:14 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************SHUTDOWN_MSG: Shutting down NameNode at v-jiwan-ubuntu-0/127.0.0.1************************************************************/查看输出保证分布式文件系统格式化成功执行完后可以到master机器上看到/hadoop/filesystem/name和>/hadoop/filesystem/name1两个目录。 在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。 $ bin/start-all.sh系统输出:starting namenode, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-namenode-v-jiwan-ubuntu-0.outh2: starting datanode, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-datanode-v-jiwan-ubuntu-2.outh1: starting datanode, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-datanode-v-jiwan-ubuntu-1.outh0: starting secondarynamenode, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-secondarynamenode-v-jiwan-ubuntu-0.outstarting jobtracker, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-jobtracker-v-jiwan-ubuntu-0.outh2: starting tasktracker, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-tasktracker-v-jiwan-ubuntu-2.outh1: starting tasktracker, logging to /root/hadoop/hadoop-0.20.2/bin/../logs/hadoop-root-tasktracker-v-jiwan-ubuntu-1.out As you can see in slave's output above, it will automatically format it's storage directory (specified by dfs.data.dir) if it is not formatted already. It will also create the directory if it does not exist yet. 执行完后可以到master和slave机器上看到/opt/hadoop/hadoopfs/data1和/opt/hadoop/hadoopfs/data2两个目录。 从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。 $ bin/stop-all.sh Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs). 浏览NameNode和JobTracker的网络接口,它们的地址默认为: NameNode - http://master:50070/JobTracker - http://master:50030/ 将输入文件拷贝到分布式文件系统:$ bin/hadoop fs -mkdir input$ bin/hadoop fs -put conf/core-site.xml input 运行发行版提供的示例程序:$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+' 查看输出文件: 将输出文件从分布式文件系统拷贝到本地文件系统查看:$ bin/hadoop fs -get output output $ cat output/* 或者 在分布式文件系统上查看输出文件:$ bin/hadoop fs -cat output/* 统计结果:root@v-jiwan-ubuntu-0:~/hadoop/hadoop-0.20.2-bak/hadoop-0.20.2# bin/hadoop fs -cat output/part-000003 dfs.class2 dfs.period1 dfs.file1 dfs.replication1 dfs.servers1 dfsadmin1 dfsmetrics.log 启动运行成功后,可以多熟悉熟悉hadoop命令,例如: hadoop fs –ls 查看/usr/root目录下的内容,默认如果不填路径这就是当前用户路径;hadoop fs –rmr xxx xxx就是删除目录;hadoop dfsadmin -report 这个命令可以全局的查看DataNode的情况;hadoop job -list 后面增加参数是对于当前运行的Job的操作,例如list,kill等;hadoop balancer 均衡磁盘负载的命令。
|
|
|