美文网首页
Hadoop安装部署过程

Hadoop安装部署过程

作者: janeeyer111 | 来源:发表于2018-11-17 17:12 被阅读0次

    Hadoop安装部署过程

    ------------

    1、配置hosts

    ------------

    #在文件末添加

    vim /etc/hosts

    ...

    192.169.1.1 hadoop1

    ...

    192.168.43.128 hadoop1

    ---------------

    2、实现本地免密

    ---------------

    #生成秘钥对(根据提示回车)

    ssh-keygen

    #将公钥拷贝到免密节点

    ssh-copy-id hadoop1

    #验证(ssh连接如果没提示输入密码,则免密成功)

    ssh hadoop1

    如果提示22;则需要安装ssh客户端

    apt install openssh-server

    如果提示登陆被拒绝,则需要修改配置文件为yes

    vim /etc/ssh/sshd_config

    重启ssh服务

    service ssh restart

    -----------------

    3、解压相关软件包

    -----------------

    cd /opt

    tar -zxvf jdk1.8.0_111.tar.gz

    tar -zxvf hadoop-2.7.3.tar.gz

    ---------------

    4、增加环境变量

    ---------------

    #在文件末尾添加

    vim /etc/profile

    ...

    export JAVA_HOME=/opt/jdk1.8.0_111

    export HADOOP_HOME=/opt/hadoop-2.7.3

    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    #使添加环境变量生效

    source /etc/profile

    #验证

    java -version

    hadoop version

    -------------

    5、配置hadoop

    -------------

    cd hadoop-2.7.3/etc/hadoop

    vim hadoop-env.sh

    export JAVA_HOME=/opt/jdk1.8.0_111

    将 slave 的主机名写入到该文件(这里是单节点伪分布式所以只需要加入本机host)

    vim slaves

    hadoop1

    vim core-site.xml

    ...

    <configuration>

      <property>

        <name>fs.defaultFS</name>

        <value>hdfs://hadoop1:9000</value>

      </property>

     <!-- 指定hadoop运行时产生文件的存储目录 -->

      <property>

        <name>hadoop.tmp.dir</name>

        <value>file:/usr/local/hadoop/tmp</value>

        <description>Abase for other temporary directories.</description>

      </property>

    </configuration>

    vim hdfs-site.xml

    ...

    <configuration>

      <property>

        <name>dfs.namenode.http-address</name>

          <value>hadoop1:50070</value>

      </property>

      <property>

        <name>dfs.namenode.secondary.http-address</name>

          <value>hadoop1:50090</value>

      </property>

      <!-- 指定HDFS副本的数量 -->

      <property>

        <name>dfs.replication</name>

          <value>1</value>

      </property>

      <property>

        <name>dfs.namenode.name.dir</name>

          <value>file:/usr/local/hadoop/tmp/dfs/name</value>

      </property>

      <property>

        <name>dfs.datanode.data.dir</name>

          <value>file:/usr/local/hadoop/tmp/dfs/data</value>

      </property>

    </configuration>

    cp mapred-site.xml.template mapred-site.xml

    vim mapred-site.xml

    ...

    <!-- 指定mr运行在yarn上 -->

    <configuration>

      <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

      </property>

      <property>

        <name>mapreduce.jobhistory.address</name>

        <value>hadoop1:10020</value>

      </property>

      <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>hadoop1:19888</value>

      </property>

    </configuration>

    vim yarn-site.xml

    ...

    <configuration>

      <property>

        <name>yarn.resoursemanager.hostname</name>

        <value>hadoop1</value>

      </property>

    <!-- reducer获取数据的方式 -->

      <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

      </property>

    </configuration>

    -------------

    6、启动hadoop

    -------------

    #注意:

    如果以前启动过hadoop,再次格式化,需要将

    /usr/local/hadoop/tmp

    /usr/local/hadoop/tmp/dfs/name

    删除掉,也可以直接删除

    /usr/local/hadoop 这个目录,删除命令为:

    rm -rf /usr/local/hadoop/

    #首次启动需要先在master节点(这里的hadoop1)上执行namenode的格式化操作,成功的话,会看到 "successfully formatted"和"Exitting with status 0"的提示,若为"Exitting with status 1"则是出错。

    hdfs namenode -format

    #完成 Hadoop 格式化后,在namenode节点上启动Hadoop各个服务,使用jps命令验证相关服务是否运行起来。

    start-dfs.sh

    jps

    **************

    58993 NameNode

    59601 Jps

    59459 SecondaryNameNode

    59304 DataNode

    **************

    start-yarn.sh

    jps

    **************

    58993 NameNode

    59649 ResourceManager

    59459 SecondaryNameNode

    60070 Jps

    59767 NodeManager

    59304 DataNode

    **************

    mr-jobhistory-daemon.sh start historyserver

    jps

    **************

    58993 NameNode

    59649 ResourceManager

    60147 Jps

    59459 SecondaryNameNode

    59767 NodeManager

    59304 DataNode

    60108 JobHistoryServer

    **************

    -------------

    7、验证hadoop

    -------------

    #另外还需要在Master节点(hadoop1)上通过命令

    #查看DataNode是否正常启动,如果Live datanode不为0,则说明集群启动成功

    HDFS管理界面(NameNode结点) http://hadoop1:50070

    (SecondaryNameNode)        htpp://hadoop1:50090

    MapReduce管理界面          http://hadoop1:8088

    /opt/hadoop-2.7.3/logs/mapred-root-historyserver-hadoop3.out

    ------------------

    hadoop平台性能调优

    ------------------

    vim yarn-site.xml

    ...

      <property>

        <name>yarn.scheduler.maximum-allocation-mb</name>

        <value>1024</value>

      </property>

    ...

    vim mapred-site.xml

    ...

      <property>

        <name>mapreduce.map.memory.mb</name>

        <value>2048</value>

      </property>

      <property>

        <name>mapreduce.map.java.opts</name>

        <value>-Xmx768m</value>

      </property>

      <property>

        <name>mapreduce.reduce.memory.mb</name>

        <value>2048</value>

      </property>

      <property>

        <name>mapreduce.reduce.java.opts</name>

        <value>–Xmx1536m</value>

      </property>

    ...

    -------

    8、实例

    -------

    #查看帮助命令

    hdfs dfs -help

    #创建一个数据导入文件夹

    hdfs dfs -mkdir -p /data/input

    -p:可以创建多级目录

    #在本地创建两个文本,并加入有规律内容

    echo "hello world">test1.txt

    echo "hello hadoop">test2.txt

    #将文件上传至hdfs上

    hdfs dfs -put ./*.txt /data/input

    #查看hdfs上的文件

    hdfs dfs -ls /data/input/

    #运行wordcunt(grep)方法进行计算

    hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /data/input/ output

    #hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /data/input/ output 'hello'

    #查看运行结果

    hdfs dfs  -cat output/*

    #将结果取回本地

    hdfs dfs -get output ./output

    #删除hdfs上的文件或文件夹

    hdfs dfs -rm -r output

    相关文章

      网友评论

          本文标题:Hadoop安装部署过程

          本文链接:https://www.haomeiwen.com/subject/wylifqtx.html