首页 > 代码库 > hadoop

hadoop

一、环境

1、centos

2、JDK

3、hadoop

二、单机版

1、下载hadoop,地址http://120.203.214.5/8c2/71233/8c262c70bcd6098df871f293e2f9337d3f571233/hadoop-2.7.3.tar.gz?n=hadoop-2.7.3.tar.gz

 

2、tar -zxf hadoop-2.7.3.tar.gz,解压

 

3、配置hadoop的环境变量,vim /etc/profile

技术分享

 

 4、复制hadoop-2.7.3/etc/hadoop为hadoop-2.7.3/etc/hadoop_conf。进入hadoop_conf,修改hadoop-env.sh和yarn-env.sh

hadoop-env.sh

技术分享

 

yarn-env.sh

技术分享

5、输入hadoop version显示版本信息

技术分享

6、输入hadoop fs -ls /会显示根目录信息

技术分享

 

 三、伪分布式

1、单机、伪分布式、完全分布式一些属性的配置表

技术分享

 

2、分别修改hadoop_conf下的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml,将以下对应xml的代码拷贝到相应的xml文件中

<?xml version="1.0"?><!-- core-site.xml --><configuration><property><name>fs.defaultFS</name><value>hdfs://localhost/</value></property></configuration><?xml version="1.0"?><!-- hdfs-site.xml --><configuration><property><name>dfs.replication</name><value>1</value></property></configuration><?xml version="1.0"?><!-- mapred-site.xml --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration><?xml version="1.0"?><!-- yarn-site.xml --><configuration><property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

比如mapred-site.xml

技术分享

3、配置完成后,要配置ssh,查看是否安装了ssh,使用命令which ssh,若出现/usr/bin/ssh表示已安装。

技术分享

4、输入命令ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa,它会在你的/home/xxx(当前登陆的用户文件夹)创建一个隐藏的文件夹./ssh,使用命令ls -al查看,产生的文件目录如下:

技术分享

其中id_rsa为私密密钥,id_rsa.pub为公开密钥,这么做的目的是为了完全分布式时,多个hadoop之间的加密通信。私密密钥只能解密公密发过来的加密信息,公开密钥只能解密私密密钥发过来的加密信息。

5、输入命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,也就是生成上图出现的authorized_keys文件,用于存储认证信息,第一登陆需要输入认证,第二次就可以直接登陆

6、登陆命令ssh localhost,第一次会出现确认信息,输入yes即可,下次登陆就没有这个步骤了,推出输入exit。

7、启动守护线程,先输入start-dfs.sh再输入start-yarn.sh最后输入(这个可以不启动)mr-jobhistory-daemon.sh start historyserver,或使用start-all.sh一键启动,不过官方已经不推荐这么用了。(注意:这样是启动不了的,因为前面我们修改了默认的配置的文件,我们真正进行了配置的文件是hadoop_conf)

(1)第一种方法给每个命令后面加上--config /home/hadoop-2.7.3/etc/hadoop_conf

(2)第二种配置环境变量  HADOOP_CONF_DIR,vim /etc/profile,增加HADOOP_CONF_DIR=/home/hadoop-2.7.3/etc/hadoop_conf

(3)第三种把原来的hadoop改个名字,再给hadoop_conf建立一个链接,ln -s hadoop_conf hadoop,当然如果你直接在hadoop上改东西的话,这一切将不会发生。

8、启动后输入hadoop fs -ls /你会发现是空的,此时你可以使用hadoop fs -mkdir /user/建立一个user文件夹,再次使用hadoop fs -ls / 就可以看到刚才建立的user文件夹。

 

四、完全分布式

1、再克隆3个虚拟机

技术分享

2、打开全部虚拟机,修改每个虚拟机的主机名,vim /etc/sysconfig/network,vim /etc/hosts,并且添加本机和其他主机的ip和主机名,全部重启

network

技术分享

 

hosts

技术分享

 

 

3、此时可以在其中任何一台机器上访问其他的主机

技术分享

4、我们以s0主机作为namenode,所以我们修改s0的配置文件,修改core-site.xml、yarn-site.xml,hdfs-site.xml,给hadoop_conf下的slaves添加s1,s2,s3,表示添加三个数据节点

技术分享

 

 技术分享

技术分享

 

技术分享

5、其他的主机应当配置一个和s0主机一样的配置文件,由于直接改麻烦,我们可以用远程复制方式

依次使用命令scp -r hadoop_conf root@s1:/home/hadoop-2.7.3/etc/hadoop_conf,

scp -r hadoop_conf root@s1:/home/hadoop-2.7.3/etc/hadoop_conf,

scp -r hadoop_conf root@s2:/home/hadoop-2.7.3/etc/hadoop_conf,

scp -r hadoop_conf root@s3:/home/hadoop-2.7.3/etc/hadoop_conf

6、start-all.sh启动

技术分享

 

hadoop