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
这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对: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
方法1:在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安装部署的更多相关文章
- Storm-0.9.0.1安装部署 指导
可以带着下面问题来阅读本文章: 1.Storm只支持什么传输 2.通过什么配置,可以更改Zookeeper默认端口 3.Storm UI必须和Storm Nimbus部署在同一台机器上,UI无法正常工 ...
- kafka_2.11-2.0.0_安装部署
参考博文:kafka 配置文件参数详解 参考博文:Kafka[第一篇]Kafka集群搭建 参考博文:如何为Kafka集群选择合适的Partitions数量 参考博文:Kafka Server.prop ...
- 大数据篇:DolphinScheduler-1.2.0.release安装部署
大数据篇:DolphinScheduler-1.2.0.release安装部署 1 配置jdk #查看命令 rpm -qa | grep java #删除命令 rpm -e --nodeps xxx ...
- [DPI][suricata] suricata-4.0.3 安装部署
suricata 很值得借鉴.但是首先还是要安装使用,作为第一步的熟悉. 安装文档:https://redmine.openinfosecfoundation.org/projects/suricat ...
- centOS6.5 Hadoop1.0.4安装
前段时间去培训,按照教程装了一遍Hadoop.回来又重新装一次,捋下思路,加深理解. 基本配置如下,三个节点,一个namenode,两个datanode. Namenode 192.168.59.14 ...
- zabbix4.0.1 安装部署
zabbix安装部署 目录 一.环境准备... 3 1.1.版本:... 3 1.2.部署环境... 3 二.安装部署... 3 2.1.zabbix安装... 3 2.1.1.下载zabbix的rp ...
- presto 0.166安装部署
系统:linux java:jdk 8,64-bit Connector:hive 分布式,node1-3 node1:Coordinator . Discovery service node2-3: ...
- Hbase-2.0.0_01_安装部署
该文章是基于 Hadoop2.7.6_01_部署 进行的 1. 主机规划 主机名称 IP信息 内网IP 操作系统 安装软件 备注:运行程序 mini01 10.0.0.11 172.16.1.11 C ...
- jumperserver3.0的安装部署
适用于jumperserver版本:v0.3.1-2 官网:http://www.jumpserver.org/ 系统:centos7.2 基本安装 备注:如果是centos系统最好使用基本安装,否 ...
随机推荐
- 简单说下Kanzi Studio
一.Project 窗口 在Project窗口下可以创建界面节点,包含有Screen和Prefabs 二.Properties窗口 包含有节点的相关属性,不同类型的节点,属性不同.主要通过改变节点的属 ...
- DELPHI下的SOCK编程
DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会 ...
- CSS 样式书写规范
可能不同团队都有各自的规范,又或者很多人在写 CSS 的时候还是想到什么就写什么,不存在太多的约束. 我觉得 CSS 代码规范还是有存在的必要的,尤其是在团队配合,多人协作下,规范就显得尤为重要. 本 ...
- Spring MVC 基本注解
1. Spring MVC 常用到的注解: @Controller @RequestMapping @RequestParam @RequestHeader @ModelAttribute @Path ...
- 使用ajax方法实现form表单的提交(附源码)
写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说 ...
- webpack热更新问题和antd design字体图标库扩展
标题也不知道怎么写好,真是尴尬.不过话说回来,距离上一次写文快两个月了,最近有点忙,一直在开发新项目, 今天刚刚闲下来,项目准备提测.借这个功夫写点东西,把新项目上学到的一些好的干活分享一下,以便之后 ...
- Django--Uploaded Files以及Handlers
一.表示已经上传的文件(uploaded files)的类 表示已经上传的文件的类有下面几个: class UploadedFile 在文件上传的期间,实际的文件数据被存储在request.FILES ...
- Java使用拦截器的两种方式
拦截器是个好东西,之前用到过,现在记录一下,供以后参考使用! 其一,使用org.aspectj.lang.annotation.Aspect 先上代码: package com.test.interc ...
- 导入 theano 失败。“cannot import name gof”
按照网上教程安装好了 theano 之后,import theano 出现错误."cannot import name gof".网上找了很多教程,都不可行.最后找到如下教程.亲测 ...
- 【JAVASCRIPT】React学习-如何构建一个组件
摘要 react 学习包括几个部分: 文本渲染 JSX 语法 组件化思想 数据流 组件化思想 组件就是 UI + UI 交互逻辑,组件有三个常规map , 分别为state 状态 . props 数据 ...