Linux下Hadoop集群环境的安装配置
1)安装Ubuntu或其他Linux系统:
a)为减少错误,集群中的主机最好安装同一版本的Linux系统,我的是Ubuntu12.04。
b)每个主机的登陆用户名也最好都一样,比如都是hadoop,不然到最后启动hadoop时会出现不管你密码是否输入正确,都会提示权限不够的错误,如果你之前装系统时没注意到这个问题,可以之后在每个主机上都新建一个用户hadoop来实现,命令如下:
增加hadoop用户:sudo adduser hadoop
把新加的hadoop用户,添加到admin组中,让其有sudo权限:sudo usermod -aG adm,sudo hadoop
切换到hadoop用户,以hadoop用户重新登陆linux系统即可。
c)修改每个主机的主机名hostname:充当主节点的主机名为master,充当从节点的主机名为slave1,slave2,slave3,4.....N
这里我的实验是2台主机,一个主机充当主节点master,一个主机充当从节点slave2
可以通过命令:sudo vi /etc/hostname 来打开并修改hostname,修改完之后重新打开一个终端就可以看到结果,例如我这里的主节点主主机中修改完登陆用户名和主机名后如下所示:

登陆用户名为:hadoop 主机名为:master
另外一个从节点用户名也为hadoop,主机名为:slave2
2)配置网络
a)配置每个节点的IP使其在同一个局域网内:
例如:
master IP:192.168.130.15 slave2 IP:192.168.130.41
可以通过命令ifconfig来修改IP,例如 :sudo ifconfig eth0 192.168.130.15(新IP地址)。
b)在每个master和slave的hosts文件中加入如下几行:
打开并修改hosts :sudo vi /etc/hosts
新添加内容:
192.168.130.15 master
192.168.130.41 slave2
c)各个节点相互ping测试
例如:这里用主节点master ping下从节点slave2

如果你的实验中slave节点多于1个,每个节点之间都ping下,确保可以ping通。
3)安装JDK
Hadoop是用JAVA编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK,因此在安装Hadoop前,必须安装JDK。
这里我安装的JDK版本是 jdk-6u38-linux-i586.bin,可用其他版本,但需要修改环境变量以及后面的配置路径。
需对实验中所有主机执行以下步骤:
1、把 jdk 安装文件拷贝到/usr/lib 目录下,然后安装
sudo cp jdk-6u38-linux-i586.bin /usr/lib
cd /usr/lib
修改jdk权限: sudo chmod +x jdk-6u38-linux-i586.bin
修改完权限后就可以安装: sudo ./jdk-6u38-linux-i586.bin
2、jdk安装成功后修改环境变量并且把 java 安装到系统
a)配置环境变量,编写一个 java.sh并放到目录 /etc/profile.d 下面,java.sh内容如下:
#set jdk environment
export JAVA_HOME=/usr/lib/jdk1.6.0_38
export JRE_HOME=/usr/lib/jdk1.6.0_38/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
b)提升 java.sh 的权限:
sudo chmod 775 /etc/profile.d/java.sh
c)刷新 profile
source /etc/profile
d)把 Java 安装到系统:
ln –s /usr/lib/jdk1.6.0_38/bin/java /usr/bin/java
e)查看 Java 版本确定已经安装到系统:
java –version

如果看到版本信息,说明安装成功。
4)SSH 无密码验证配置
Hadoop需要通过SSH来启动slave列表中的各台主机的守护进程,因此SSH必须安装。
SSH 是安全壳协议,使用公钥私钥机制,安全的在主机间传输文件,现在需要对集群进行无密码验证访问传输的配置。需对集群所有机器进行配置,建议以下操作集群按步骤同步,即所有机器都完成了一个步骤再进行下一步。
a)、安装 SSH
sudo apt-get install ssh
b)、在 hadoop 用户下,使用命令:
ssh-keygen –t rsa。
一路欢快的回车,有时需要在中间 y/n 时选择 y。
将在~/.ssh 目录下产生一个 id_rsa 的私钥 和 id_rsa.pub 的公钥。

