Linux下安装Hadoop完全分布式(Ubuntu12.10)
Hadoop的安装非常简单,可以在官网上下载到最近的几个版本,最好使用稳定版。本例在3台机器集群安装。hadoop版本如下:
工具/原料
- hadoop-0.20.2.tar.gz
- Ubuntu12.10
安装步骤:
- 1
安装ubuntu
Ubuntu12.10交换空间4G(内存2G)。具体安装过程不赘述。
用户名统一为:hadoop;
组群:hadoop;
机器名:namenode(主节点),datanode1(从节点1),datanode2(从节点2)。
- 2
在Ubuntu下创建hadoop用户组和用户(也可在安装系统时通过界面配置)
1. 创建hadoop用户组;
$ sudo addgroup hadoop
记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。
2. 创建hadoop用户;
$ sudo adduser -ingroup hadoop hadoop
3. 给hadoop用户添加权限,打开/etc/sudoers文件;
$ sudo gedit /etc/sudoers
4. 给hadoop用户赋予root用户同样的权限。
在root ALL=(ALL:ALL) ALL下添加如下内容:
hadoop ALL=(ALL:ALL) ALL

- 3
在Ubuntu下安装JDK
配置环境变量:
$ sudo gedit /etc/profile
在文件的末尾加上如下内容,保存并关闭文件
# for java
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
使设置生效:到此部JDK的配置就都完成了
$ source /etc/profile
为保证正确性,进行简单的测试
$ java -version
输出:
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0)
Java HotSpot(TM) Server VM
修改默认JDK:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0/bin/jar 300
以下两句可选(最好执行):
sudo update-alternatives --config java
sudo update-alternatives --config javac


- 4
修改机器名(这步骤可以省略)
每当ubuntu安装成功时机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。
1. 打开/etc/hostname文件;
$ sudo gedit /etc/hostname
2. 将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为"namenode"。 重启生效。
3.修改/etc/hosts文件
$ sudo gedit /etc/hosts
改为如下所示,并且将每台机器的IP设置为固定IP:

- 5
安装ssh服务
这里的ssh不是指三大框架:spring,struts,hibernate,而是一种远程登录协议。
ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:
$ sudo ps -ef | grep ssh
如果只有 ssh-agent 就需要安装openssh-server了。
$ sudo apt-get install ssh openssh-server
- 6
建立ssh无密码登录本机
首先要转换成hadoop用户,执行以下命令:
$ sudo su - hadoop
ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
1. 创建ssh-key,,这里我们采用rsa方式;
$ ssh-keygen -t rsa -P ""
请注意, ssh-kengen 是用连字符连着的,千万不要分开。问题如下:
按照您的步驟執行的過程中我在ssh -keygen -t rsa -P ""這邊發生的點小狀況輸入之後終端機顯示Bad escape character "ygen"(红字部分就是问题所在,他将 ssh-keygen 分开了。)
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)
2. 创建授权文件authorized_keys
进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:
(1) 将id_rsa.pub追加到authorized_keys授权文件中;
$ cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys
(2) 复制 id_rsa.pub 为 authorized_keys
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
3. 登录localhost;
$ ssh localhost
4. 执行退出命令(exit或CTRL+D);

