Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1108462
  • 博文数量: 143
  • 博客积分: 969
  • 博客等级: 准尉
  • 技术积分: 1765
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-30 12:09
文章分类

全部博文(143)

文章存档

2023年(4)

2021年(2)

2020年(4)

2019年(4)

2018年(33)

2017年(6)

2016年(13)

2014年(7)

2013年(23)

2012年(33)

2011年(14)

我的朋友

分类: 大数据

2018-07-17 18:02:13

创建用户

1. 创建hadoop用户组

sudo  groupadd hadoop

2. 创建hadoop用户

 sudo useradd -g hadoop hadoop

3. 给hadoop用户添加权限,打开/etc/sudoers文件

 Vi /etc/sudoers

按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限

在root  ALL=(ALL:ALL)  ALL下添加hadoop  ALL=(ALL:ALL)  ALL

配置ssh免秘钥登录

l  配置Master主机本机的免秘钥登录

下面以配置Master本机无密码登录为例进行讲解,用户需参照下面步骤完成Slave1~Slave3三台子节点机器的本机无密码登录;

1)以hadoop用户远程登录Master服务器,在Master服务器上生成公钥和私钥密码对,密钥默认存储在”/home/hadoop/.ssh”目录下,生成公钥和私钥密码对时,无需输入密码,直接回车即可。

#切换到hadoop用户,不能使用root用户生成密钥

[hadoop@Master hadoop]$ su hadoop

[hadoop@Master hadoop]$ cd /home/hadoop/

[hadoop@Master hadoop]$ ssh-keygen -t rsa -P ""

2)将公钥追加到”authorized_keys”文件

[hadoop@Master hadoop]$ cd /home/hadoop/

[hadoop@Master hadoop]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

3)赋予权限

[hadoop@Master hadoop]$ chmod 600 .ssh/authorized_keys

4)验证本机能无密码访问

[hadoop@Master hadoop]$ ssh Master

l  配置从Master到各Slave节点的免秘钥登录

下面以Master无密码登录Slave1为例进行讲解,用户需参照下面步骤完成Master无密码登录Slave2~Slave3

1)以hadoop用户远程登录Slave1服务器,复制Master服务器的公钥”id_rsa.pub”到Slave1服务器的”/home/hadoop/”目录下。

[hadoop@Slave1 hadoop]$ cd /home/hadoop/

[hadoop@Slave1 hadoop]$ scp hadoop@Master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/

2)将Master的公钥(/home/hadoop/id_rsa.pub)追加到Slave1authorized_keys中。

[hadoop@Slave1 hadoop]$ cd /home/hadoop

[hadoop@Slave1 hadoop]$ cat id_rsa.pub >> .ssh/authorized_keys

[hadoop@Slave1 hadoop]$ chmod 600 .ssh

[hadoop@Slave1 hadoop]$ chmod 700 .ssh/authorized_keys

[hadoop@Slave1 hadoop]$ rm -r /home/hadoop/id_rsa.pub

3)另外开启一个终端,远程登录Master服务器,在Master服务器测试通过SSH无密码登录Slave1

[hadoop@Master hadoop]$ ssh Slave1

l  配置从各slave节点到Master节点免秘钥登录

下面以Slave无密码登录Master为例进行讲解,用户需参照下面步骤完成KVMSlave2~KVMSlave3无密码登录Master

1)以hadoop用户远程登录Master,复制Slave服务器的公钥”id_rsa.pub”到Slave服务器的”/home/hadoop/”目录下。

[hadoop@Master hadoop]$ scp hadoop@Slave:/home/hadoop/.ssh/id_rsa.pub /home/hadoop

2)将Slave的公钥(/home/hadoop/id_rsa.pub)追加到Masterauthorized_keys中。

[hadoop@Master hadoop]$ cd /home/hadoop

[hadoop@Master hadoop]$ cat id_rsa.pub >> .ssh/authorized_keys

[hadoop@Master hadoop]$ rm –r /home/hadoop/id_rsa.pub

3)以hadoop用户远程登录Slave服务器,在Slave服务器测试通过SSH无密码登录Master

[hadoop@Slave hadoop]$ ssh Master

安装hadoop

1)以hadoop用户远程登录Master服务器,下载hadoop-2.8.1.tar.gz ,并将其拷贝到Master服务器的/home/hadoop/目录下。

2)解压Hadoop源文件

[hadoop@Master ~]$ su hadoop

[hadoop@Master ~]$ cd /usr

[hadoop@Master usr]$ sudo tar -zxvf  /home/hadoop/hadoop-2.8.1.tar.gz        //将文件减压在当前路径

3)重命名hadoop

[hadoop@Master usr]$ sudo mv hadoop-1.2.1/ hadoop/

4) 设置hadoop文件夹的用户属组和用户组

很关键到一步,便于hadoop用户对该文件夹的文件拥有读写权限,不然后续hadoop启动后,无法在该文件夹创建文件和写入日志信息。

[hadoop@Master usr]$ sudo chown -R hadoop:hadoop /usr/hadoop

5)删除安装包

[hadoop@Master ~]$ rm -rf  /home/hadoop/hadoop-2.8.1.tar.gz  

 #删除"hadoop-2.8.1.tar.gz"安装包

配置master Hadoop 环境变量

1)配置环境变量

[hadoop@Master ~]$ sudo vi /etc/profile

#HADOOP

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_HOME_WARN_SUPPRESS=1

使得hadoop命令在当前终端立即生效;

[hadoop@Master ~] $source /etc/profile

2)配置hadoop-env.sh

