CentOS 6.5安装hadoop1.2.1经验(由伪分布式到完全分布式)

转发请注明本文链接

准备工作:

VMware-workstation  (网络统一设置为桥接)

Xshell或者putty        (方便在Windows下进行操作,复制粘贴命令方便,更推荐用第一个,以后不需要输入IP地址和帐号密码了)

FileZilla                      (传输文件,端口22,使用SFTP协议)

环境为

Centos6.5 X86 minimal

Hadoop1.2.1

jdk-8u73-linux-i586

先配置伪分布式,把伪分布式跑起来再升级为完全分布模式

注:192.168.67.57 是Master节点主机。

以下操作在root用户下进行

一、在linux系统创建目录

mkdir /opt

把hadoop-1.2.1-bin.tar 、jdk-8u73-linux-i586.rpm上传到/opt目录下

在/opt目录下安装hadoop会减少不必要麻烦

二、设置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0

三、关闭防火墙

vi /etc/selinux/config      设置  SELINUX=disabled

此外,输入以下命令

service iptables status     --查看防火墙状态

service iptables stop       --关闭防火墙

service ip6tables stop      --关闭防火墙

chkconfig ip6tables off     --设置防火墙开机自关闭

chkconfig iptables off      --设置防火墙开机自关闭

chkconfig iptables --list   --查看防火墙服务状态列表

chkconfig ip6tables --list   --查看防火墙服务状态列表

#iptables 和 ip6tables一样,都是linux防火墙软件,不同的是ip6tables采用的TCP/ip协议为IP6.

四、修改hosts,该主机设置为Master

vi /etc/hosts   添加

192.168.67.57   Master

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=Master

五、 增加用户组,用户

groupadd hadoop

useradd –g hadoop hadoop

passwd hadoop

六、安装java,并且配置java环境

我使用的是rpm安装包,简化安装

rpm -ivh jdk-8u73-linux-i586.rpm

安装目录为 /usr/java/jdk1.8.0_73

将该安装目录复制出来,方便后面配置环境

vi /etc/profile

在最下面加入

export JAVA_HOME=/usr/java/jdk1.8.0_73

export JRE_HOME=/usr/java/jdk1.8.0_73/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

保存退出,执行以下命令使配置生效!

[[email protected] ~]#chmod  +x  /etc/profile ;增加执行权限

[[email protected] ~]#source  /etc/profile;使配置生效!

以上操作都在root用户下完成。

七、设置SSH免密码登陆,切换到hadoop用户

先检查一下是否有ssh和rsync工具

rpm -qa |grep ssh

rpm -qa |grep rsync(可有可无,有更好)

没有ssh和rsync工具的话使用下面命令进行安装:

yum install ssh     #安装SSH

yum install rsync  #(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)

service sshd restart   #启动SSH服务

ssh-keygen -t rsa              # 会有提示,都按回车就可以

cat id_rsa.pub >> authorized_keys  # 加入授权

chmod 600 ./authorized_keys    # 修改文件权限,否则无法免密码登陆

chmod 700 ~/.ssh                     #修改目录权限

八、安装hadoop

cd /opt    #进入opt目录

tar -zxf /opt/hadoop-1.2.1-bin.tar.gz -C /opt         #解压

mv hadoop-1.2.1 hadoop                                      #重命名

chown -R hadoop:hadoop hadoop                       #更改所属用户,十分重要

九、尝试单机模式

hadoop默认的模式就是非分布式模式,只需配置java环境,无需hadoop配置就可以运行

cd /opt/hadoop

mkdir ./input

cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output ‘dfs[a-z.]+‘

