Centos6.5下的Hadoop安装
开始进行云计算部分的学习,为了存档,写下现在进行过的步骤
需要用到的主要版本:
虚拟机:Vmware Workstation pro 12.5
Linux系统:CentOS6.4 64bit
jdk版本:jdk1.8.0_111
hadoop版本:hadoop-2.5.2
所有的包均可以在官网下载
在此次搭建环境中,主要是搭建了一个主节点,两个从节点,hostname分别是master,slave1,slave2
地址设置为静态ip.图形化处理只需要改变右上角网络,
192.168.66.111 master
192.168.66.112 slave1
192.168.66.113 slave2
一、Vmware Workstation+Centos6.5的安装
1.官网选择,安装版本12.5,输入序列号。
2.安装好虚拟机后,安装centos6.5版本的Linux系统。进行相关的环境设置。主要设置如下:
①需要将网络连接NAT,改成host-only模式,右键centos系统,进行编辑。
②将网络设置成静态IP,以便后来进行相关的编程。
③设置DNS解析:
使用 vim /etc/sysconfig/network 命令,进行相关更改。 将HOSTNAME的变量给成master
设置节点映射,vim /etc/hosts.在文本的最后一行追加内容:192.168.66.111 master
验证配置,执行ping master,如果能够ping通过。则表示,这个配置正确。(需要保证网络连通)
同理,需要在其他节点设置相同。
这一步可以颠倒顺序,先配置单机,再配置集群。或者先配置集群在配置单机。只需要注意克隆的顺序即可。但是均需要在hosts文件中,添加节点IP
④关闭防火墙
命令setup ,选择firewall configuration,回车,之后进入设置按键,将*中按空格,取消。然后保存退出。
命令service iptables status 验证防火墙是否关闭,如果提示not running则表示已经关闭。——这一步需要在root权限下进行,否则会没有提示
⑤设置SSH自动登录
验证是否安装了SSH。命令 rpm -qa |grep ssh 若没有安装,则命令 yum install openssh-server
配置SSH免密登录(在这个过程花费了很多时间,在这里写出来):
ssh-keygen -t rsa 若有提示信息,直接进行回车,最后生成.ssh文件, 进入密钥目录,~/.ssh,命令:cp id_rsa.pub anthorized_keys 这个命令会生成授权文件:authorized_keys,然后使用 ls 命令,进行查看。
同时,命令 vi /etc/ssh/sshd_config 删除下列文字:
命令 service sshd restart 对其进行重新启动,以上的命令需要分别在三个机器中都实现
然后输入命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
我们需要在ssh目录中查看是否已经配置完成,每个主机上面的公钥和密钥都存放在一个文件夹中,这个很重要,会导致后面的配置是否需要密码。(注:所有的操作均在root权限下进行,也可以新建一个hadoop用户)
cd ~/.ssh
cat authorized_keys
scp authorized_keys root@slave1:/root/.ssh/
scp known_hosts root@slave1:/root/.ssh/
scp known_hosts root@slave2:/root/.ssh/
scp authorized_keys root@slave2:/root/.ssh/
需要将所有的文件拷贝到每个需要配置的节点主机上。
验证SSH无密码登录:
执行命令 ssh slave1 后面不需要确认,若登录了,需要用命令:exit 进行退出。 再次使用命令ssh slave1之后可以看到登录信息。
二、JDK的安装
安装jdk文件。
主要需要注意权限问题,以及目录问题。
主要命令是
1.改变文件的位置:mv,
2.用命令chmod 777 jdk-8u111-linux-x64.rpm修改文件权限,双击它就自动解压安装了,安装完成后,在/usr目录下产生一个新的 java 文件夹
3.设置环境变量
vi打开文件命令:vi /etc/profile
移至文件末尾插入一个空行:输入字母o
输入以下配置信息:(注:这里的分隔符是冒号不是分号)
JAVA_HOME=/usr/java/jdk1.8.0_111
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
先按Esc退出编辑模式,再保存退出输入 :wq ! (冒号也要输入)
至此,新的JDK环境设置完毕。
4.卸载原JDK
终端输入,查看gcj的版本号:rpm -qa|grep jdk
得到结果:
jdk-1.7.0_04-fcs.x86_64
java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64
终端输入,卸载:yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64
等待系统自动卸载,最终终端显示 Complete,卸载完成
5.让系统配置立即生效,不用重启系统
终端输入命令:source /etc/profile
6.验证是否安装完好
输入命令java -version
注意:如果出现以下错误信息
- bash: /usr/java/jdk1.7.0_04/lib/dt.jar: 权限不够
- bash: /usr/java/jdk1.7.0_04/lib/tools.jar: 权限不够
- 错误原因:分隔符不能用;(分号),要用:(冒号)
- CLASSPATH=.;$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
- 这样写是不对滴,要这样写:
- CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
- PATH = $PATH;$JAVA_HOME/bin;也一样,通通用冒号分隔。
三、安装Hadoop
1.安装版本2.5.2版本,一定要下载rpm结尾的版本,进行相关的配置,也许其他也可以,但是没有找到配置文件
2.解压文件。命令:tar -xzvf 文件名
3.设置文件环境变量。 命令 vim /etc/profile 在文件的最后一行,命令 O 换行插入,增加以下内容:
export HADOOP_HOME=/usr/program/hadoop-2.5.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
执行命令 source /etc/profile
4.验证Hadoop是否安装完好。
命令 hadoop version 若出现如下语句,则说明安装成功。
5.进行修改Hadoop的配置文件————有一点需要注意,Hadoop2.5.2与Hadoop1.0其他的版本不同地方在于,2.5的配置文件都在etc/hadoop文件中,而1.0版本的Hadoop的配置文件是在conf中。同时,后面需要改进的的mapred-site.xml.template文件,就是原来的mapred-site.xml文件。其他的地方就是后面的包的位置不同,以后用到的时候再说。
①.修改hadoop-env.sh及yarn-env.sh中的JAVA_HOME,与环境变量中的路径相同即可
②. cd /usr/program/hadoop-2.5.2/etc/hadoop
进入配置路径,进行文件的配置 文件的打开方式 均用vi ,cat查看。而且首先需要在hadoop-2.5.2文件下创建一个目录,tmp,hdfs/data,hdfs/name,用来存储临时文件数据,和计算路径
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/program/hadoop-2.5.2/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- i/o properties -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>The size of buffer for use in sequence files.
The size of this buffer should probably be a multiple of hardware
page size (4096 on Intel x86), and it determines how much data is
buffered during read and write operations.</description>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/program/hadoop-2.5.2/hdfs/name</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table(fsimage). If this is a comma-delimited list
of directories then the name table is replicated in all of the
directories, for redundancy. </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/program/hadoop-2.5.2/hdfs/data</value>
<description>Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited
list of directories, then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.
</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>
The default block size for new files, in bytes.
You can use the following suffix (case insensitive):
k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
Or provide complete size in bytes (such as 134217728 for 128 MB).
</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
<description>The number of server threads for the namenode.</description>
</property>
</configuration>
mapred-site.xml.template
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.
</description>
</property>
<!-- jobhistory properties -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
<description>MapReduce JobHistory Server IPC host:port</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
<description>MapReduce JobHistory Server Web UI host:port</description>
</property>
</configuration>
yarn-site.xml
configuration>
<!-- Site specific YARN configuration properties -->
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
<description>The address of the applications manager interface in the RM.</description>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The minimum allocation for every container request at the RM,
in MBs. Memory requests lower than this won't take effect,
and the specified value will get allocated at minimum.
default is 1024
</description>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<description>The maximum allocation for every container request at the RM,
in MBs. Memory requests higher than this won't take effect,
and will get capped to this value.
default value is 8192</description>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<description>Amount of physical memory, in MB, that can be allocated
for containers.default value is 8192</description>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<description>Whether to enable log aggregation. Log aggregation collects
each container's logs and moves these logs onto a file-system, for e.g.
HDFS, after the application completes. Users can configure the
"yarn.nodemanager.remote-app-log-dir" and
"yarn.nodemanager.remote-app-log-dir-suffix" properties to determine
where these logs are moved to. Users can access the logs via the
Application Timeline Server.
</description>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
vi slaves 编辑从节点,可以将主节点也作为从节点进行编辑。
输入:master,slave1,slave2
在保存完所有的设置后,我们需要同样配置其他从节点。可以硬复制,也可以将文件进行拷贝,从master到slave1,slave2
输入命令:scp -r /usr/program/hadoop-2.5.2/etc/hadoop/ root@slave1:~/hadoop/hadoop-2.5.2/etc/
scp -r /usr/program/hadoop-2.5.2/etc/hadoop/ root@slave2:~/hadoop/hadoop-2.5.2/etc/
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
完成情况如下所示:
所有的情况都已经配置完毕
现在首先需要对Hadoop进行系列的格式化:
hadoop namenode -format 格式化namenode,
start-dfs.sh
start-yarn.sh
成功搭建单机模式
Daemon | Web Interface | Notes |
---|---|---|
NameNode | http://nn_host:port/ | Default HTTP port is 50070. |
ResourceManager | http://rm_host:port/ | Default HTTP port is 8088. |
MapReduce JobHistory Server | http://jhs_host:port/ | Default HTTP port is 19888. |
这样基本搭建已经完成,形成节点之间的连接。接下来开始配置hadoop和eclipse之间的联系,同时会解决遇到的困难。进行相关的配置问题
Centos6.5下的Hadoop安装的更多相关文章
- CentOS-6.6下Tomcat-7.0安装与配置(Linux)
CentOS-6.6下Tomcat-7.0安装与配置(Linux) 一.认识tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目, ...
- centos6.8下redis的安装和配置
centos6.8下redis的安装和配置 下载.安装 在redis官网可以获取到最新版本的redis 进入/usr/local/目录,执行如下命令 wget http://download.redi ...
- CentOS6.5下源码安装多个MySQL实例及复制搭建
多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...
- Linux下的Hadoop安装(本地模式)
系统为CentOS 6.9,Hadoop版本2.8.3,虚拟机VMware Workstation 主要介绍Linux虚拟机安装.环境配置和Hadoop本地模式的安装.伪分布式和Windows下的安装 ...
- CentOS6.5下docker的安装及遇到的问题和简单使用(已实践)
转载自 CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS. Go语言.c ...
- 基于CentOS6.5下如何正确安装和使用Tcpreplay来重放数据(图文详解)
前期博客 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐) tcpreplay是什么? 简单的说, tcpreplay是一种pcap包的重放 ...
- Centos6.2 下 vncserver 的安装
好久没用vnc了, 把今天装的过程记录一下, 这是一个从网上下载的标准Centos6.2 虚机镜像, 已经带了桌面. 默认的用户是root和tom, 口令都是tomtom. 因为ssh服务没起来, 简 ...
- CentOS6.5下docker的安装及遇到的问题和简单使用
Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup实现了资源的独立,可以很轻松的实现文件.资 ...
- Centos6.4下tar包安装最新版Mysql5.6
1.下载 mysql:http://www.mysql.com/downloads/ (须要注冊ORACLE账号) 版本号:mysql-advanced-5.6.21-linux-glibc2.5-x ...
随机推荐
- LAMP环境搭建
安装前说明: 先安装gcc gcc-c++ make 等 可用yum install -y gcc gcc-c++ make 也可以使用rpm安装不过需要注意依赖 1.安装apache 下载链接:ht ...
- Microsoft Azure 云存储服务概念
本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...
- TurboDemo软件使用教程:视频编辑
视频软件TurboDemo中不仅可以快速的捕捉屏幕,而且可以对视频进行编辑,本文来详细的了解一下这个步骤. 当你完整屏幕捕捉和录制后,点击系统托盘上的箭头或点击键盘上的“print screen”键之 ...
- map(callback)
将一组元素转换成其他数组(不论是否是元素数组) 你可以用这个函数来建立一个列表,不论是值.属性还是CSS样式,或者其他特别形式.这都可以用'$.map()'来方便的建立. 参数 callbackFun ...
- HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心. 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从 ...
- Linux:-防火墙iptables如何个性化定制?
身份标签/usr/local/etc/identity,主脚本iptables.sh,附属目录functions/iptables.d ├── iptables.sh ├── functions│ ...
- Comparable和Comparator的区别
Comparable Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较 ...
- [转]hibernateTools工具安装及使用总结(eclipse 3.6)
转载地址:http://blueblood79.iteye.com/blog/773177 最近项目采用flex+spring+hibernate的框架开发,之前虽说有多年的Java开发经验了,但是一 ...
- grunt学习笔记
1. 在使用grunt前需要执行的几条命令和用途 npm uninstall -g grunt 删除掉全局grunt npm install -g grunt-cli 把grunt加入你的系统搜索路 ...
- T检验与F检验的区别_f检验和t检验的关系
1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...