Hadoop集群搭建

    xiaoxiao2022-07-05  153

    hadoop集群搭建 hadoop 确定集群所需要的机器 ,由于机器限制,只有三台机器,一般的数据节点至少要有三个副本 由于机器限制我这里就用了两个副本了(我这里bigdata128是主节点) bigdata128 bigdata129 bigdata131 三台服务器 服务器环境搭建 hadoop3 需要的java环境必须在1.8 以上 hadoop3.0.0.1.tar.gz 项目文件下载 解压 解压后需要多件几个文件夹 在解压后的文件夹里面新建一个临时文件夹 hadooptemp 新建一个 日志文件夹 logs 新建一个hdfs文件夹 里面对应新建 data 和name 两个文件夹数据文件夹和名称文件 这是基本要设置的 文件同步脚本rsynch

    #!/bin/bash pcount=$# if((pcount<1));then echo 'no args'; exit; fi p1=$1; fname=`basename $p1` pdir=`cd -P $(dirname $p1); pwd` echo $pdir cuser=`whoami` #echo $cuser for((host=2;host<4;host=host+1));do echo ---------------------hadoop0$host--------------------- rsync -rvl $pdir/$fname $cuser@hadoop0$host:$pdir done 命令同步脚本 xcall #!/bin/bash pcount=$# if((pcount<1));then echo 'no args'; exit; fi $@ for((host=2;host<4;host=host+1));do echo ---------------------hadoop0$host--------------------- ssh hadoop0$host $@ done

    修改hosts 文件并同步其他服务器

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.40.154 hadoop01 192.168.40.159 hadoop02 192.168.40.160 hadoop03

     

    修改对应机器的hostname

    vim /etc/hostname

    配置免秘钥登录 首先看看你的服务器是否有ssh服务,没有的话就先安装 (在根目录下是否有.ssh 文件夹)

    yum install ssh

    1)查看端口号:netstat –lnt 确认端口为默认的22端口。 (2)生成秘钥对:ssh-keygen –t rsa(出现提示一直默认) (3)复制公钥到其他2个机器。 命令:ssh-copy-id -i id_rsa.pub root@hadoop02 这里要输入,yes 然后输密码 ssh-copy-id 脚本做了两件事:1、将秘钥拷贝到了目的服务器,并创建了.ssh目录,2、又将id_rsa.pub文件更改名字为:authorized_keys,并保持文件权限属性不变。 测试:

    ssh root@hadoop ls -l  ~ 配置文件配置 bash_profile中配置 HADOOP_HOME和HADOOP_OPTS(这个是一些java 运行时的额外的jar包)   hadoop.env.shJAVA_HOME是否配置了 export JAVA_HOME="/usr/local/java/jdk1.8.0_144" core-site.xml <property>   <name>fs.defaultFS</name>   <value>hdfs://hadoop01:9000/</value>   <description>The name of the default file system.  A URI whose   scheme and authority determine the FileSystem implementation.  The   uri's scheme determines the config property (fs.SCHEME.impl) naming   the FileSystem implementation class.  The uri's authority is used to   determine the host, port, etc. for a filesystem.</description> </property> <property>   <name>hadoop.tmp.dir</name>   <value>/root/hadoop/hadooptemp</value><!-- 这个是临时文件夹路径一定要自己定义-->   <description>A base for other temporary directories.</description> </property> hdfs-site.xml <property>   <name>dfs.namenode.secondary.http-address</name>   <value>hadoop03:9868</value>   <description>     The secondary namenode http server address and port.   </description> </property> <property>   <name>dfs.namenode.secondary.https-address</name>   <value>hadoop03:9869</value>   <description>     The secondary namenode HTTPS server address and port.   </description> </property>         <property>                 <name>dfs.namenode.http-address</name>                 <value>hadoop01:50070</value>         </property> <property> <name>dfs.namenode.name.dir</name>  <value>/root/hadoop/hadoop3/hdfs/name</value> </property>  <property>   <name>dfs.datanode.data.dir</name>   <value>/root/hadoop/hadoop3/hdfs/data</value>  </property>  <property>   <name>dfs.replication</name>   <value>2</value>  </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> mapred-site.xml     <property>         <name>mapreduce.framework.name</name>         <value>yarn</value>     </property> yarn-site.xml <!-- Site specific YARN configuration properties -->     <property>     <name>yarn.nodemanager.aux-services</name>     <value>mapreduce_shuffle</value>     </property>

    在workers文件中写数据节点的机器的hostname Bigdata129 Bigdata130

    在start-dfs.sh stop-dfs.sh 添加配置 

    HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root

    在start-yarn.sh stop-yarn.sh 添加配置

    HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root

    然后就可以吧这个hadoop3对应的文件夹分发到各个服务器了 然后应该就可以顺利启动了

    最新回复(0)