首页 > 代码库 > Hadoop的安装(Ubuntu 12.10为例)
Hadoop的安装(Ubuntu 12.10为例)
1. JDK安装
a) 安装目录:网上的安装JDK资料中安装目录基本有两种——/opt和/usr/local。这两个目录安装在哪里其实都无所谓,只不过在以前的linux中人们习惯将软件安装在/usr/local中。这里推荐/opt目录。
b) 配置文件:将JDK同时配置在/etc/profile和/etc/bash.bashrc中
c) 下载32位或64位JDK安装文件,形如jdk-6u37-linux-i586.bin或jdk-6u37-linux-x64.bin
d) 拷贝JDK文件到/opt目录:
# mv jdk-6u37-linux-x64.bin /opt
e) 授权,并执行:
chmod +x jdk-6u37-linux-x64.bin
./jdk-6u37-linux-x64.bin
f) 设置环境变量:
vim /etc/profile
vim /etc/bash.bashrc
在两个文件的末尾都加上下面一段
#set java environment
export JAVA_HOME=/opt/jdk1.6.0_37
export JRE_HOME=/opt/jdk1.6.0_37/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
g) 重新打开终端,测试是否安装成功:
java –version
注1:本部分参考http://www.neversaydie.cc/ubuntu-install-jdk-in-detailed/,谢谢原作者。
注2:或者可以省略以上步骤,直接:
sudo apt-get install openjdk-6-jdk
java -version
2. 安装SSH
a) 安装SSH,运行:
sudo apt-get install ssh
b) 启动服务:
sudo /etc/init.d/ssh start
c) 通过如下命令查看服务是否正确启动:
ps -e | grep ssh
d) 设置成免密码登录,生成私钥和公钥,创建一个空密钥:
ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. Hadoop基本设置
a) 设定hadoop-env.sh:
进入hadoop目录,打开conf目录下到hadoop-env.sh,添加以下信息:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk (视你机器的java安装路径而定)
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin
b) 让环境变量配置生效source:
~$ source /opt/hadoop/conf/hadoop-env.sh
c) 运行一下hadoop自带的例子WordCount来感受以下MapReduce过程:
在hadoop目录下新建input文件夹
~$ mkdir input
将conf中的所有文件拷贝到input文件夹中
~$ cp conf/* input<span style="font-family: Arial, Helvetica, sans-serif; white-space: normal; background-color: rgb(255, 255, 255); "> </span>
运行WordCount程序,并将结果保存到output中
~$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output
观察结果
~$ cat output/*
4. Hadoop伪分布安装
a) 解压hadoop文件,修改配置:
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>
b) 格式化HDFS文件系统:bin/hadoop namenode -format
c) 启动:bin/start-all.sh
d) jps查看JVM实例:
xxx TaskTracker
xxx DataNode
xxx JobTracker
xxx SecondaryNameNode
xxx Jps
xxx NameNode
e) 查看地址:
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
5. Hadoop全分布安装
a) 集群机器三台:
192.168.56.101 master
192.168.56.102 slave1
192.168.56.103 slave2
保证各集群机安装了java,下载hadoop安装文件
为了方便管理可创建一个特定的用户:
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
b) 将hadoop文件的拥有者改为hadoop用户:
sudo chown -R hadoop:hadoop hadoop
c) 通过hadoop账号配置SSH,具体过程参见上文
vim /etc/hosts
192.168.56.101 master
192.168.56.102 slave1
192.168.56.103 slave2
e) 修改/etc/hostname的主机名(如;master,slave1等)
f) 配置hadoop-env.sh的export JAVA_HOME=
以下配置的目录需要确认有权限和目录存在,否则会出现问题。
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<final>true</final>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/hdfs/data</value>
<final>true</final>
</property>
</configuration>
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
conf/masters:
master
conf/slaves:
slave1
slvae2
g) 最后启动hadoop:
bin/hadoop namenode -format#set java environment
bin/start-all.sh
10) 一些基本测试:
Copy the input files into the distributed filesystem:
$ bin/hadoop fs -put conf input
Run some of the examples provided:
$ bin/hadoop jar hadoop-examples-*.jar grep input output ‘dfs[a-z.]+‘
Examine the output files:
Copy the output files from the distributed filesystem to the local filesytem and examine them:
$ bin/hadoop fs -get output output
$ cat output/*
View the output files on the distributed filesystem:
$ bin/hadoop fs -cat output/*
When you‘re done, stop the daemons with:
$ bin/stop-all.sh
PS:注意文件权限问题。。启动的适合我发现以下这个问题
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /xxx/data, expected: rwxr-xr-x, while actual: rwxrwxr-x
通过修改文件权限解决了
注:本部分参考http://my.oschina.net/u/220934/blog/130021,谢谢原作者。