ssh-keygen 表示生成密钥,-t 表示指定生成的密钥类型,这里是rsa
c)、进入~/.ssh 目录下,将 id_rsa.pub 复制为 authorized_keys,即把公钥加入到授权的key中。
cd ~/.ssh
cp id_rsa.pub authorized_keys
d)将本机公钥发给所有其他机器
这里以slave2为例:
scp id_rsa.pub hadoop@master:~/.ssh/slave2_key
中途可能会提示让你输入对方主机的密码,输入之后就会提示成功发送。
所有机器完成此步骤后,在每台机器~/.ssh 目录下都会有其他所有机器发送来的公钥。
例如在执行完上面的命令后,此在master主机的~/.ssh/目录下会多出个slave2_key:

e)将收集到的所有公钥添加到 authorized_keys中
例如:上面master收到了slave2发来的slave2_key后,把其添加到authorized_keys中
cat slave2_key >> authorized_keys
f) ssh登录
对于两台主机第一次 ssh 连接,需要确认 yes,很重要,必须确保集群所有机器相互 ssh连接过,否则后面 hadoop 安装会出问题。
以 master 为例

此时你已经登录到别人的机器了,hadoop@master 变为 hadoop@slave2,可以对slave2机器进行操作了。
exit
注意必须要退出,否则你后面做的所有操作都是在其他人的机器上。
5)安装Hadoop
我这里安装的版本为:hadoop-1.2.0.tar.gz 也可以到官网下载其他版本。
安装步骤如下:
a):在/opt 目录下建立 hadoop 目录,把 hadoop-1.2.0.tar.gz 拷贝到/opt/hadoop 目录下,然后解压
sudo mkdir /opt/hadoop
sudo cp hadoop-1.2.0.tar.gz /opt/hadoop
cd /opt/hadoop
sudo tar –zxvf hadoop-1.2.0.tar.gz
cd hadoop-1.2.0
b) : 配置Hadoop
(1)指定JDK的安装位置:
编辑 conf/hadoop-env.sh 文件,把 JAVA_HOME 设置成 Java 安装根路径,如下:
export JAVA_HOME=/usr/lib/jdk1.6.0_38 ,记住把 export 前面的#去掉
(2)配置conf/目录下的core-site.xml文件,这里配置的是HDFS的地址和端口号:
配置之前请先在/opt/hadoop 目录下建立 tmp 文件夹:sudo mkdir /opt/hadoop/tmp

#core-site.xml 1 <configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

(3)配置conf/目录下的 hdfs-site.xml文件:
配置之前新建目录 /opt/hadoop/hdfs :sudo mkdir /opt/hadoop/hdfs

#hdfs-site.xml <configuration>
<property>
<name>dfs.replication</name>
<value>1</value> #这里1是数据副本数量,默认是3,我这里写成1,因为我只用了1个datacode,slave2
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property>
</configuration>

(4)配置 conf/mapred-site.xml
这里是配置MapReduce的配置文件,配置JobTracker的地址和端口

# conf/mapred-site.xml
1 <configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>

(5)配置 conf/masters 和 conf/slaves 来设置主从节点,注意最好使用主机名,并且保证各节点之间可以通过主机名可以互相访问,每个主机名一行:
我这里的 conf/masters内容为:
master
conf/slaves内容为:
slave2
(6)提升 hadoop 权限,这里因为安装 hadoop 需要足够高的权限,所以一个简便方法是将整个 hadoop 文件提升至 777 权限:
sudo chmod 777 -R /opt/hadoop
对每台机器都进行上述操作。
6)启动hadoop
下面操作在master主机上进行 a)首先格式化hadoop:
./bin/hadoop namenode -format

b)启动hadoop
./bin/start-all.sh 启动提示如下:

从上图中可以看出是先启动了namenode,然后是启动datanode,再启动secondarynamenode,最后启动taskracker.
c)验证方式
1)用命令查看集群状态:./bin/hadoop dfsadmin –report

