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集群环境 ...
随机推荐
- android 中解析XML的方法(转)
在XML解析和使用原始XML资源中都涉及过对XML的解析,之前使用的是 DOM4J和 XmlResourceParser 来解析的.本文中将使用XmlPullParser来解析,分别解析不同复杂度的t ...
- JavaScript中Element与Node的区别,children与childNodes的区别
关于Element跟Node的区别,cilldren跟childNodes的区别很多朋友弄不清楚,本文试图让大家明白这几个概念之间的区别. Node(节点)是DOM层次结构中的任何类型的对象的通用名称 ...
- erl_0011 erlang 定时器相关
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20764167&id=4470124 3.1 The time ...
- 【转】strcpy溢出的攻击示例
在学习c/c++的时候,就讲到了一些C类型的字符串函数不是安全的,比如strcpy没有检查长度会溢出,推荐使用strncpy,笔试面试也经常问到.同时经常浏览安全相关的新闻,缓冲区溢出攻击是很常见的一 ...
- Mac下配置环境变量
1.创建并以 TextEdit 的方式打开 ~/.bash_profile 文件,如果没有则 touch ~/.bash_profile; 然后打开 vim ~/.bash_profile 2.新增环 ...
- JavaScript备忘录-逻辑运算符
关于 || 和 && 运算符 var name=(document.getElementById('txtName') || '') && document.getEl ...
- 微软官方的一段JavaScript判断.net环境
<HTML> <HEAD> <TITLE>Test for the .NET Framework 3.5</TITLE> <META HTTP-E ...
- 分享15款为jQuery Mobile定制的插件
jQuery Mobile 1.0 已经发布了, 做为jQuery的移动设备类库, 并且依靠着jQuery这个及其受欢迎的类库,必将带给大家不一样的使用体验,基于jQuery Mobile的插件开发必 ...
- Web安全测试学习笔记(Cookie&Session)
一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在s ...
- 求职基础复习之冒泡排序c++版
代码中在第一层循环中增加一个bool值,是为了防止在排序完成后还继续无谓的比较,最多会有(n-1)*(n-2)/2次循环. #include<iostream> using namespa ...