- 7
安装hadoop
1. 假设hadoop-0.20.2.tar.gz在桌面,将它复制到安装目录/usr/local/下;
$ sudo cp hadoop-0.20.2.tar.gz /usr/local/
2. 解压hadoop-0.20.2.tar.gz;
$ cd /usr/local
$ sudo tar -zxvf hadoop-0.20.2.tar.gz
3. 将解压出的文件夹改名为hadoop;
$ sudo mv hadoop-0.20.2 hadoop
4. 将该hadoop文件夹的属主用户设为hadoop,
$ sudo chown -R hadoop:hadoop hadoop
5. 打开hadoop/conf/hadoop-env.sh文件;
$ sudo gedit hadoop/conf/hadoop-env.sh
6. 配置conf/hadoop-env.sh(找到#exportJAVA_HOME=...,去掉#,然后加上本机jdk的路径);
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0
7. 打开conf/core-site.xml文件;
$ sudo gedit hadoop/conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
8. 打开conf/mapred-site.xml文件;
$ sudo gedit hadoop/conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:9001</value>
</property>
</configuration>
9. 打开conf/hdfs-site.xml文件;
$ sudo gedit hadoop/conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
注意:datalog1,datalog2,data1,data2文件夹最好事先建好。
10. 打开conf/masters文件,添加作为secondarynamenode的主机名.
11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。
作者设置如下:



- 8
运行hadoop
1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,
$ cd /usr/local/hadoop/
$ bin/hadoop namenode -format
2. 启动bin/start-all.sh
进入bin目录下, $ ./start-all.sh 关闭:同目录下./stop-all.sh
3. 检测hadoop是否启动成功
$ jps
4. Web查看
http://localhost:50030/ - 一个jobtracker的web访问接口,为的是方便用户查看相关信息。
类似的还有:
http://localhost:50070/ – web UI of theNameNode daemon
http://localhost:50030/ – web UI of theJobTracker daemon
http://localhost:50060/ – web UI of theTaskTracker daemon

END
注意事项
- 集群中所有机器的登录用户名和所属组都要相同,本文用户名为hadoop,组群也为Hadoop。
- 每台机器的IP设置为固定IP,主机名-ip需要在每一台机器里修改对应的hosts文件。
- 注意代码中的粗斜体为具体安装目录,要和实际目录相同。
Linux下安装Hadoop完全分布式(Ubuntu12.10)的更多相关文章
- Linux下配置Hadoop伪分布式环境
1. 准备Linux环境 提示:我用的系统是CentOS 6.4. 1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host- ...
- Linux下配置Hadoop全分布式环境
1. 前提 部署全分布式环境,我们肯定不能在一台服务器上了,这里我用了7台服务器,在VMware上开了7个虚拟机,如下图所示: 我基本配置了一晚上才搞定,第一次配置一般都有错,这时候不妨去到hadoo ...
- 【大数据】Linux下安装Hadoop(2.7.1)详解及WordCount运行
一.引言 在完成了Storm的环境配置之后,想着鼓捣一下Hadoop的安装,网上面的教程好多,但是没有一个特别切合的,所以在安装的过程中还是遇到了很多的麻烦,并且最后不断的查阅资料,终于解决了问题,感 ...
- Linux下安装Hadoop
第一步: Hadoop需要JAVA的支持,所以需要先安装JAVA 查看是否已安装JAVA 查看命令: java -version JRE(Java Runtime Environment),它是你运行 ...
- VMwareWorkstation 平台 Ubuntu14 下安装配置 伪分布式 hadoop
VMwareWorkstation平台Ubuntu14下安装配置伪分布式hadoop 安装VmwareStation 内含注册机. 链接:https://pan.baidu.com/s/1j-vKgD ...
- CentOS下安装hadoop
CentOS下安装hadoop 用户配置 添加用户 adduser hadoop passwd hadoop 权限配置 chmod u+w /etc/sudoers vi /etc/sudoers 在 ...
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- Linux下安装Zookeeper
Zookeeper是一个协调服务,可以用它来作为配置维护.名字服务.分布式部署: 下面,我来分享一下在Linux下安装Zookeeper的整个步骤,让大家少走弯路. 一.Zookeeper下载 [ro ...
- Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...
随机推荐
- 敏捷转型历程 - Sprint3 回顾会
我: Tech Leader 团队:团队成员分布在两个城市,我所在的城市包括我有4个成员,另外一个城市包括SM有7个成员.另外由于我们的BA离职了,我暂代IT 的PO 职位.PM和我在一个城市,但他不 ...
- Spark的StandAlone模式原理和安装、Spark-on-YARN的理解
Spark是一个内存迭代式运算框架,通过RDD来描述数据从哪里来,数据用那个算子计算,计算完的数据保存到哪里,RDD之间的依赖关系.他只是一个运算框架,和storm一样只做运算,不做存储. Spark ...
- iOS 方法修饰符
一.NS_DESIGNATED_INITIALIZER 用来修饰init方法,被修饰的方法称为designated initializer:没有被这个修饰的init方法称为convenience i ...
- centos7 安装时候检测不到空余硬盘的解决办法
我是用U盘装的centos,在进行硬盘规划时,看到硬盘的可用空间太少 这是因为我的硬盘以前装的是windows系统,硬盘几乎都已经被windows 操作系统给使用了,剩余空间也只会是windows用剩 ...
- java I/O流
输入流(读取数据的流) BufferedInputStream---继承--->FileInputStream--继承--->InputStream------> (1)字节流操作中 ...
- Princeton Algorithms week3 Assignment
这周编程作业是实现检测点共线的算法.和排序算法有关系的地方在于,对斜率排序后可以很快的检测出来哪些点是共线的,另外这个算法的瓶颈也在于排序的性能. 一点收获: java传参数时传递的是值,这很多人都知 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建
公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...
- C#中一些常用的加密和哈希处理
URL编码,默认UTF8编码方式 /// <summary> /// URL编码,默认UTF8编码方式 /// </summary> /// <param name=&q ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- EasyPR--开发详解(4)形态学操作、尺寸验证、旋转等操作
在上一篇深度分析与调优讨论中,我们介绍了高斯模糊,灰度化和Sobel算子.在本文中,会分析剩余的定位步骤. 根据前文的内容,车牌定位的功能还剩下如下的步骤,见下图中未涂灰的部分. 图1 车牌定位步骤 ...