Hadoop2.0.4-alpha搭建安装过程
来源:互联网 发布:js乱码怎么解决 编辑:程序博客网 时间:2024/06/05 16:19
搭建过程参考:http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html
之前在实验室搭建过1.0.4版本的apachehadoop,但是最近由于需要对hadoop版本更新,所以需要hadoop2.0.4,这次教程就写写具体的搭建过程,这里很多思想都是来源于hadoop1.0.4的搭建方法,如果大家看不懂,可以先搭建hadoop1.0.4,这样对你会有很大帮助的。
废话不多说,现在来讲讲我的具体搭建说明。
1.搭建环境的说明
1.1使用的操作系统
很多人搭建hadoop都是用的ubuntu,其实这个操作环境只要是LINUX就可以,但是本文中我使用的是centos,其他的区别可能是配置文件的路径不同,但是大致思想还是一致的。
1.2集群IP地址分配
本次我搭建的是3台物理机器的Hadoop搭建,具体每台机器的IP地址如下:
192.168.132.2 Master.Hadoop
192.168.132.3 Slave1.Hadoop
192.168.132.4 Slave2.Hadoop
2.hosts的配置
这一步是必须的,因为这里需要对使用环境的user做具体的分配和指定。
2.1更改hosts(这一步的内容均需要在root用户下执行)
1.设定IP地址:
#ifconfig //查询现在的ip地址
然后通过设置VPN,来设置各机器的IP地址,具体过程这里就
详述了。
2.配置每台电脑的hosts名称
#vim/etc/sysconfig/network
在其中添加这样的内容:
HOSTNAME=Master.Hadoop
(备注:Slave机器则改为相应的Slave1.Hadoop…….)
3.配置hosts文件
#vim /etc/hosts
在其中添加下面几行内容:
192.168.132.2Master.Hadoop
192.168.132.3 Slave1.Hadoop
192.168.132.4 Slave2.Hadoop
4.验证设置是否启用
我们在Master.Hadoop对机器为"Slave1.Hadoop"的主机名进行ping通测试,看是否能测试成功。
(备注:对于其他机器之间的测试同理)
5.添加一个用户
#adduser hadoop
#passwd hadoop //设置hadoop的密码
3.ssh无密码验证设置(以下设置全部在hadoop用户下进行)
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(SecureShell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
3.1安装和启动ssh
可以通过下面命令查看是否已经安装ssh和rsync,显示如下:
rpm –qa | grepopenssh
rpm –qa | grep rsync
3.2配置Master和Slave之间的无密码登陆
3.2.1ssh无密码登陆的原理
Master(NameNode| JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode|Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
3.2.2Master机器上生成密码对
在Master节点上执行以下命令:
$ssh-keygen –trsa –P ''
(备注:这里的“’”是单引号,上面指令最后使用了两个单引号)
这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"~/.ssh"目录下。
查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。使用下面的指令:
$cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。
3.2.2.1修改文件"authorized_keys"
$chmod600 ~/.ssh/authorized_keys
3.2.2.2设置SSH配置
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容,去掉下面几句话前面的注释符“#”。
RSAAuthentication yes #启用RSA认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile.ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
$service sshd restart
退出root登录,使用hadoop普通用户验证是否成功。
#ssh localhost
3.2.3在Slave机器上生成密码对
在Slave1.Hadoop上执行下列指令:
$ssh-keygen –t –rsa–P ''
在Slave1.Hadoop机器中生成~/.ssh文件。然后在把本机生成的密码对加载到本机上的authorized_keys
$cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
然后更改authorized_keys文件的权限。
$chmod 600~/.ssh/authorized_keys
(备注:如果有多个Slave,对多个Slave进行相同的操作即可,Slave2.Hadoop,Slave2.Hadoop……)
3.2.4在Master和Slave之间追加授权密码
Master.Hadoop$cd ~/.ssh
Master.Hadoop$scp./id_rsa.pubhadoop@192.168.132.3:~/
Slave1.Hadoop$cat~/id_rsa.pub >> ~/.ssh/authorized_keys
Slave1.Hadoop$scp~/.ssh/id_rsa.pubhadoop@192.168.132.4:~/
Master.Hadoop$cat~/id_rsa.pub >> ~/.ssh/authorized_keys
(备注:如果有多个Slave,对多个Slave和Master之间进行相同的操作即可)
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容,去掉下面几句话前面的注释符“#”。
RSAAuthentication yes #启用RSA认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile.ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
$service sshd restart
退出root登录,使用hadoop普通用户验证是否成功。
#ssh localhost
3.2.5验证ssh无密码登陆设置成功
Master.Hadoop$ssh Slave1.Hadoop
这时候如果不需要输入Slave1.Hadoop主机的登陆密码,就说明设置成功了,否则,说明前面的设置出错了,请细心检查下。
同理,再输入下列指令,检验Slave对Master的设置是否成功:
Slave1.Hadoop$ssh Master.Hadoop
4.JAVA环境安装(所有主机均要安装,并且以下操作在root用户下执行)
4.1下载jdk
从oracle官网下载jdk1.7.0_21,放到根目录下/。
4.2安装jdk
执行下列指令:
#cd /usr
#mkdir java
#cp / jdk-7u21-linux-x64.rpm/usr/java/
#cd /usr/java
#rpm –ivhjdk-7u21-linux-x64.rpm
然后会进行rpm安装的过程。
4.3设置java环境变量
编辑"/etc/profile"文件,在后面添加Java的"JAVA_HOME"、"CLASSPATH"以及"PATH"内容。
4.3.1编辑"/etc/profile"文件
#vim /etc/profile
4.3.2添加Java环境变量
在"/etc/profile"文件的尾部添加以下内容:
# set javaenvironment
exportJAVA_HOME=/usr/java/jdk1.7.0_21
exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
4.3.3使配置生效
保存并退出,执行下面命令使其配置立即生效。
#source/etc/profile
4.3.4验证安装和配置是否成功
输入下列指令:
#java –version
然后写一个小的JAVA程序,编译执行下是否正确执行,如果可以,则配置成功,否则,JAVA的配置过程可能有问题,需要检查。
5.HADOOP集群安装
5.1Master机器安装(以下命令在root用户下执行)
5.1.1下载hadoop-2.0.4-alpha.tar.gz
在apachehadoop官网下载hadoop安装包,此次使用的是hadoop-2.0.4版本。下载到目录/usr/下。
5.1.2hadoop安装
执行下列指令:
#cd /usr/
#tar –zxvfhadoop-2.0.4-alpha.tar.gz
#mv hadoop-2.0.4-alphahadoop
#chown –R hadoop:hadoop hadoop
5.1.3配置/etc/profile文件
/usr/hadoop"下面创建tmp文件夹,如下指令:
#cd /usr/hadoop
#mkdir tmp
然后把Hadoop的安装路径添加到"/etc/profile"中,修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效:
# set hadoop path
exportHADOOP_DEV_HOME=/usr/hadoop
exportPATH=$PATH:$HADOOP_DEV_HOME/bin
exportPATH=$PATH:$HADOOP_DEV_HOME/sbin
exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
exportHADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
exportHADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
exportYARN_HOME=${HADOOP_DEV_HOME}
exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
加载/etc/profile使其生效:
#source /etc/profile
5.1.4配置hadoop文件
5.1.4.1创建并配置hadoop-env.sh,使用下列指令:
#vim /usr/hadoop/etc/hadoop/hadoop-env.sh
在末尾添加exportJAVA_HOME=/usr/java/jdk1.7.0_21。
5.1.4.2配置core-site.xml文件,使用下列指令:
在<configuration>和</configuration>之间添加属性
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>A base for other temporarydirectories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.132.2:9000</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>192.168.132.2</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
5.1.4.3配置slaves
执行下列指令:
#cd /usr/hadoop/etc/hadoop
#vim slaves
把其中的内容改为:
192.168.132.3
192.168.132.4
5.1.4.4配置hdfs-site.xml
#vim /usr/hadoop/etc/hadoop/hdfs-site.xml
添加节点:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.federation.nameservice.id</name>
<value>ns1</value>
</property>
<property>
<name>dfs.namenode.backup.address.ns1</name>
<value>192.168.132.2:50100</value>
</property>
<property>
<name>dfs.namenode.backup.http-address.ns1</name>
<value>192.168.132.2:50105</value>
</property>
<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>192.168.132.2:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>192.168.132.2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>192.168.132.2:23001</value>
</property>
<property>
<name>dfs.namenode.http-address.ns2</name>
<value>192.168.132.2:13001</value>
</property>
<property>
<name>dfs.dataname.data.dir</name>
<value>file:/usr/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.132.2:23002</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>192.168.132.2:23002</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.132.2:23003</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>192.168.132.2:23003</value>
</property>
5.1.4.5配置yarn-site.xml
添加节点:
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.132.2:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.132.2:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.132.2:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.132.2:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.132.2:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
5.2Slave机器上hadoop的安装
把Master.Hadoop上的hadoop文件发送给Slave机器并进行相应的配置:
Master.Hadoop#scp–r /usr/hadoop root@192.168.132.3:/usr/
Slave1.Hadoop#chown–R hadoop:hadoop /usr/hadoop
编辑/etc/profile文件,将以下语句添加到末尾,并使其有效:
# set hadoop path
exportHADOOP_DEV_HOME=/usr/hadoop
exportPATH=$PATH:$HADOOP_DEV_HOME/bin
exportPATH=$PATH:$HADOOP_DEV_HOME/sbin
exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
exportHADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
exportHADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
exportYARN_HOME=${HADOOP_DEV_HOME}
exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
加载/etc/profile使其生效:
#source /etc/profile
5.3hdfs初始化
在Master.Hadoop上初始化HDFS,使用下列指令:
$hadoop namenode–format
6.启动hadoop(这一步必须使用hadoop用户执行)
$start-all.sh
7.检查服务是否开启
在各台机器执行jps,看进程是否都已经启动:
[hadoop@Master.Hadoop ~]# jps
7396 NameNode
24834 Bootstrap
7594 SecondaryNameNode
7681 ResourceManager
32261 Jps
[hadoop@Slave1.Hadoop ~]# jps
8966 Jps
31822 DataNode
31935 NodeManager
如果服务开启,就可以打开浏览器,登陆页面:192.168.132.2:23001查看hadoop网页。到这里所有的安装工作就结束了,下面截图仅供参考。
截图:
D&C
- Hadoop2.0.4-alpha搭建安装过程
- 【安装】Hadoop2.8.0搭建过程整理版
- Hadoop2.2.0集群搭建过程
- Hadoop2.3.0详细安装过程
- hadoop2.3.0详细安装过程
- hadoop2.7.2的安装过程
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~) .
- Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~
- Hadoop2 上HDFS HA 搭建过程
- Hadoop2.7.3伪分布式搭建过程详解
- WP8 如何快速调试
- 《Ubuntu从入门到精通》读书笔记 一
- 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载
- AJAX 分页
- 老朋友,我又回来了
- Hadoop2.0.4-alpha搭建安装过程
- 调试stm32时经常出现"Flash Download Failed-"Cortex-M3"
- java文件编译过程总结
- SDUTOJ 1500
- 写给自己的话:是时候有个计划了,骚年
- 格式化,float类型的数字
- Java Tip 141: Fast math with JNI
- Xalan 基本命令行工具
- Android的图形API调用(一)