码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-12 11:35:44      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

转发请注明本文链接

准备工作:

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

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

[root@localhost ~]#chmod  +x  /etc/profile ;增加执行权限

[root@localhost ~]#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 

 

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

标签:

原文地址:http://www.cnblogs.com/wuyushen/p/5764194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!