Hadoop1.0.3环境搭建流程
0x00 大数据平台相关链接
官网:http://hadoop.apache.org/
主要参考教程:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html
0x01 hadoop平台环境
操作系统:CentOS-6.5-x86_64
Java版本:jdk_1.8.0_111
Hadoop版本:hadoop-1.0.3
0x02 安装操作系统(简要)
2.1 准备安装镜像
CentOS-6.5-x86_64-bin-DVD1.iso
2.2 CentOS官方网站与文档
官网主页:http://www.centos.org/
官方WiKi:http://wiki.centos.org/
官方中文文档:http://wiki.centos.org/zh/Documentation
安装说明:http://www.centos.org/docs/
2.3 安装教程
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503770.html
2.4 建立一般用户
//新增用户
# useradd hadoop
//设置密码
# passwd 123456
2.5 关闭防火墙机SELinux
关闭防火墙
//临时关闭
# service iptables stop
//永久关闭
# chkconfig iptables off
# service ip6tables stop
# chkconfig ip6tables off
关闭SELinux
# vim /etc/sysconfig/selinux
SELINUX=enforcing
|
SELINUX=disable
接着执行如下命令
# setenforce 0
# getenforce
0x03 hadoop安装
3.1 环境说明
hostname | username | IP |
---|---|---|
master | hadoop | 192.168.1.10 |
slave1 | hadoop | 192.168.1.11 |
slave2 | hadoop | 192.168.1.12 |
3.2 网络配置
修改当前主机名
//查看当前主机名 # hostname //修改当前主机名 vim /etc/sysconfig/network NETWORKING 是否利用网络 GATEWAY 默认网关 IPGATEWAYDEV 默认网关的接口名 HOSTNAME 主机名 DOMAIN 域名
修改当前机器IP
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE 接口名(设备,网卡) BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动) HWADDR MAC地址 ONBOOT 系统启动的时候网络接口是否有效(yes/no) TYPE 网络类型(通常是Ethemet) NETMASK 网络掩码 IPADDR IP地址 IPV6INIT IPV6是否有效(yes/no) GATEWAY 默认网关IP地址
配置'hosts'文件(必须)
# vim /etc/hosts 192.168.1.2 master 192.168.1.3 slave1 192.168.1.4 slave2
3.3 SSH无密钥验证配置
- SSH无密钥原理
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。 - 配置master和slave互相无密钥登录
所有密钥都是hadoop用户的公钥和私钥,即以hadoop用户的身份来执行生成密钥的命令。
$ ssh-keygen –t rsa –P ''
这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。
在所有slave节点执行该命令生成其密钥对。
将所有slave节点的公钥上传到master节点$ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave1_id_rsa.pub $ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave2_id_rsa.pub
- 接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将所有slave的公钥追加到authorized_keys。 - 修改authorized_keys的权限
$ chmod 600 ~/.ssh/authorized_keys
将authorized_keys复制到所有的slave节点
$ scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/ $ scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/
验证master和slave可以互相免密钥登录。
//master $ ssh slave1 //slave1 $ ssh master ...
3.4 所需软件
- JDK
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK版本:jdk-8u111-linux-x64.tar.gz - hadoop
下载地址:http://hadoop.apache.org/releases.html
hadoop版本:hadoop1.0.3
3.5 Java环境安装和配置
root身份进行安装,如果系统已经安装了其他版本的java请先卸载旧版,再进行安装。
//解压
# tar -zxvf jdk-8u111-linux-x64.tar.gz
//移动文件夹到/usr下并重命名为java
# mv jdk1.8.0_111 /usr/java
最好能利用软链,方便管理多版本应用软件
配置java环境变量【替换成自己的java安装路径和版本】
# vim /etc/profile
//在文件尾部追加
# set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_31
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
使配置立即生效
$ source /etc/profile
验证是否安装成功
$ java -version
安装其它机器,使用linux scp命令将java文件夹和profile文件复制到其它机器即可。
scp -r /usr/java hadoop@slave1:/usr/
3.6 hadoop集群安装
所有的机器上都要安装hadoop,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置hadoop需要以"root"的身份进行。
在/usr目录下新建文件夹cloud
# mkdir /usr/cloud
解压
# tar -zxvf hadoop-1.0.3.tar.gz
//移动到/usr/cloud文件夹下
# mv hadoop-xxx /usr/cloud/hadoop
将读权限分配给hadoop用户
# chown -R hadoop:hadoop /usr/cloud/hadoop
配置hadoop环境变量【注意替换】
# vim /etc/profile
//最后追加
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH :$HADOOP_HOME/bin
使配置立即生效
# source /etc/profile
创建tmp文件夹
# mkdir /usr/cloud/hadoop/tmp
3.7 hadoop集群配置
hadoop2.5.2配置文件目录变更为/hadoop/etc/hadoop
配置hadoop-env.sh
# vim /usr/cloud/hadoop/conf/hadoop-env.sh //在文件末尾追加 # set java environment export JAVA_HOME=/usr/java
配置core-site.xml
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。<configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹) <description>A base for other temporary directories.</description> </property> <!-- file system properties --> <property> <name>fs.default.name</name> <value>hdfs://192.168.1.2:9000</value> </property> </configuration>
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
配置hdfs-site.xml
修改Hadoop中HDFS的配置,配置的备份方式默认为3。<configuration> <property> <name>dfs.replication</name> <value>1</value> (备注:replication 是数据副本数量,默认为3,salve少于3台就会报错) </property> <configuration>
配置mapred-site.xml
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。<configuration> <property> <name>mapred.job.tracker</name> <value>http://192.168.1.2:9001</value> </property> </configuration>
- 配置master文件
修改localhost
为master
# vim /usr/cloud/hadoop/conf/masters
- 配置slaves文件【master主机独有】
去掉"localhost",每行只添加一个主机名,把剩余的Slave主机名都填上。
# vim /usr/cloud/hadoop/conf/slaves
配置其他机器
将 Master上配置好的hadoop所在文件夹"/usr/cloud/"复制到所有的Slave的"/usr/"目录下(实际上Slave机器上的slavers文件是不必要的, 复制了也没问题)。用下面命令格式进行。(备注:此时用户可以为hadoop也可以为root)# scp -r /usr/cloud hadoop@slave1:/usr/ # scp -r /usr/cloud hadoop@slave2:/usr/
在slave上配置java和hadoop的环境变量
3.8 启动及验证
- 格式化HDFS文件系统
在master上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh)
# hadoop namenode -format
- 启动hadoop
在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
# ./start-all.sh
可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。再启动jobtracker,然后启动tasktracker1,tasktracker2,…。
启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。 - 验证hadoop
在Master上用 java自带的小工具jps查看进程。
在Slave1上用jps查看进程。
方法2:用"hadoop dfsadmin -report"
用这个命令可以查看Hadoop集群的状态。
网页查看集群
访问"http:192.168.1.2:50030"
访问"http:192.168.1.2:50070"0x04 常见问题
4.1 关于 Warning: $HADOOP_HOME is deprecated.
经查hadoop-1.0.0/bin/hadoop脚本和"hadoop-config.sh"脚本,发现脚本中对HADOOP_HOME的环境变量设置做了判断,笔者的环境根本不需要设置HADOOP_HOME环境变量。
解决方案一:编辑"/etc/profile"文件,去掉HADOOP_HOME的变量设定,重新输入hadoop fs命令,警告消失。
解决方案二:编辑"/etc/profile"文件,添加一个环境变量,之后警告消失:export HADOOP_HOME_WARN_SUPPRESS=1 # source /etc/profile
博客中在配置hadoop是master的配置不需要改,否则会出错!!!!
2017年1月20日, 星期五
Hadoop1.0.3环境搭建流程的更多相关文章
- cocos2d-x 3.11 游戏开发环境搭建流程
cocos2d-x 3.11.1 游戏开发环境搭建流程 1. 准备下面的软件 1) Windows7 64Bit+ VS2013 (VC++) 这个不用多说. 2) cocos2d-x-3.11.1. ...
- 联盟链初识以及Fabric环境搭建流程
这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...
- android 5.0开发环境搭建
Android 5.0 是 Google 于 2014 年 10 月 15 日发布的全新 Android 操作系统.本文将就最新的Android 5.0 开发环境搭建做详细介绍. 工具/原料 jdk- ...
- Jira 6.0.5环境搭建
敏捷开发-Jira 6.0.5环境搭建[1] 我的环境 Win7 64位,MSSql2008 R2,已经安装tomcat了 拓展环境 jira 6.0.5 百度网盘下载 ...
- selenium win7+selenium2.0+python环境搭建
win7+selenium2.0+python环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是python 2.7(selenium之 ...
- CentOS7 Redis5.0.5环境搭建
CentOS7 Redis5.0.5环境搭建 1基本环境配置 CentOS Linux release 7.6.1810 (Core) redis 5.0.5 1.下载解压redis.通过wget在官 ...
- hadoop1.2开发环境搭建
一:Vmware上安装Linux系统 二:配置Vmware NAT网络.(详细说明:vmware三种网络模式 - 简书). NAT是网络地址转换,是在宿主机和虚拟机之间增加一个地址转换服务,负责外部和 ...
- faster-rcnn(testing): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+opencv3.0+matlabR2014a环境搭建记录
python版本的faster-rcnn见我的另一篇博客: py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3 ...
- Sqoop-1.4.6.bin__hadoop-2.0.4-alpha 环境搭建
一.Sqoop 环境搭建 1.下载安装包及解压 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 1)拷贝sqoop-1.4.6.bin__hadoop-2 ...
随机推荐
- MAC上更攺jenkins默认安装目录
/Library/LaunchDaemons #编缉里面的jenkinshome和username sudo vim org.jenkins-ci.plist #然后 sudo launchctl u ...
- 1602A液晶
液晶显示屏中,1602型算是比较简单的一种,据说和12864还是全兼容的.这两天学习的结果如下.一.1602里的存储器有三种:CGROM.CGRAM.DDRAM.CGROM保存了厂家生产时固化在LCM ...
- iOS开发:创建真机调试证书 分类: ios相关 2015-04-10 10:22 149人阅读 评论(0) 收藏
关于苹果iOS开发,笔者也是从小白过来的,经历过各种困难和坑,其中就有关于开发证书,生产证书,in_house证书,add_Hoc证书申请过程中的问题,以及上架发布问题.今天就着重说一下关于针对于苹果 ...
- Dom编程(二)
document是window对象的一个属性,因为使用window对象成员的时候可以省略window.,所以一般直接写document document的方法: (1)write:向文档中写入内容. ...
- Elasticsearch的使用场景深入详解
了解了ES的使用场景,ES的研究.使用.推广才更有价值和意义. 1.场景-:使用Elasticsearch作为主要的后端 传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力. ...
- 统计学常用概念:T检验、F检验、卡方检验、P值、自由度
1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...
- Android Studio文件目录介绍
一.安装的时候并不理解很多东西的用处,只是根据教程来做,所以想整理一下思路: android sdk里的各目录作用: 1.AVD Manager.exe:虚拟机管理工具,用于建立和管理虚拟机. 2.S ...
- dotnet调用node.js写的socket服务(websocket/socket/socket.io)
https://github.com/jstott/socketio4net/tree/develop socket.io服务端node.js,.里面有js写的客户端:http://socket.io ...
- 环信 之 iOS 客户端集成一:导入库
1. 导入 我采用cocoapod的方式,在project同级目录下创建Podfile,Podfile内容如下: platform :ios, '7.0' pod 'EaseMobSDKFull', ...
- Zepto.js入门介绍
GitHub Zepto Zepto的一些可选功能是专门针对移动端浏览器的:因为它的最初目标在移动端提供一个精简的类似jquery的js库. Zepto不支持旧版本的Internet Explorer ...