• Hadoop安装配置


    简介

    hadoop解决问题:

    海量数据的存储(HDFS)

    海量数据的分析(MapReduce)

    资源管理调度(YARN)

    受Google三篇论文启发:GFS、MapReduce、BigTable

    Hadoop功能:

    擅长海量离线日志分析

    Hadoop如何解决海量数据的存储?

    若干被称为Datanodes的节点,存储文件时,将文件切割成很多块,每块分散分布到其他机器上,负债分散均衡,并且每块都会有副本分散保存来防止数据丢失。文件路径映射关系管理就是Namenode负责的。

    hadoop解决问题:

    海量数据的存储(HDFS)

    海量数据的分析(MapReduce)

    资源管理调度(YARN)

    Hadoop如何解决海量数据的存储?

    若干被称为Datanodes的节点,存储文件时,将文件切割成很多块,每块分散分布到其他机器上,负债分散衡,并且每块都会有副本分散保存来防止数据丢失。文件路径映射关系管理就是Namenode负责的。

    NAT模式讲解:

    VMware产生一个虚拟网关,centos虚拟机里面也有网卡,而这个网卡就连接在虚拟网关上。Windows主机上有一个真实的物理网卡,Windows网卡会连接到宿舍的网关上。

    VMware会给Windows生成一个虚拟网卡,名叫VMnet8。centos和vmnet8就是通过虚拟网关连接在一起的,所以他们必须处在同意网段。

    实际物理网卡和vmnet8是没什么关系,不考虑他们的ip网段。

    安装流程

    网络配置

    vmare中的网络适配器选择:自定义->VMnet8(NAT模式)

    vmware中的虚拟网络编辑器->VMnet8,然后设置网络和默认网关。

    修改静态IP

    方法一:图形界面

    进入Linux图形界面->右键点击右上方的两个小电脑->点击edit connections->选中当前网络,再添加相关网络信即可

    方法二:网卡配置文件

    在一张图中IPADDR=中 等于号前和后加入了空格,是错误的,很难发现的。

    输入命令:

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE="eth0"
    BOOTPROTO="static"
    IPV6INIT="yes"
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Ethernet"
    IPADDR="192.168.80.31"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.80.1"
    

    改完配置文件不会自动生效,必须重启Linux服务器(reboot)

    或者重启network服务sudo service netwok restart

    注意:也可以不要引号,建议不要用引号

    DEVICE=eth0
    BOOTPROTO=static
    IPV6INIT=yes
    NM_CONTROLLED=yes
    ONBOOT=yes
    TYPE="Ethernet
    IPADDR=192.168.80.31
    NETMASK=255.255.255.0
    GATEWAY=192.168.80.1
    

    修改主机名:

    也就是修改Linux命令终端中括号里的@后的名字

    进入root用户下,输入:vi /etc/sysconfig/network

    在里面的HOSTNAME=slave1的等号=后添加想修改的名字保存就行。

    然后再重启主机或者输入:sudo hostname slave1

    然后重新登陆系统就行。

    修改主机和IP的映射关系:

    真实集群里面每台主机都必须有一个规划好的名字或者编号,

    vi /etc/hosts
    192.168.80.31 name
    sudo vi  /etc/sysconfig/network 
    

    防火墙

    查看防火墙状态

    service iptables status

    关闭防火墙

    service iptables stop

    查看防火墙开机启动状态

    chkconfig iptables --list

    关闭防火墙开机启动

    chkconfig iptables off

    远程登陆

    jdk版本必须和centos是一样的64位版本

    通过secureCRT来将文件传送到centos里面,再进行安装

    进入secureFX输入用户名、密码、端口22就行了

    拖动文件即可进行文件传输

    注意要提前关闭防火墙

    关掉图形界面,终端输入命令:init 3

    切换用户:su

    命令行进入配置文件,关掉图形界面或者选择用户模式。vi /etc/inittab

    或者:

    sudo vi /etc/inittab

    在最后一行中将启动级别改成3

    id:3:initdefault

    权限修改

    让普通用户具备sudo执行权限:

    切换到root用户下

    然后:vi /etc/sudoers

    加入一行:

    root ALL=(ALL)        ALL
    hadoop ALL=(ALL)      ALL
    

    这样就给hadoop用户和root一样的权限了

    如果遇到警告:输入wq!即可

    jdk安装

    创建文件夹

    在Hadoop用户主目录下建一个文件夹,专门用来放置Hadoop安装的软件

    mkdir /home/hadoop/app

    解压

    tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app

    或者tar -zxvf jdk-7u55-linux-i586.tar.gz -C app/

    #安装完成后输入:java -version

    如果出现3行具体Java版本等信息则说明安装成功,此时必须将Java的路径添加到环境变量里面。

    注意-C是大写的字母

    添加环境变量

    vi /etc/profile或者sudo vi /etc/profile

    在文件最后添加

    export  JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
    export  PATH=$PATH:$JAVA_HOME/bin
    
    刷新配置

    source /etc/profile

    确保java环境安装好
    [root@weekend110-1  hadoop-2.4.1]# echo ${JAVA_HOME}
    /home/hadoop/app/jdk1.7.0_65
    [root@weekend110-1  hadoop-2.4.1]# java -version
    java version  "1.7.0_45"
    OpenJDK Runtime  Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
    OpenJDK 64-Bit Server  VM (build 24.45-b08, mixed mode)
    

    安装hadoop

    bin:可执行脚本,普通操作

    etc:配置文件

    include:本地库文件

    lib:本地库

    libexec

    sbin:系统相关的执行脚本,启动和停止的

    share:架包

    配置hadoop文件

    第一个:配置文件hadoop-env.sh

    配置文件位置:/home/hadoop/app/hadoop-2.6.5/etc/hadoop

    命令:vi hadoop-env.sh

    export JAVA_HOME=${JAVA_HOME}修改为:

    export JAVA_HOME=/home/hadoop/app/jdk1.8.0_181

    说明:=后面的是jdk所在地址

    保存离开::wq

    第二个:配置文件core-site.xml

    配置文件位置:/home/hadoop/app/hadoop-2.6.5/etc/hadoop

    #命令:vi core-site.xml

    显示:

    <configuration>
    </configuration>
    

    在这里面插入代码:

    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://slave2:9000</value>
    </property>
     
    <property>
    <name>hadoop.tmp.dir</name>
    value>/home/hadoop/app/hadoop-2.4.1/data/</value>
    </property>
    </configuration>
    

    说明:

    一个配置项放置之间

    slave2是localhost,即主节点的主机名

    hadoop.tmp.dir就是datanode的工作目录文件,是一个临时存储数据的

    里面的fs.defaultFS表示:默认的文件系统

    hdfs://slave2:9000表示:hdfs表示协议,//后面的表示主节点的地址,并指定端口号9000。

    /home/hadoop/app/hadoop-2.6.5为hadoop的工作目录,data/是建的一个文件夹用来放数据

    <configuration>
    <!--  指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master :  9000</value>
    </property>
    
    <!--  指定hadoop运行时产生文件的存储目录 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/app/hadoop-2.6.5/data/</value>
    </property>
    </configuration>
    
    第三个:hdfs-site.xml
    <!--  指定HDFS副本的数量-->
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    
    第四个:mapred-site.xml

    先修改名称:mv mapred-site.xml.template mapred-site.xml

    然后继续下面:

    vi mapred-site.xml

    添加:

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    
    第五个:yarn-site.xml
    <!--指定YARN的老大(resourcemanager)的地址-->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>weekend110</value>
    </property>
    
    <!-- reducer获取数据的方式  -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    
    配置环境变量:

    输入:sudo vi /etc/profile

    在文件

    unset i
    unset -f pathmunge
    export  JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
    export  PATH=$PATH:$JAVA_HOME/bin
    

    修改为:

    export  JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
    export  HADOOP_HOME=/home/hadoop/app/hadoop-2.4.1
    export  PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    生效:

    sudo source /etc/profile

    hadoop用户权限修改

    进入root用户,执行:visudo

    打开文件找到:root ALL=(ALL) ALL,紧贴下面添加:hadoop ALL=(ALL) ALL,保持退出。

    如果需要执行时不输入密码,

    找到:#%wheel ALL = (ALL) NOPASSWD:ALL,

    去掉前面的#号,保持退出

    格式化namenode

    输入命令:

    hdfs namenode -format

    执行成功后输入:

    start-dfs.sh

    查看当前运行进程

    执行:jps

    一个NameNode,一个jps,一个SecondaryNameNode,若干DataNode

    出现这三个表示连接成功了。

    浏览器网页登陆

    首先修改hosts,将ip和名字添加进hosts。hosts地址:C:WindowsSystem32driversetchosts

    然后在浏览器输入:http://name:50070。其中,50070是端口号。

    HDFS原理解析

    常用命令

    hadoop fs用来查看命令

    其中:

    appedTofile:追加文件

    localsrc:本地路径

    dst:目标路径

    chown:改变所属用户

    chmod:修改用户权限

    -du(s) //显示目录中所有文件大小

    -count[-q] //显示目录中文件数量

    -put //本地文件复制到hdfs-copyFromLocal //同put

    -moveFromLocal //从本地文件移动到hdfs

    -get [-ignoreCrc] //复制文件到本地,可以忽略crc校验

    -getmerge //将源目录中的所有文件排序合并到一个文件中

    -cat //在终端显示文件内容

    -text //在终端显示文件内容

    -copyToLocal [-ignoreCrc] //复制到本地

    -moveToLocal

    -touchz //创建一个空文件

    免密ssh登陆

    secure shell的缩写为ssh,远程登陆的协议。

    登陆方法:ssh ip地址

    断开连接:logout

    配置ssh免登陆

    生成ssh免登陆密钥

    进入我的home目录

    cd ~/.shh
    ssh-keygen -t rsa
    

    执行完这个命令后,会生成两个文件:id_rsa(私钥)、id_rsa.pub(公钥)

    ssh-copy-id localhost

  • 相关阅读:
    Python中的Dictionary
    Python中的list
    Python的string模块化方法
    Python字符串格式化表达式和格式化方法
    Python中的slice操作
    Python中的字符串
    华为笔试——C++进制转换
    华为笔试——C++消重输出
    华为笔试——C++转换字符串问题
    C++数字三角形问题与dp算法
  • 原文地址:https://www.cnblogs.com/niubidexiebiao/p/10504631.html
Copyright © 2020-2023  润新知