Ubuntu11.10下安装Hadoop1.0.0(单机伪分布式)
fmms
13年前
<p>环境配置:Ubuntu11.10,Hadoop1.0.0</p> <p><img title="Ubuntu11.10" border="0" alt="Ubuntu11.10" src="https://simg.open-open.com/show/7cad2b5bc17b873c8730bd1c525f05bc.jpg" width="700" height="525" /></p> <p>安装ssh</p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">apt-get install ssh</pre> <p></p> 安装rsync <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">apt-get install rsync</pre> <p></p> 配置ssh免密码登录 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys</pre> <p></p> 验证是否成功 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">ssh localhost</pre> <p></p> <p></p> <p>下载<a href="/misc/goto?guid=4959500571339295777" rel="nofollow" target="_blank">Hadoop1.0.0</a>,<a href="/misc/goto?guid=4959500571425670038" rel="nofollow" target="_blank">JDK</a></p> <p>新建 linux 终端,建立app目录,Java和Hadoop都将安装在此目录中。</p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">mkdir /home/app</pre> <p></p> 接下来,安装Java和Hadoop,Hadoop解压即可。 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">cd /home/app chmod +x jdk-6u30-linux-i586.bin ./jdk-6u30-linux-i586.bin tar zxf hadoop-1.0.0-bin.tar.gz</pre> <p></p> <p>配置JDK环境变量</p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">vi /etc/profile</pre> <p></p> 增加下面语句到最后 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">export JAVA_HOME=/home/app/jdk1.6.0_30 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar</pre> <p></p> 接下来开始配置Hadoop <p></p> <p>进入Hadoop目录</p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">cd /home/app/hadoop-1.0.0</pre> <p></p> 修改配置文件,指定JDk安装路径 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">vi conf/hadoop-env.sh</pre> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">export JAVA_HOME=/home/app/jdk1.6.0_30</pre> <p></p> 修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">vi conf/core-site.xml</pre> <p></p> <pre class="brush:xml; toolbar: true; auto-links: false;"><configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration></pre> <p></p> 修改Hadoop中HDFS的配置,配置的备份方式默认为3,因为安装的是单机版,所以需要改为1 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">vi conf/hdfs-site.xml</pre> <p></p> <pre class="brush:xml; toolbar: true; auto-links: false;"><configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration></pre> <p></p> 修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">vi conf/mapred-site.xml</pre> <p></p> <pre class="brush:xml; toolbar: true; auto-links: false;"><configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration></pre> <p></p> 接下来,启动Hadoop,在启动之前,需要格式化Hadoop的文件系统HDFS,进入Hadoop文件夹,输入下面命令 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">bin/hadoop namenode -format</pre> <p></p> 然后启动Hadoop,输入命令 <p></p> <p></p> <pre class="brush:shell; toolbar: true; auto-links: false;">bin/start-all.sh</pre> <p></p> 这个命令为所有服务全部启动。 <p></p> <p>最后,验证Hadoop是否安装成功。打开浏览器,分别输入一下网址:</p> <p>http://localhost:50030 (MapReduce的Web页面)</p> <p>http://lcoalhost:50070 (HDfS的web页面)</p> <p>如果都能查看,说明安装成功。</p> <p><img title="w2.jpg" border="0" alt="w2.jpg" src="https://simg.open-open.com/show/732980b04747218ecc4d52fa725a00e3.jpg" width="700" height="525" /></p> <p><img title="w3.jpg" border="0" alt="w3.jpg" src="https://simg.open-open.com/show/cedc7159f7271f62e6cb60eef7e4c2f1.jpg" width="700" height="525" /></p> <p>Hadoop分别从三个角度将主机划分为两种角色:</p> <p>第一,划分为master和slave,即主人与奴隶。</p> <p>第二,从HDFS的角度,将主机划分为namenode和datanode(在分布式文件系统中,目录的管理很重要,管理目录的就相当于主人,而namenode就是目录管理者)。</p> <p>第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个job经常被划分为多个task,从这个角度不难理解它们之间的关系)。</p> <p></p>