1. 下载ubuntu14.04 i386
地址:http://old-releases.ubuntu.com/releases/14.04.1/
2. 安装JDK
地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.1.解压安装
我们把JDK安装到这个路径:/jdk 或/usr/lib/jvm
如果没有这个目录(第一次当然没有),我们就新建一个目录
sudo mkdir /jdk
建立好了以后,我们来到刚才下载好的压缩包的目录,解压到我们刚才新建的文件夹里面去,并且修改好名字方便我们管理
sudo tar -zxvf jdk-8u91-linux-i586.gz -C /jdk
// sudo mv jdk1.7.0_05/jdk7
2.2.配置环境变量
Vim ~/.bashrc
在打开的文件的末尾添加
exportJAVA_HOME=/jdk1.8.0_91
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
保存退出,然后输入下面的命令来使之生效
source ~/.bashrc
2.3配置环境变量
sudo gedit /etc/profile
exportJAVA_HOME=/jdk1.8.0_91
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
3.在Ubuntu下创建hadoop用户组和用户
1. 创建hadoop用户组;
1. sudo addgroup hadoop
2. 创建hadoop用户;
1. sudo adduser -ingroup hadoop hadoop
3. 给hadoop用户添加权限,打开/etc/sudoers文件;
1. sudo gedit /etc/sudoers
在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL.
4.1 sudo apt-get install ssh openssh-server
4.2 建立ssh无密码登录本机
切换到hadoop用户,执行以下命令:
1. su - hadoop
ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
1. 创建ssh-key,,这里我们采用rsa方式;
1. ssh-keygen -t rsa -P "" (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)
2. 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的;
1. cd ~/.ssh
2. cat id_rsa.pub >> authorized_keys (完成后就可以无密码登录本机了。)
3. 登录localhost;
1. ssh localhost
4. 执行退出命令;
1. exit
5.安装Hadoop
0. sudo tar -xzvf hadoop-2.6.0.tar.gz-C /usr/local/hadoop
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
6.尝试运行自带例子
7.Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit./etc/hadoop/core-site.xml
),将当中的
<configuration>
</configuration>
修改为下面配置:
1. <configuration>
2. <property>
3. <name>hadoop.tmp.dir</name>
4. <value>file:/usr/local/hadoop/tmp</value>
5. <description>Abase for other temporary directories.</description>
6. </property>
7. <property>
8. <name>fs.defaultFS</name>
9. <value>hdfs://localhost:9000</value>
10. </property>
11. </configuration>
同样的,修改配置文件 hdfs-site.xml:
1. <configuration>
2. <property>
3. <name>dfs.replication</name>
4. <value>1</value>
5. </property>
6. <property>
7. <name>dfs.namenode.name.dir</name>
8. <value>file:/usr/local/hadoop/tmp/dfs/name</value>
9. </property>
10. <property>
11. <name>dfs.datanode.data.dir</name>
12. <value>file:/usr/local/hadoop/tmp/dfs/data</value>
13. </property>
14. </configuration>
Hadoop配置文件说明
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
配置完成后,执行 NameNode 的格式化:
1. ./bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 和“Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
执行namenode格式化
如果在这一步时提示 Error:JAVA_HOME is not set and could not be found. 的错误,则说明之前设置JAVA_HOME 环境变量那边就没设置好,请按教程先设置好JAVA_HOME 变量,否则后面的过程都是进行不下去的。
接着开启 NameNode 和 DataNode 守护进程。
1. ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
Shell 命令
若出现如下SSH提示,输入yes即可。
启动Hadoop时的SSH提示
启动时可能会出现如下 WARN 提示:WARNutil.NativeCodeLoader: Unable to load native-hadoop library for your platform…using builtin-java classes where applicable WARN 提示可以忽略,并不会影响正常使用。
成功启动后,可以访问Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。