大数据-Hadoop学习笔记02

来源:互联网 发布:苹果手机群发短信软件 编辑:程序博客网 时间:2024/05/18 11:46

5. 配置Hadoop(完全分布式)

1.准备几台虚拟机2.安装jdk,配置环境变量,需同步至每台机器3.安装hadoop,配置环境变量,需同步至每台机器4.安装ssh服务,保证机器之间可以无密登录5.配置文件    5.1 【../hadoop/etc/hadoop/core-site.xml】
        <property>            <name>fs.defaultFS</name>            <value>hdfs://namenode的主机名:8020/</value>    //修改NameNode所在节点位置        </property>        <property>            <name>hadoop.tmp.dir</name>            <value>指定hdfs存放目录,默认存放在/tmp目录下</value>   //修改hdfs临时存放目录        </property>
    5.2 【../hadoop/etc/hadoop/yarn-site.xml】
        <property>            <name>yarn.resourcemanager.hostname</name>            <value>resourcemanager的主机名</value>    //修改resourcemanager所在节点位置        </property>        <property>            <name>yarn.nodemanager.aux-services</name>            <value>mapreduce_shuffle</value>        </property>
    5.3 【../hadoop/etc/hadoop/hdfs-site.xml】
        <property>            <name>dfs.replication</name>            <value>3</value>    //hdfs文件存放副本数        </property>        <property>            <name>dfs.namenode.secondary.http-address</name>            <value>secondarynamdenode的主机名:50090</value>    //修改辅助名称节点所在节点位置        </property>
    5.4 【../hadoop/etc/hadoop/slaves】        将默认的loaclhost修改为集群上所有机器的主机名,一行一个,例如        vm100        vm101        vm102    5.5 在集群上向各机器分发修改后的配置文件    5.6 格式化文件系统 $>hadoop namenode -format    5.7 启动集群 $>start-all.sh    5.8 重启机器,通过下面的工具脚本执行 $>jps 同步查看相应进程是否启动

6.整理hadoop的所有类库和配置文件

1.解压缩hadoop-xxx.tar.gz到目录下2.整理hadoop-*.jar3.抽取所有配置文件,如果未手动配置,则Hadoop将会读取这里面的默认配置信息    【core-default.xml】hadoop-common-xx.jar中    【hdfs-default.xml】hadoop-hdfs-xx.jar中    【yarn-default.xml】hadoop-yarn-common-xx.jar中    【mapred-default.xml】hadoop-mapred-client-core-xx.jar

7.集群工具脚本

这里提供两个功能脚本,方便同步操作机器(将脚本放在/usr/local/bin/目录下并赋予执行权限)
1.通过rsync代替scp远程传输文件,因为他支持软链接
cmd:rsync -rvl ../file user@ip:/directory

#!/bin/bash#判断参数是否为空pcount=$#if(($pcount<1)) ; then  echo no args  exitfi#获取文件名p1=$1fname=`basename $p1`#获取绝对路径pdir=`dirname $p1`pdir=`cd $pdirname;pwd`cuser=`whoami`#分发文件for((host=101;host<105;host=host+1)); doecho ---------- s$host ----------rsync -rvl $pdir/$fname $cuser@s$host:$pdirdone

2.多台机器同时执行命令(多台机器需要包含一个相同的用户)

#!/bin/bash#判断参数是否为空pcount=$#if(($pcount<1)) ; then  echo no args  exitfi#执行本地命令echo ---------- localhost ----------  $@#远程登录节点执行命令for((host=101;host<105;host=host+1)); do  echo ---------- s$host ----------  ssh $host $@done
0 0
原创粉丝点击