Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。现在很多做大数据(海量数据)的公司和团体都在用Hadoop,随着数据量的增大(爆炸)和应用需求的增加,Hadoop也越来越火。
最近想学习一下Hadoop,就在ubuntu 14.04上安装了Hadoop 2.5.1,因为两者都是当前最新的版本,网上对安装和配置的文章仍是针对较老版本的,新版本有一些变化,在尝试安装的过程中犯了一些错误。最终综合各种文章和教程,终于安装和配置成功,遂以此文总结分享。
本文说明了在ubuntu 14.04上安装Hadoop 2.5.1,并配置伪分布模式的步骤。
(伪分布模式. Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。)。
说明:我的机器名称为:mr-OptiPlex-780 用户名为:mr
一、创建hadoop用户组和用户
1.添加hadoop用户组
mr@mr-OptiPlex-780:~$ sudo addgroup hadoop
可能会要求输入密码,此处即你的用户密码。
2.添加hadoop用户到hadoop用户组
mr@mr-OptiPlex-780:~$ sudo adduser --ingroup hadoop hadoop
之后让输入新的UNIX密码(PS:使用主键盘而不是小键盘输入数字,因为小键盘的NumLock有时并不自动打开,ubuntu又不会以*来显示密码输入,会造成不必要的困扰、心塞。。)
hadoop的用户信息直接回车默认,最后Y确认。
3.给hadoop用户添加管理员权限
mr@mr-OptiPlex-780:~$ sudo gedit /etc/sudoers
此处是用命令打开/etc文件夹下的udoers文本文件进行编辑,当然也可以自己找到这个文件夹打开进行编辑。
在root ALL=(ALL:ALL) ALL的下面添加一行hadoop ALL=(ALL:ALL) ALL,然后保存退出即可。
4.切换到hadoop账户
mr@mr-OptiPlex-780:~$ su – hadoop
二、配置ssh免密码登录
hadoop@mr-OptiPlex-780:~$ sudo apt-get install openssh-server
hadoop@mr-OptiPlex-780:~$ sudo /etc/init.d/ssh start
3.设置免密码登录
hadoop@mr-OptiPlex-780:~$ ssh-keygen -t rsa -P ""
之后在Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):处有个停顿,直接回车即可。
hadoop@mr-OptiPlex-780:~$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
此时即完成设置免密码登录。
hadoop@mr-OptiPlex-780:~$ ssh localhost
hadoop@mr-OptiPlex-780:~$ exit
hadoop@mr-OptiPlex-780:~$ ssh localhost
发现已经不需输入密码
三、安装JAVA
hadoop@mr-OptiPlex-780:~$ su – mr
mr@mr-OptiPlex-780:~$ sudo apt-get install openjdk-7-jdk
之间会询问是否继续,输入Y继续,等待完成。
mr@mr-OptiPlex-780:~$ java -version
四、安装Hadoop 2.5.1
1.下载Hadoop在http://hadoop.apache.org/下载hadoop安装包,我下载的是hadoop-2.5.1.tar.gz
将此压缩包放置在/usr/local文件夹中
2.切换到hadoop用户,并转至目录
mr@mr-OptiPlex-780:~$ su - hadoop
hadoop@mr-OptiPlex-780:~$ cd /usr/local
3.解压并移动
hadoop@mr-OptiPlex-780:/usr/local$ sudo tar xzf hadoop-2.5.1.tar.gz
hadoop@mr-OptiPlex-780:/usr/local$ sudo mv hadoop-2.5.1 /usr/local/hadoop
之后便可发现在/usr/local/中多了一个名为hadoop的文件夹
4.修改属主用户,保证操作都在hadoop用户下进行
hadoop@mr-OptiPlex-780:/usr/local$ sudo chown -R hadoop:hadoop hadoop
五、配置文件,修改环境变量
1.配置hadoop-env.sh
hadoop@mr-OptiPlex-780:/usr/local$ sudo gedit hadoop/etc/hadoop/hadoop-env.sh
hadoop-env.sh文件在绝对路径/usr/local/hadoop/etc/hadoop/下,此处使用相对路径,因为我们已经在/usr/local/内
修改export JAVA_HOME=后面的内容,我的JDK路径为 /usr/lib/jvm/java-7-openjdk-amd64
所以做如下图修改
2.配置yarn-env.sh
和上面一个在同一个文件夹
hadoop@mr-OptiPlex-780:/usr/local$ sudo gedit hadoop/etc/hadoop/yarn-env.sh
3.配置环境变量
hadoop@mr-OptiPlex-780:/usr/local$ sudo gedit /etc/profile
这个文件在绝对路径/etc/下,而不再是上面两个的/usr/local/hadoop/etc/hadoop
在此文件最下方添加
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/lib
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=/usr/local/hadoop
export YARN_CONF_DIR=$YARN_HOME/etc/hadoop
4.使设置生效
hadoop@mr-OptiPlex-780:/usr/local$ source /etc/profile
hadoop@mr-OptiPlex-780:/usr/local$ source usr/local/hadoop/etc/hadoop-env.sh
hadoop@mr-OptiPlex-780:/usr/local$ source usr.local/hadoop/etc/yarn-env.sh
5.查看环境变量
hadoop@mr-OptiPlex-780:/usr/local$ echo $PATH
看hadoop的bin,sbin,lib文件夹是否已包含
6.配置core-site.xml
此文件在/usr/local/hadoop/etc/hadoop/下
用gedit打开,直接将下方的空白配置文本修改为
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp </value>
</property>
</configuration>
7.配置hdfs-site.xml
和上面在同一个文件夹,同理修改为
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
8.新建mapred_site.xml
这个文件原本没有,在和上面的xml文件同一个文件夹里新建一个xml文件,命名为mapred_site.xml,内容为
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
六、启动Hadoop
hadoop@mr-OptiPlex-780:/usr/local$ hadoop namenode -format
出现如下图即格式化成功
hadoop@mr-OptiPlex-780:/usr/local$ hadoop/sbin/start-dfs.sh
hadoop@mr-OptiPlex-780:/usr/local/hadoop$ sbin/start-dfs.sh
4.用jps命令列出守护进程验证安装成功
hadoop@mr-OptiPlex-780:/usr/local$ jps
七、常见问题
1. 没有权限
对某文件(夹)没有权限,下句即获取/usr/local/hadoop文件夹的读写权限
hadoop@mr-OptiPlex-780:/usr/local$ sudo chmod -R 777 /usr/local/hadoop
2.启动dfs出现错误:Error: Cannot find configuration directory:
是/etc/profile 中环境变量没有设置好,参照前面的”五、配置“的内容
文章到此结束,博主为新人,水平非常有限,愿向大家学习,共同进步。
参考文献:
此博文对之前的各文章进行总结,步骤解释很详细,非常感谢。但是针对老版本,新版本有些许变化,本文弥补了这些。