hadoop-01

伪分布式的安装

伪分布式的概念

在一台主机上模拟多个数据存储节点,每个线程都是一个独立的程序,使用的都是独立的JVM.
存储的文件系统为分布式文件系统(HDFS).作用是用于对MapReduce程序的调试。

准备条件

CentOS6.8/6.5,JDK1.8,Hadoop2.7.3,SSH,普通用户hyxy,$HOME/apps

安装步骤

(1)安装CentOS6.8.(如果有现成的系统,可以进行克隆)
选择了克隆方式(完整克隆一台虚拟机)

  • 右键点击要克隆的机虚拟机
  • 选择完整克隆
  • 命名

(2)修改网卡( NAT模式)

查看NAT的网关:编辑->虚拟网络编辑器-->VMnet8-->NAT设置

  • 切换为root用户
  • vim /etc/udev/rules.d/70-persistent-net.rules
  • 注释掉 eth0这一行,修改  eth1为eth0  ,记忆mac地址
  • vim /etc/sysconfig/network-scripts/ifcfg-eth0
  • 修改mac(HWADDR)地址(1里需要记忆的)
  • 修改启动项(ONBOOT)为yes
  • 修改成(BOOTPROTO)static

追加

  • IPADDR=192.168.80.200 <--网络段位必须和VMnet8网卡的一致。主机位任意
  • NETMASK=255.255.255.0<--子网掩码  必须和VMnet8网卡的一样
  • GATEWAY=192.168.80.2 <--网关  必须和VMnet8给的配置一样,通常都是*.*.*.2
  • DNS1=192.168.80.2 <--dns的ip通常都是网关的ip

重启(service network restart 命令如果不好使,请重启)

(3)修改主机名和域名解析

前提工作

sudo命令:获取超级管理员的权限

  • 使用root用户vim /etc/sudoers
  • 追加:hyxy  ALL=(ALL)  ALL
  • esc  :wq!  保存并退出
  • sudo vim /etc/sysconfig/network
  • hostname=xxxx
  • sudo vim /etc/hosts
  • ip   hostname

(4)在主目录下创建apps目录,上传jdk和hadoop压缩包(*.tar.gz)  到$HOME/apps
         
前提工作:

VMware tools工具的安装

虚拟机->安装 VMware tools工具->解压缩压缩包(右键单击VMwareTOOLs.....)到桌面->开启终端->切换root用户
->执行可执行文件(cd vmare....    /vmare....->一路回车  结束后重启

共享文件夹的设置

点击虚拟主机->设置->选项->共享文件夹-->启动-->选择window系统上要共享的文件夹。

  • cd /mnt/hgfs/    ls(查看共享文件夹)
  • cp /mnt/hgfs/共享文件夹名称/jdk-8u172-linux-x64.tar.gz /home/hyxy/apps
  • cp /mnt/hgfs/共享文件夹名称/hadoop-2.7.3.tar.gz /home/hyxy/apps

检查一下是否已经安装过jdk
rpm -qa | grep java
如果安装过,请卸载(切换root用户:rpm -e --nodeps xxxx,卸载后,重启重新查看)

(5)解压缩

  • tar -zxvf jdk-8u172-linux-x64.tar.gz
  • tar -zxvf hadoop-2.7.3.tar.gz

(6)创建软链接

  • ln -s hadoop-2.7.3 hadoop
  • ln -s jdk1.8.0_172/ jdk

(7)配置环境变量

 ~/.bash_profile

#jdk environment

  • JAVA_HOME=/home/hyxy/apps/jdk
  • PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
  • export JAVA_HOME PATH

#hadoop environment

  • HADOOP_HOME=/home/hyxy/apps/hadoop
  • PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
  • export PATH HADOOP_HOME

(8)重新加载配置文件

source ~/.bash_profile

检查是否配置成功

  • java -version
  • javac
  • hadoop
  • hadoop version

(9)修改hadoop的配置文件

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

  • export JAVA_HOME=/home/hyxy/apps/jdk

vim $HADOOP_HOME/etc/hadoop/core-site.xml

  • fs.defaultFS       hdfs的默认访问地址
  • hdfs://localhost:9000   端口号:9000  在hadoop1.x的默认使用的是8020
  • vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
  • dfs.replication  属性:副本数量
  • 1              副本值

(10)设置ssh无密码登录认证

(在真正的集群中,master主机需要管理其他节点上的守护进程,如开启或者是关闭,有密码设置时,效率比较低
可以设置无密码登录,进行操作)

原理:如果master想无密码登录其中一台机器slave.那么master机器上应该生成一对密钥(公钥和私钥),然后
master将自己的公钥发送给slave。当master想无密码登录slave时,slave就是生成一串字符,经过公钥加密后
发送给master.然后master使用私钥解密,再发送给slave。slave进行校验,如果一致,master就可以无密登录了。

生成一对密钥:

ssh-keygen -t rsa   ->一路回车

此时:私钥保存在了~/.ssh/id_rsa
           公钥保存在了~/.ssh/id_rsa.pub

将公钥发送到另一台机器中

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
authorized_keys的权限:600
.ssh的权限:700

(11)格式化namenode进程(格式化前:建议重启)

hdfs namenode -format

格式化的目的:主要就是生成集群ID(clusterid),块池id(blockPoolId),创建fsimage镜像文件和editlog文件

如果想重新格式化:先把 /tmp/* 删除干净。

(12)启动相关守护线程,开启集群

start-dfs.sh

使用jps指令,查询被开启的守护进程名称

关机前,最好stop-dfs.sh一下

(13)案例小测试

1、在分布式文件系统上创建一个目录input
hdfs dfs -mkdir /input

2、将$HADOOP_HOME/etc/hadoop/* 文件上传到 分布式文件系统
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*-site.xml /input

3、统计词频
hadoop jar /home/hyxy/apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /input /output 'dfs[a-z.]+'

4、查看统计结果
hdfs dfs -cat /output/*

localhost:50070
http://localhost:50070/


 

你可能感兴趣的:(hadoop-01)