Hadoop在ubuntu系统下不同的安装方式
本帖最后由 xng2012 于 2013-12-12 03:09 编辑ubuntu单机伪分布式下hadoop安装
1更新 deb 软件包列表
$ sudo apt-get update
2 安装jdk:$sudo apt-get install sun-java6-jdk//如果出错,参照我博客上的一篇文章《安装jdk遇到的问题及解决办法》
3 设置 CLASSPATH和JAVA_HOME ,系统环境变量
$ sudo gedit /etc/environment
添加以下两行内容:
CLASSPATH=".:/usr/lib/jvm/java-6-sun/lib"
JAVA_HOME="/usr/lib/jvm/java-6-sun"
4下载 hadoop-*.tar.gz 至 /home/shiep205/ //shiep205是用户名
$ cd ~ // 选择默认路径
$ sudo tar xzf hadoop-0.20.0.tar.gz// 解压至当前路径
$ mv hadoop-0.20.0 hadoop // 重命名为 hadoop
$ sudo chown -R shiep205:shiep205 hadoop //赋予shiep205 权限
5更新 hadoop 环境变量
$ gedit hadoop/conf/hadoop-env.sh
将 #export JAVA_HOME=/usr/lib/jvm/java-6-sun
改为exportJAVA_HOME=/usr/lib/jvm/java-6-sun
//即exportJAVA_HOME=****/****,*处改为自己的路径
6配置 SSH //此步不需要改动,一步步输入终端即可
$ sudo apt-get install ssh
$ sudo apt-get install rsync//远程同步, 可能已经安装了最新版本
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost //验证配置成功与否
7伪分布运行模式是在运行在单个机器之上, 每一个 hadoop 的守护进程为一个单独的 java 进程。
(一) 配置三个文件
首先进入你存的hadoop文件夹里的conf文件夹(本例将hadoop安装在shiep205/hadoop文件夹里)
$cd ~
$cdhadoop/conf
$nano core-site.xml
即进入 conf/core-site.xml: (按下面逐个修改配置文件)
修改conf/core-site.xml:文件:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改conf/hdfs-site.xml: 文件:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改conf/mapred-site.xml: 文件:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
(二)格式化HDFS
进入hadoop主目录的bin目录下
$cd hadoop/bin
$./hadoop namenode -format //格式化hadoop namenode,很多时候namenode启动不起来可以试试格式化一下,会好使。
$./start-all.sh //启动hadoop的各个监护进程
可以通过http://localhost:50070 和http://localhost:50030 查看namenode和jobtracker。
$./stop-all.sh //关闭hadoop的各个监护进程
vm下ubuntu集群安装hadoop1、 在wm下安装ubuntu9.102、更新deb软件包列表:$ sudo apt-get update3、安装系统更新 $ sudo apt-get upgrade4、安装JDK$ sudo apt-get install sun-java6-jdk//默认路径为:/usr/lib/jvm5、设置CALSSPATH和JAVA_HOME$ sudo gedit /etc/environment添加:CLASSPATH=”.:/usr/lib/jvm/java-6-sun/lib” JAVA_HOME=”/usr/lib/jvm/java-6-sun”6、调整系统虚拟机的优先顺序$ sudo gedit /etc/jvm在文件顶部添加一行/usr/lib/jvm/java-6-sun如果文件/etc/jvm不存在则自己新建7、下载hadoop-0.20.0.tar.gz$ cd /home/fly//设当前用户名为:fly$ sudo tar xzf hadoop-0.20.0.tar.gz //解压$ mv hadoop-0.20.0 hadoop //重命名文件夹$ sudo chown –R fly:fly hadoop //赋于fly权限8、更新hadoop环境变量$ gedit hadoop/conf/hadoop-env.sh将#export JAVA_HOME= *** 这一行改为:export JAVA_HOME=/usr/lib/jvm/java-6-sun9、配置ssh$ sudo apt-get install ssh$ sudo apt-get install rsync$ ssh-keygen –t dsa –P ‘’ –f~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys$ ssh localhost //验证配置成功与否10、在wm下复制出另外两个虚拟机,并分别把这三个虚线拟分别更名为:dream1、dream2、dream3(更改主机名的方法在这就不写了。)建立三个虚拟机的通信:安装过wm后,电脑网络连接里会多出现两个网络连接设置共享原来的本地连接:设置虚拟机连接:其中的IP自己设,DNS可不设置。在dream1虚拟机里添加一个网络连接设置:分别再设置另两个dream2,dream3的IP分别为:192.168.100.126、192.168.100.127注意:今后如需连接互联网则用以前默认的自动获取IP的连接:auto eth0, 三个虚拟机通信见则切换联接:wired connection1 1010.Namenode :dream1Datenode:dream2\dream311、(每个虚拟机都要做) $ sudo gedit /etc/hosts 添加数据: 192.168.100.125dream1192.168.100.126dream2192.168.100.127dream312、配置SSH(保证无密码访问) 在dream2\dream3上分别执行$ scp fly@dream1:/home/fly/.ssh/id_dsa.pub/home/fly/.ssh/dream1_dsa.pub$ cat~/.ssh/dream1.pub>>~/.ssh/authorized_keys在dream1上执行$ scp fly@dream1:/home/fly/.ssh/id_dsa.pub/home/fly/.ssh/dream1_dsa.pub$ cat~/.ssh/dream1.pub>>~/.ssh/authorized_keys13、配置conf/masters , conf/slaves 在所有节点上: <hadoop 目录>/conf/masters加入一行:dream1 <hadoop 目录>/conf/slaves加入行:dream2dream314、配置core-site.xml , hdfs-site.xml , mapred-site.xml core-site.xml: hdfs-site.xml: mapred-site.xml:
15、格式化分布式文件系统 在namenode上 $ sudo bin/hadoop namenode –format 启动HDFS,在namenode上 $ bin/start-all.sh $ bin/stop-all.sh
在Linux 的Ubuntu上装Hadoop在装Hadoop之前首先需要:1.java1.6.x 最好是sun的,1.5.x也可以2.ssh安装ssh
$ sudo apt-get install ssh$ sudo apt-get install rsync
下载Hadoop从http://hadoop.apache.org/core/releases.html 下载最近发布的版本最好为hadoop创建一个用户:比如创建一个group为hadoop user为hadoop的用户以及组
$ sudo addgroup hadoop$ sudo adduser --ingroup hadoop hadoop
解压下载的hadoop文件,放到/home/hadoop目录下 名字为hadoop配置JAVA_HOME:
gedit ~/hadoop/conf/hadoop-env.sh
将Java代码
1. # The java implementation to use.Required. 2. # export JAVA_HOME=/usr/lib/j2sdk1.5-sun # The java implementation to use.Required.# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
修改成java的安装目录:
# The java implementation to use. Required.export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15
现在可以使用单节点的方式运行:
$ cd hadoop$ mkdir input$ cp conf/*.xml input$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs+'$ cat output/*
Pseudo-distributed方式跑:配置ssh
$ su - hadoop$ ssh-keygen -t rsa -P ""Generating public/private rsa key pair.Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):Created directory '/home/hadoop/.ssh'.Your identification has been saved in /home/hadoop/.ssh/id_rsa.Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.The key fingerprint is:9d:47:ab:d7:22:54:f0:f9:b9:3b:64:93:12:75:81:27 hadoop@ubuntu
让其不输入密码就能登录:
hadoop@ubuntu:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用:
$ ssh localhost
看看是不是直接ok了。hadoop配置文件:
conf/core-site.xml
Java代码
1. <?xml version="1.0"?> 2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 3. 4. <!-- Put site-specific property overrides in this file. --> 5. 6. <configuration> 7. <property> 8. <name>hadoop.tmp.dir</name> 9. <value>/home/hadoop/hadoop-datastore/hadoop-${user.name}</value> 10. </property> 11. <property> 12. <name>fs.default.name</name> 13. <value>hdfs://localhost:9000</value> 14. </property> 15. </configuration> <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-datastore/hadoop-${user.name}</value> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property></configuration>
hadoop.tmp.dir配置为你想要的路径,${user.name}会自动扩展为运行hadoop的代码
1. <configuration> 2. <property> 3. <name>dfs.replication</name> 4. <value>1</value> 5. </property> 6. </configuration> <configuration><property> <name>dfs.replication</name> <value>1</value></property></configuration>dfs.replication为默认block复制数量conf/mapred-site.xmlXml代码1. <configuration> 2. <property> 3. <name>mapred.job.tracker</name> 4. <value>localhost:9001</value> 5. </property> 6. </configuration> <configuration><property> <name>mapred.job.tracker</name> <value>localhost:9001</value></property></configuration>执行格式化分布式文件系统:$ bin/hadoop namenode -format启动hadoop:Java代码1. $ bin/start-all.sh $ bin/start-all.sh可以从NameNode - http://localhost:50070/JobTracker - http://localhost:50030/查看NameNode和JobTracker运行例子:$ bin/hadoop fs -put conf input$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs+'look at the run result:$ bin/hadoop fs -get output output$ cat output/*
页:
[1]