Hadoop 基础和 伪分布式环境

1.HDFS架构

NomeNode --> DataNode

2.YARN架构

 资源调度,管理

3.MapReduce计算架构

map:并行处理输入数据

reduce:对map结果进行汇总

shuffle连接map和reduc两个阶段

仅适合离线批处理:具有很好的容错性和扩展性;合适简单的批处理任务

缺点:启动开销大,过多是哟个磁盘导致效率低下等。

4.hadoo系统安装方式

单机模式;

单机伪分布模式;

集群分布模式;

5.伪分布式模式配置

条件:linux操作系统(cento os6)+在linux系统中安装java+虚拟机网络配置(关闭防火墙/虚拟机克隆网络配置)+普通用户登陆操作系统

配置步骤:

**系统环境准备
1、把网卡IP设置成静态 (NAT方式)
# ifconfig  # 查看网卡IP
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes    # 把网卡设置成开机启动
BOOTPROTO=static   # 把DHCP改为static
IPADDR=192.168.17.129
NETMASK=255.255.255.0
GATEWAY=192.168.17.2


2、设置DNS
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.17.2 #第一个DNS设置成跟网关地址一样
DNS2=202.96.209.5


# service network restart # 把网络服务重启


3、修改主机名
** 集群内部一般主机名都是格式统一的
** hadoop里面主机名不支持下划线
bigdata1.com

# vi /etc/sysconfig/network
HOSTNAME=bigdata1.com


4、关闭防火墙、selinux
** 默认情况下,防火墙只开启了22号端口

# 关闭防火墙服务
# service iptables stop
# 设置成开机不启动
# chkconfig iptables off


# 关闭selinux
# vi /etc/sysconfig/selinux
SELINUX=disabled   把enforcing改成disabled 

5、添加主机名的映射
** 后期需要时间主机名
# vi /etc/hosts
192.168.17.129 bigdata1.com


6、创建普通用户
** 后期所有操作都用该普通用户进行
# useradd bigdata
# echo 123456 | passwd --stdin bigdata




(xshell或者CRT)
** 安装JDK 
$ su - root
# mkdir /opt/modules # 用于软件安装目录
# mkdir /opt/softwares # 用于软件下载目录

# chown bigdata:bigdata /opt/modules/
# chown bigdata:bigdata /opt/softwares/

$ tar zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules/

# vi /etc/profile (root用户)
## JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

卸载系统自带的JDK
# rpm -qa | grep -i java
# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch 
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64 

---安装hadoop:-------------------------------------

        将hadoop上传到linux系统中,并解压到对应文件夹中

$ tar zxvf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/

---配置HDFS:----------------------------------------
** namenode

** datanode

修改解压后文件hadoop-2.5.0-cdh5.3.6/etc 文件夹下的下列文件(可以参考hadoop官网教程-->hadoop官网教程)

hadoop-env.sh文件

        <!--将export JAVA_HOM=${JAVA_HOME}改为java的绝对路径,即:-->

export JAVA_HOME=/opt/modules/java/jdk1.7.0_67

core-site.xml文件

        <!--添加两个property属性-->

<!--HDFS集群访问入口地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>

    </property>

        <!--localhost为你的hostname本地主机名字-->

<!--声明存放数据的目录,下面代码在haddop下新建一个data文件存放数据-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/data</value>
    </property>

hdfs-site.xml文件
<!--Block的副本数-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
        <!--数据块的副本数不能大于 datanode的节点数量-->


slaves文件

hostname

        <!--本地主机名-->

** 声明哪些服务器是datanode
** 每行一个主机名

命令行操作:

当前工作目录定位到hadoop文件夹下,执行以下命令:


格式化文件系统:
$ bin/hdfs namenode -format
启动服务:
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode


web控制台浏览器:
http://192.168.17.129:50070/
       


上传文件测试:
$ bin/hdfs dfs -mkdir /input                 在根目录下新建一个input文件夹
$ bin/hdfs dfs -put wc.txt /input 存储文件 (bin/hdfs dfs -put 要上传的文件路径 目标文件夹路径)

$ bin/hdfs dfs -cat /input/wc.txt 查看文件   (bin/hdfs dfs -cat 需要查看的文件路径)


----配置yarn:--------------------------------------

** resourcemanager
** nodemanager

yarn-env.sh  mapred-env.sh文件:(顶部写入以下命令/opt/modules/jdk1.7.0_67为jdk的绝对路径)
export JAVA_HOME=/opt/modules/jdk1.7.0_67

yarn-site.xml文件 (将bigdata1.com改为本地主机名称)
<!-- NodeManager获取数据的方式是shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bigdata1.com</value>
    </property>

mapred-site.xml文件(在/ect文件夹下复制mapred-site.xml.template并改名为mapred-site.xml保存到/etc文件夹下)
<!--mapreduce计算模型运行在yarn平台-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>


启动yarn
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager


运行一个mapreduce任务测试:
** 利用官方自带的jar包,进行文件的单词统计
$ bin/yarn jar share/hadoop/mapreduce/
hadoop-mapreduce-examples-2.5.0.jar wordcount /input/ /output
删除hdfs上的文件:
 bin/hdfs dfs -rm /input/tt.txt
** 原文件分隔符是\t
** /input 表示输入路径
** /output 表示输出路径,必须要不存在
** 都是HDFS里面的路径

查看结果
bin/hdfs dfs -cat /output/par*




配置日志服务器:--------------------------------------
yarn-site.xml文件
<!--启用日志聚合功能-->
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
<!--日志保存时间-->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>


mapred-site.xml文件
<!--进程通信-->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>bigdata1.com:10020</value>
    </property>

<!--客户端访问入口-->
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>bigdata1.com:19888</value>
    </property>



重启yarn服务
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh stop nodemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager

启动historyserver服务
$ sbin/mr-jobhistory-daemon.sh start historyserver


重新执行wordcount,查看日志,需要重新指定输出目录
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /input/ 
/output2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值