(2)也可以用java自带jps查看进程:
在master主机上查看结果如下:

也可以在slave主机上用jps查看下TaskTracker和DataNode是否被启动
(3)登录http://master:50070和http://master:50030查看集群状态
http://master:50070状态如下:

http://master:50030状态如下:
可以看出启动了一个datanode,因为我这里就只有一个slave2,如果多台主机组成集群,状态更明显。

d)关闭hadoop
./bin/stop-all.sh

先关闭了jobtracker,其次关闭slave2上的tasktracker,然后关闭namenode,关闭datanode,最后关闭secondarynamenode
Linux下Hadoop集群环境的安装配置的更多相关文章
- Hadoop集群搭建-02安装配置Zookeeper
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- Hadoop集群搭建-05安装配置YARN
Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...
- Hadoop集群搭建-04安装配置HDFS
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- 【redis】 linux 下redis 集群环境搭建
Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...
- Uubntu14.04下 Hadoop集群环境搭建
1机器信息 master192.168.3.10 hadoop/ hadoop slave1192.168.3.11 hadoop/ hadoop slave2192.168.3.12 hadoop/ ...
- Linux下Redis集群环境的搭建
一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 ...
- Linux环境下Hadoop集群搭建
Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...
- hadoop集群环境搭建之zookeeper集群的安装部署
关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...
- CentOS7 安装Hadoop集群环境
先按照上一篇安装与配置好CentOS以及zookeeper http://www.cnblogs.com/dopeter/p/4609276.html 本章介绍在CentOS搭建Hadoop集群环境 ...
随机推荐
- scala学习笔记(6):闭包
到本章这里,所有函数文本的例子仅参考了传入的参数.例如,(x: Int) => x > 0里,函数体用到的唯一变量,x > 0,是x,被定义为函数参数.然而也可以参考定义在其它地方的 ...
- 国内YUM源收集
1. 企业贡献: 搜狐开源镜像站:http://mirrors.sohu.com/网易开源镜像站:http://mirrors.163.com/ 阿里云开源站:http://mirrors.aliyu ...
- python知识:json格式文本;异常处理;字符串处理;unicode类型和str类型转换
python进程中的实例和json格式的字符串之间的映射关系是非常直接的,相当于同一个概念被编码成不同的表示: stream in json form ----json.loads(str)----- ...
- 【转】Github轻松上手3-使用Tower图形化界面工具创建和管理repo
转自:http://blog.sina.com.cn/s/blog_4b55f6860100zzib.html 除了在命令行中输入特定的命令,另外一种方式就是用第三方的可视化工具,比如Mac下的Tow ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络
2.5. 配置网络 2.5.1. 配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: ...
- K2 Blackpearl开发技术要点(Part2)
转:http://www.cnblogs.com/dannyli/archive/2012/09/14/2685282.html K2 Blackpearl开发技术要点(Part2)
- SQL注入常用语句
整形参数判断 1.直接加' 2.and 1=1 3. and 1=2 如果1.3运行异常 2正常就存在注入 字符型判断 1.直接加' 2.and '1'='1' 3. ...
- 利用 Ant 和 Eclipse 有效地提高部署工作效率
读者定位为具有 Java 和 Ant 使用经验的开发人员. 读者可以学习到如何使用 Ant 解决一些多用户开发环境中,根据不同的目标环境编译成不同部署包的问题. 工作场景 现在有一个 web 项目,是 ...
- RedHat 5 配置CentOS yum 更新源
YUM是Redhat Linux在线安装更新及软件的工具,但是这是RHEL5的收费功能,如果没有购买Redhat的服务时不能使用RHEL5的更新源的,会提示注册. 由于CentOS是从Redhat演化 ...
- JS判断是不是本页面并且,给标签添加属性和属性值
大多是在导航栏中用到的,在导航栏中在主页和在其他的网页点击导航栏中的主页是不同的,主要就是判断这个. 我是在ascs页面中写的. 下面先看标签: <a href="http://www ...