cat ./output/*

hadoop不能覆盖结果文件,所以先删除   ./output ,下次运行上面的例子就不会报错。

rm -r ./output

十、配置hadoop

(1)vi /etc/profile

添加下面内容

# Hadoop Environment Variables

export HADOOP_HOME=/opt/hadoop

export HADOOP_INSTALL=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

————————————————————————————————

下面进入hadoop的配置文件夹

cd /opt/hadoop/conf/

(2)配置 hadoop-env.sh

vi hadoop-env.sh  在最下面添加

export JAVA_HOME=/usr/java/jdk1.8.0_73

export HADOOP_HOME_WARN_SUPPRESS=1    #我的环境在格式化namenode时出现过Warning: $HADOOP_HOME is deprecated.,这句根据情况

(3)配置  core-site.xml

vi core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hadoop/tmp</value>

<description>Abase for other temporary directories.</description>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.67.57:9000</value>

</property>

</configuration>

(4)配置hdfs-site.xml

vi hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

(5)配置mapred-site.xml

vi mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>http://192.168.67.57:9001</value>

</property>

</configuration>

(6)配置masters 和 slaves文件(这部可以省略)

全部清空,再添加Master的ip地址

(7)格式化

cd /opt/hadoop

hadoop namenode -format

start-all.sh

(8)查看运行状态

jps

这样就启动成功了

十一、执行示例程序

hadoop基本操作命令

(1)列出文件(hdfs是系统中的系统)

hadoop fs -ls /

(2)关闭hadoop

stop-all.sh

(3)新建文件夹

hadoop fs -mkdir /newfile

(4)添加文件到hdfs

上图是在FileZilla查看文件,我已经在file1.txt和file2.txt输入了两句英文句子。

注意,file文件夹和里面的文件都要是hadoop用户组,否则会失败

hadoop fs -put /opt/hadoop/file/* /newfile

(5)执行示例程序wordcount

先看下程序包在哪里

ll /opt/hadoop | grep jar

hadoop jar /opt/hadoop/hadoop-examples-1.2.1.jar wordcount /newfile /output/file

/newfile    为输入文件

/output/file  为输出文件

(6)查看执行结果

hadoop fs -cat /output/file/part-r-00000

(7)其他常用命令

下载文件

hadoop fs -get /output/file/part-r-00000 /home/hadoop/

(8)删除文件

hadoop fs -rmr /output/file

问题总结

在使用这个

环境为

Centos6.5 X86 minimal

Hadoop1.2.1

jdk-8u73-linux-i586

配置之前,我使用的配置是

Centos6.5 X64 minimal

hadoop2.6.0

jdk-8u101-linux-x64

但是遇到了

“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”

虽然NameNode,DataNode等都启动了,但是在hdfs下新建文件夹失败

hadoop fs –mkdir input

无法对hdfs进行任何操作

后来换成

Centos6.5 X86 minimal

hadoop2.6.0

jdk-8u101-linux-x64

http://f.dataguru.cn/thread-542396-1-1.html

再后来,把hadoop降级

Centos6.5 X86 minimal

Hadoop1.2.1

jdk-8u73-linux-i586

启动时候遇到Warning: $HADOOP_HOME is deprecated.,加入一条命令搞掂,前面有提到。

————————————————————————————————————————————

下面介绍如何将其升级为完全分布式

一、

在刚才成功运行伪分布式的情况下,关机,克隆出另外的三台虚拟机。centos6.5静态ip克隆出来的话是不能上网的,设置参考!!!

修改好每个虚拟机的ip,设置为静态ip,接着修改hostname,修改hosts,至于/etc/profile则不用再配置了。

需要修改的有:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

vi /etc/sysconfig/network

vi /etc/hosts

二、ssh配置

因为克隆出来的,每台虚拟机的ssh文件都一致

只需要在hadoop用户下,Master与Slave都互相ssh一下,就可以了。

三、配置hadoop

需要修改的只有masters 和 slaves

(1)在Master节点下

vi /opt/hadoop/conf/masters

192.168.67.57是我Master的ip地址

(2)在Master节点下

vi /opt/hadoop/conf/slaves


 为什么是四个ip呢,因为我后来在集群运行时动态地加入了一个Slave。有多少个Slave就写多少个IP就行了。

(3)把slaves,masters文件发送到其他三个slaves上

scp /opt/hadoop/conf/slaves 192.168.67.58:/opt/hadoop/conf/

scp /opt/hadoop/conf/masters 192.168.67.58:/opt/hadoop/conf/

(4) 格式化

执行格式化之前,把/opt/hadoop/tmp下面的东西删掉

并且把/opt/hadoop/logs  里面的日志清空

四、动态添加slave节点

建议直接克隆虚拟机,参考伪分布式编程完全分布式时候的设置进行修改配置文件。

第一步,修改虚拟机的基本信息。

需要修改的有:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

vi /etc/sysconfig/network

vi /etc/hosts

第二步,SSH,参照上文

第三步,修改Master主机上 /opt/hadoop/conf/下的masters文件和slaves文件,并发送到所有的Slaves节点

第四步,因为其他节点正在运行,并不需要再次进行格式化hdfs

只需要在新的slave节点上,启动datanode和tasktracker进程

hadoop-daemon.sh start datanode

hadoop-daemon.sh  start tasktracker

通过jps可以查看到运行情况,也可以通过网页端查看新添加的节点

第四步,如果有必要,进行负载均衡

在master节点上运行start-balancer.sh进行数据负载均衡

start-balancer.sh

时间: 2024-08-26 11:55:06

CentOS 6.5安装hadoop1.2.1经验(由伪分布式到完全分布式)的相关文章

eclipse安装Hadoop1.1.2版本开发插件

Hadoop1.1.2版本没有直接适合Eclipse的安装插件,需要手动打包jar文件. 我的系统配置: VMware Workstation10 CentOS-6.5-i386 hadoop-1.1.2 eclipse_SDK_3.7.2_win32 系统配置说明: 我的电脑是Win7 32位的,安装了VMware虚拟机. 在虚拟机中安装的是CentOS系统(Linux系统). 在Linux系统中配置的是Hadoop1.1.2的伪分布式集群环境. Eclipse安装在Window系统下. 实现

CentOS下配置安装Nagios

CentOS下配置安装Nagios 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't GonnaInsist On Sainthood"

如何在 CentOS 7 中安装或升级最新的内核

转 原创 2017-03-19 译者:geekpi Linux中国 随着新的设备和技术定期出来,如果我们想充分利用它们,保持最新的内核就很重要.此外,更新内核将帮助我们利用新的内核函数,并保护自己免受先前版本中发现的漏洞的攻击.-- Matei Cezar 本文导航 -步骤 1:检查已安装的内核版本18% -步骤 2:在 CentOS 7 中升级内核33% -步骤 3:设置 GRUB 默认的内核版本63% -总结80% 虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,L

CentOS 7 之安装Mono&amp;MonoDevelop

之前在园子里看过一篇文章说的是在CentOS 7上安装MonoDevelop的,一直想照着弄一遍都没有弄,今天深圳外面下暴雨,就在家里弄一下这个吧,以后也试着在Linux上面写写C#玩玩.这一试,还真是试出了一些经验了,或者说是一些坑吧. 由于园子里这篇文章主要是使用yum安装的,于是我想用源码来安装,于是我先在Linux公社找到了这篇文章.根据作者的说明及经验,我先下载了几个包到/usr/local/src下面. wget http://download.mono-project.com/so

linux的ubuntu和centos下快速安装LAMP环境

在linux下安装lamp环境,下面为大家分别介绍在ubuntu和centos下面快速安装LAMP环境的方法. 首先,让我们了解一下什么是LAMP环境(一下摘自百度百科): Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足

Centos(64位)安装Hbase详细步骤

HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力.HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式.

centos 6.5安装NodeJS

centos 6.5安装NodeJS 下载 可以在本地下载node.js最新版,然后通过ftp工具上传到服务器,或者直接在服务器终端使用wget命令下载(我当时下载的是node-v7.5.0-linux-x86版本,其他版本请查看上面链接然后替换即可): $ wget http://nodejs.org/dist/latest/node-v7.5.0-linux-x86.tar.gz 解压 进入服务器终端,找到上传或者下载的安装包,解压 $ tar -zvxf node-v7.5.0-linux

MongoDB 3.2 在CentOS 上的安装和配置

MongoDB 3.2 在CentOS 上的安装和配置 2016-01-06 14:41:41 发布 您的评价:       0.0   收藏     0收藏 一.安装 编辑/etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpg

Centos 7 一键安装openstack

系统:Centos7x64 单节点 CentOS yum 快速安装: # 安装RDO repo $ sudo yum install -y https://www.rdoproject.org/repos/rdo-release.rpm # 更新repo源 $ sudo yum update -y # 安装openstack-packstack $ sudo yum install -y openstack-packstack # 执行部署过程 $ packstack --allinone 访问