hadoop环境是基于JVM虚拟机环境的,故需在hadoop-env.sh配置文件中指定JDK环境。修改/usr/hadoop/etc/hadoop/hadoop-env.sh文件,添加如下JDK配置信息。

[hadoop@Master ~] cd /usr/hadoop/etc/hadoop

[hadoop@Master hadoop] vi hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_65

3)配置core-site.xml
     修改Hadoop核心配置文件/usr/hadoop/etc/hadoop/core-site.xml,通过fs.default.name指定 NameNode 的 IP 地址和端口号,通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。

[hadoop@Master hadoop] vi core-site.xml

   

        fs.default.name

        hdfs://Master:9000

   

   

        hadoop.tmp.dir

        file: /usr/hadoop/tmp

   

特别注意:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/ hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。

4)配置hdfs-site.xml

修改HDFS核心配置文件/usr/hadoop/etc/hadoop/hdfs-site.xml,通过dfs.replication指定HDFS的备份因子为3,通过dfs.name.dir指定namenode节点的文件存储目录,通过dfs.data.dir指定datanode节点的文件存储目录。

[hadoop@Master hadoop] vi hdfs-site.xml

   

        dfs.replication

        3

   

   

        dfs.name.dir

        file: /usr/hadoop/hdfs/name

   

   

        dfs.data.dir

        file: /usr/hadoop/hdfs/data

  dfs.http.address

  master:50070

 

     dfs.webhdfs.enabled 

     true 

  

5)配置mapred-site.xml

 复制MapReduce核心配置文件 /usr/hadoop/etc/hadoop/mapred-site.xml.template
修改为/usr/hadoop/etc/hadoop/mapred-site.xml,通过mapred.job.tracker属性指定JobTracker的地址和端口。

[hadoop@Master hadoop] vi mapred-site.xml

   

        mapred.job.tracker

       

        mapreduce.framework.name

        yarn

 

 

        

       mapred.local.dir 

      /usr/hadoop/logs 

  

    

       mapreduce.jobhistory.address 

       Master:10020 

    

    

         mapreduce.jobhistory.webapp.address 

         Master:19888 

        

6)配置yarn-site.xml文件

修改yarn资源管理/usr/hadoop/etc/hadoop/yarn-site.xml 增加以下配置项

 [hadoop@Master hadoop] vi yarn-site.xml

 

         

          yarn.resourcemanager.hostname 

          master 

         

         

          yarn.nodemanager.aux-services 

          mapreduce_shuffle 

         

       

              yarn.resourcemanager.address

              master:8032

         

         

                yarn.resourcemanager.scheduler.address

                master:8030

         

           

                 yarn.resourcemanager.resource-tracker.address

                 master:8031

                                     

           

                     yarn.resourcemanager.admin.address

                      master:8033

                      

           

                        yarn.resourcemanager.webapp.address

                         master:8088

               

                                                                                 

                            yarn.nodemanager.aux-services.mapreduce.shuffle.class 

                              org.apache.hadoop.mapred.ShuffleHandler 

                 

   

    yarn.log-aggregation-enable   

    true   

 

7)配置slaves文件(Master主机特有)

修改/usr/hadoop/etc/hadoop/slaves文件,该文件指定哪些服务器节点是datanode节点。删除locahost,添加所有datanode节点的主机名,如下所示。

[hadoop@Master hadoop] vi conf/slaves

Slave1

Slave2

Slave3

配置Slave环境

    下面以配置Slave1hadoop为例进行演示,用户需参照以下步骤完成其他Slave服务器的配置。

1)以hadoop用户远程登录Slave1服务器,拷贝-Master主机的hadoop文件夹到本地/usr/目录下;

[hadoop@Slave1 ~]$ cd /usr/

[hadoop@Slave1 usr]$ sudo scp -r hadoop@-Master:/usr/hadoop/ .

[hadoop@Slave1 usr]$ sudo chown -R hadoop:hadoop hadoop/

#slaves文件内容删除,或者直接删除slaves

[hadoop@Slave1 usr]$ rm /usr/hadoop/conf/slaves

2)配置环境变量

[hadoop@Slave1 ~]$ sudo vi /etc/profile

#HADOOP

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_HOME_WARN_SUPPRESS=1

使得hadoop命令在当前终端立即生效;

[hadoop@Slave1 ~]$ source /etc/profile

格式化HDFS文件系统

        格式化HDFS文件系统需要在namenode节点上通过hadoop用户执行,而且只需要执行一次,下次启动时不需要格式化,直接启动HDFS文件管理系统和MapReduce服务即可。

  [hadoop@Master ~]$ hadoop namenode -format

启动HDFSyarn

注意:在启动前需要检查各主机的防火墙是否开启的,如果开启的需要在root用户下用service iptables stop 命令关闭防火墙,否则可能导致各节点之间通信异常。

进入/usr/Hadoop/sbin/目录执行启动脚本start_all.sh

[hadoop@Master  sbin]$ ./start_all.sh

1、  查看是否启动成功

jps查看进程,如有以下进程说明启动

Master主机

      NameNode

      SecondaryNameNode

      Jps

     ResourceManager

Slaver主机

DataNode

NodeManager

2、  查看页面

    l  通过 查看hdfs管理页面

     l 通过http://Master:50070  查看yarn管理页面
l 通过http://Master:19888  查看job管理页面

3、  测试

1、  hadoop fs –mkdir  /test  //创建目录

2、  Hadoop fs –put  ./README.txt  /text   README.txt 上传到test目录下

3、  用hadoop 自带的mr例子程序进行测试

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount  /test/README.txt  /test/README

    4、用查看hadoop fs -ls /test/README

阅读(6329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~