Ubuntu下伪分布式模式Hadoop的安装及配置

1、Hadoop运行模式
Hadoop有三种运行模式,分别如下:
单机(非分布式)模式
伪分布式(用不同进程模仿分布式运行中的各类节点)模式
完全分布式模式
注:前两种可以在单机运行,最后一种用于真实的集群环境,通常用在生产环境上。我们可以搭建本地的伪分布式模式来模拟分布式环境的执行。

2、Hadoop的安装及配置
环境:Ubuntu10.10,Hadoop 0.21.0
安装步骤如下:
1、准备工作:
1)、安装ssh server,如何安装ssh server请看http://www.tieguanyin168.com/index.php/ubuntu-ssh-1650.html
2)、安装sun jdk6,切忌一定要java6及其以上版本,如何安装jdk6请看http://www.tieguanyin168.com/index.php/ubuntu-jdk-1631.html

2、增加一个用户组用户,用于hadoop运行及访问。
root@ubuntu:~# sudo addgroup hadoop
root@ubuntu:~# sudo adduser –ingroup hadoop hadoop

3、生成SSH证书,配置SSH加密key
hadoop@ubuntu:~$ su – hadoop
Password:
hadoop@ubuntu:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
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:
a8:67:6f:bd:04:13:41:5f:a7:13:2d:84:e7:8a:8c:43 hadoop@ubuntu
The key's randomart image is:
+–[ RSA 2048]—-+
|       .o  o+..  |
|         o..o+.  |
|        . .oo.   |
|      E. .  ..   |
|     ..oS. .     |
|     .o oo.      |
|    . o. ..      |
|     o ….      |
|       .. ..     |
+—————–+
hadoop@ubuntu:~$

hadoop@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
hadoop@ubuntu:~$

4、配置完成,测试一下:
hadoop@ubuntu:~$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is d7:87:25:47:ae:02:00:eb:1d:75:4f:bb:44:f9:36:26.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Linux ubuntu 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
Ubuntu 10.04 LTS
[...snipp...]
hadoop@ubuntu:~$

5、禁用ipV6配置:
打开sudo gedit /etc/sysctl.conf,此文件需要root权限。
再次打开文件中,追加如下:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

重启,测试是否配置成功:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
如果是1就ok了。

下面就是安装Hadoop(Hadoop保存在/home目录下)了。
首先是:下载,解压缩,分配权限。
下载就不说了。
下载后运行如下:
root@ubuntu:~# cd /home
root@ubuntu:/home# ls
apache-tomcat-6.0.18  jdk1.6.0_30              study
hadoop                jdk-6u30-linux-i586.bin  ubuntu
hadoop-0.21.0.tar.gz  ljq                      web.war
root@ubuntu:/home# sudo tar xzf hadoop-0.21.0.tar.gz
root@ubuntu:/home# ls
apache-tomcat-6.0.18  hadoop-0.21.0.tar.gz     ljq     web.war
hadoop                jdk1.6.0_30              study
hadoop-0.21.0         jdk-6u30-linux-i586.bin  ubuntu
root@ubuntu:/home# sudo mv hadoop-0.21.0 hadoop
root@ubuntu:/home# sudo chown -R hadoop:hadoop hadoop #chown [OPTION]  [OWNER][:[GROUP]]  FILE
root@ubuntu:/home#

到此就安装完毕。

配置环境变量(共有4处要配置)
1、在/home/hadoop/hadoop-0.21.0/conf/hadoop-env.sh文件中添加环境变量信息。
2、在/etc/profile文件中添加环境变量信息。
3、在/home/.bash_profile文件中添加环境变量信息。
4、在/home/hadoop/.bashrc文件中添加环境变量信息。

环境变量信息如下:

1
2
3
4
5
6
7
8
HADOOP_HOME=/home/hadoop/hadoop-0.21.0
JAVA_HOME=/home/jdk1.6.0_30
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:$CLASSPATH
export HADOOP_HOME
export JAVA_HOME
export PATH
export CLASSPATH

重启,接着验证环境变量是否配置成功,如下:
export、echo $HADOOP_HOME、java -version

下面说说如何配置和启动:
基本思路是配置core-site.xml、mapred-site.xml、hdfs-site.xml。
首先建立一个用来存放数据的目录:mkdir /home/hadoop/hadoop-datastore

打开/home/hadoop/hadoop-0.21.0/conf/core-site.xml,配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-datastore/</value>
    <description>A base for other temporary directories.</description>
  </property>
 
  <property>
   <!--fs.default.name指定NameNode的IP地址和端口号-->
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
    <description>The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.</description>
  </property>
</configuration>

打开/home/hadoop/hadoop-0.21.0/conf/mapred-site.xml,配置如下

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>localhost:54311</value>
  <description>The host and port that the MapReduce job tracker runs
  at.  If "local", then jobs are run in-process as a single map
  and reduce task.
  </description>
</property>
</configuration>

打开/home/hadoop/hadoop-0.21.0/conf/hdfs-site.xml,配置如下

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<!--block的副本数,默认为3;你可以设置为1 这样每个block只会存在一份。-->
  <name>dfs.replication</name>
  <value>1</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>
</configuration>

ok,配置完毕

格式化HDFS:
hadoop@ubuntu:~$ /home/hadoop/hadoop-0.21.0/bin/hadoop namenode -format

启动HDFS和MapReduce
hadoop@ubuntu:~/hadoop-0.21.0/bin$ ./start-all.sh

停止服务的脚本是:
hadoop@ubuntu:~/hadoop-0.21.0/bin$ ./stop-all.sh

通过jps查看进程是否启动成功
hadoop@ubuntu:~/hadoop-0.21.0/bin$ jps
5695 DataNode
5503 NameNode
6181 TaskTracker
6222 Jps
5890 SecondaryNameNode
5991 JobTracker
hadoop@ubuntu:~/hadoop-0.21.0/bin$
出现如上信息,表示hadoop启动成功,缺一不可。

netstat -at|grep 50030
netstat -at|grep 50070
查看端口是否正常

注意:有时候有些启动不成功,可以在/home/hadoop/hadoop-0.21.0/logs/查看日志信息进行诊断。

访问http://localhost:50070可以看到NameNode以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及日志等。
访问http://localhost:50030可以查看JobTracker的运行状态。

50070是dfs的端口,50030是MR的端口。

参考资料
Ubuntu下安装及配置单点hadoop
http://www.hadoopor.com/thread-2674-1-1.html
hadoop常见异常总结:
http://www.tieguanyin168.com/index.php/hadoop-exception-1706.html

原文地址:https://www.cnblogs.com/linjiqin/p/3147880.html