请选择 进入手机版 | 继续访问电脑版
楼主: 上帝之杖
212 0

[Hadoop] hadoop环境搭建 [分享]

  • 0关注
  • 0粉丝

学前班

60%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
110 点
帖子
1
精华
0
在线时间
2 小时
注册时间
2021-1-8
最后登录
2021-1-13

上帝之杖 发表于 2021-1-10 17:31:23 |显示全部楼层
系统和配置

CentOS 6 64(一个有界面,两个无界面,共三个,其中2,3应完全一样) 1cpu2核心 1G内存

是否要利用现有的?不用,这次为spark 专门搭建的分布式集群

主机名设置

一个主节点,3个从节点

都是单网卡设计,且能和外网通信

[td]

计算机名

ip地址

网关

DHCP

备注

VM8|NAT

VMDK

Clone

win主机192.168.198.1255.255.255.225开启



CentOS1192.168.2.130192.168.2.1192.168.2.128-254在同一网段是|是CentOS6Ji_1N|界
CentOS2192.168.2.131192.168.2.1关闭能连接外网是|是CentOS6Ji_2Y|无
CentOS3192.168.2.132255.255.255.0关闭共用ISO是|是CentOS6Ji_3Y|无

root 密码 123456

spark 密码 123

大数据集群

大数据集群为一个master,两个slave1,slave2

  • win主机

  • master = Centos7_1 - 192.168.2.150(/etc/sysconfig/network-scripts/ifcfg-ens33)

  • slave1 = Centos7_2 - 192.168.2.151

  • slave2 = Centos7_3 - 192.168.2.152(网关,子网掩码同)

  • centos中修改host


    • hostnamectl set-hostname CentOS7_2(或修改 /etc/hostname文件)



网路配置

win主机网路配置(win)

  • 用VMware8网卡:IP 192.168.2.2(用2.2可以访问130,131,132等)        网关 192.168.2.1 (网关) 网关同虚拟机要一致才能通信


虚拟机网络VMware8(NAT)设置

  • 子网 192.168.2.0

  • NAT设置 192.168.2.1

  • DHCP


    • 起始 192.168.2.128

    • 结束 192.168.2.254



虚拟机网卡设置

  • 文件位置 cd /etc/sysconfig/network-scripts/ifcfg-eth0

  • ifcfg-eth0:修改@1onboot -> yes @2dhcp -> static

  • IP地址:IPADDR = 192.168.2.130

  • 网关:GATEWAY = 192.168.2.1

  • 广播地址:BROADCAST = 192.168.2.255

  • #(DNS在网路环境不好时会起大作用)

  • 中国电信的DNS:DNS1=114.114.114.114

  • 谷歌的DNS:DNS2=8.8.8.8

  • shift + ZZ 或  “:wq!”



通过网路名访问虚拟机(域名映射)

  • 文件地址:vi /etc/hosts

  • CentOS中:host中加域名 192.168.2.130 CentOS6Ji_1

  • win中:cystem32/etc/host


配置网路服务

  • 停止已有的服务: service NetworkManager stop

  • 重启文件:/etc/init.d/network restart

  • 配置开机不自启:chkconfig NetworkManager off

  • 配置nameserver:在/etc/resolv.conf中追加nameserver (网关) 192.168.2.1

  • 重启网卡:service network restart


防火墙配置(关闭)

  • CentOS中:@1关闭 service iptables stop        @2开机不自启 chkconfig iptables off        @3查看状态:service iptables status

  • CentOS7中:@查看状态 systemctl status firewalld.service(或  firewall-cmd --state) @重启不自启 systemctl disable firewalld.service

  • win中:网络属性 -> 防火墙 -> 启用或关闭(关闭)


使用xshell上传下载文件

  • CentOS安装插件:yum install lrzsz(或yum install -y lrzsz,卸载该工具yum remove lrzsz)

  • 把文件拖入在xshell中

  • 使用上传命令 rz

  • 下载命令 sz

  • 解压缩


    • 1、.tar 用 tar –xvf 解压2、.gz 用 gzip -d或者gunzip 解压3、.tar.gz和.tgz 用 tar –xzf 解压(或 tar -zxvf hadoop-2.7.5.tar.gz  -C /opt/目标位置)4、.bz2 用 bzip2 -d或者用bunzip2 解压5、.tar.bz2用tar –xjf 解压6、.Z 用 uncompress 解压7、.tar.Z 用tar –xZf 解压8、.rar 用 unrar e解压9、.zip 用 unzip 解压 tar - 解压缩

    • gzip打包压缩


  • 删除


    • 文件 rm  -r 文件路径/文件名(-rf递归删除,不提示用户)


  • 移动


    • 文件 mv 源文件或目录 目标文件或目录

    • 文件夹



安装开发环境配置java
  • 上传安装文件的存放位置:/app/tmp

  • 软件安装位置:/app/soft

  • 编译时存放源码及编译结果:/app/compile

  • 存放Spark和Hadoop等:/app/spark

  • 安装 JDK:exe---rpm,tar.gz---压缩包。切换到rpm的文件夹目录中 rpm -ivh jdk-1.8...

  • 安装路径:rmp的安装的默认路径都在/usr中

  • 压缩包安装:解压后配置环境变量即可

  • 配置环境变量:vi /etc/profile    中追加 @1---  export JAVA_HOME=/usr/java/jdk1.8...@2---export CLASSPATH=$JAVA_HOME$\lib:$CLASSPATH @3--- export PATH=$JAVA_HOME$\bin:$PATH

  • 刷新环境变量文件:source /etc/profile

  • 查看自带的jdk:rpm -qa | grep java

  • 删除已有jdk:rpm -e --nodeps java-1.7.0...


下载安装conda(python)
  • 更换yum仓库源为清华大学


    • yum 的配置文件在 /etc/yum.repos.d 目录下, 其中有多个配置文件,每一个配置文件中都可以配置一个或多个repository, 但是最终会被合并为一个交给系统,所以多个文件只是为了方便管理

    • yum clean all     # 清除系统所有的yum缓存

    • yum makecache     # 生成yum缓存


  • 安装wget (yum -y install wget)


    • wget -P /root/download(指定的保存目录) 网址

    • 不指定目录则在那个目录下执行此命令就下载到那个目录下


  • 安装conda


  • 创建虚拟环境


    • 创建一个名为py3,版本为python3.6的虚拟环境(conda create --name py3 python=3.6)

    • 列出所有虚拟环境(conda env list)


  • 激活切换环境


    • 激活py3这个虚拟环境(source activate py3)

    • 取消激活(source deactivate)



克隆
  • 主从结构

  • 修改唯一性的配置:计算机名,IP,UUIP,hostname映射

  • 修改计算机名:vi /etc/sysconfig/network

  • 硬件地址和UUID:删掉,下次启动时自动生成

  • 删除配置备份,防止还原:rm -r /etc/udev/rules.d/70-persistent-net.rules(输入yes)

  • 改域名和ip的映射:


    • Centos中:所有的机器都要加,要互相映射

    • win中:加所有的机器



ssh免密钥登录centos6/7的
  • 机器内的程序通信时不需要密码:跳过操作系统的密钥检查


    • 私钥:密钥在本机

    • 公钥:密钥发给其他计算机


  • 前提是安装了ssh(yum install  -y openssh参数-y表示一路yes)

  • 生成密钥:ssh-keygen -t rsa (一直回车,不输入密码,rsa指定加密算法保存在/root/.ssh/id_rsa中)

  • 查看密钥:cd /root/.ssh/(公钥.pub,私钥)

  • 合并到在 Master 服务器下,合并公钥到 authorized_keys 文件,进入 /root/.ssh 目录,通过 SSH 命令合并(cat id_rsa.pub>> authorized_keys)


    • ssh root@10.8.26.196 cat ~/.ssh/id_rsa.pub>> authorized_keys

    • ssh root@10.8.26.195 cat ~/.ssh/id_rsa.pub>> authorized_keys

      发送私钥和公钥(本机和其他计算机):


    • 发本机(私钥):ssh-copy-id localhost (输入yes,root密码)()

    • 发其他计算机(公钥):ssh-copy-id CentOS6Ji_2 (yes,_2的root密码)(ssh-copy-id -i ~/.ssh/id_rsa.pub root@centos7_1)


  • 测试


    • 连自己:ssh localhost

    • 连其他:ssh CentOS6Ji_2


  • 用以上方法两两设置


用户权限
  • root 用户:权限最高,但不能防止误删文件

  • 创建用户组:groupadd bdz

  • 创建普通用户:在用户组中增加用户,useradd -g bdz name2

  • 用户密码:passwd name2(回车后写密码)

  • 升级用户权限(在/etc/sudoers中设置用户的权限)


    • 先修改文件权限:chmod 777 /etc/sudoers(最高权限,可读可写)

    • 再修改文件:root   ALL=(ALL )  ALL

    • name2 ALL=(ALL) ALL   保存

    • 把文件权限还原为只读:chmod 440  /etc/sudoers


  • 且换用户:su name2

  • 切换为root:su 输密码

  • 删除用户:userdel name2(无进程占用,若有,则重启后删)

  • 查看进程:jps

  • 结束进程:kill  -9 进程编号


已完成的
  • win主机能和虚拟机ping通

  • 虚拟机能连接xshell

  • 虚拟机中的软件

  • win主机和虚拟机互传文件,及文件保存位置


待完成的
  • 安装hadoop(可克隆)

  • 安装zookeeper


各虚拟机IP分配
  • 集群的IP是静态的,其他的暂时是DHCP的,并且vm网路都选VM8模式,此网段可以和win桥接

  • spark集群(CentOS6):192.168.2.130始-133

  • docker集群(CentOS7):192.168.2.150始-152

  • 其他是DHCP的:


配置Hadoop集群
  • hadoop要解压到集群内的所有机器

  • 通常,一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker,这些机器是masters,余下的机器作为DataNode,也作为TaskTracker,是slavers

  • 集群内所有机器的HADOOP_HOME路径是相同的


配置安装hadoop
  • 环境变量

  • hadoop-env.sh


    • 找到# The java implementation to use.将其下面的一行改为:export JAVA_HOME=/opt/jdk1.8.0_45(不能用变量${})


  • core-site.xml中添加

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:///opt/hadoop-2.7.5(手动创建的目录)</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.44.128:8888(计算机名和端口)</value>
        </property>
        spark集群也要配置此项
    </configuration>
  • hdfs-site.xml中添加


    • <configuration>

      <property>
          <name>dfs.replication</name>
          <value>1</value>
      </property>

      <property>  
        <name>dfs.namenode.secondary.http-address</name>  
        <value>master:9001(master主机名端口)</value>  
      </property>

      <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:///opt/hadoop-2.7.5/tmp/dfs/name</value>
      </property>
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///opt/hadoop-2.7.5/tmp/dfs/data</value>
      </property>
      </configuration>

  • 复制mapred-site.xml.template并重命名为mapred-site.xml

    <configuration>
    <property>  
       <name>mapreduce.framework.name</name>  
       <value>yarn</value>  
    </property>  
    <property>  
      <name>mapreduce.jobhistory.address</name>  
      <value>master:10020</value>  
    </property>  
    <property>  
      <name>mapreduce.jobhistory.webapp.address</name>  
      <value>master:19888</value>  
    </property>  
    </configuration>
  • Hadoop的启动与停止(在hadoop的安装目录)


    • 启动 - ./sbin/start-dfs.sh

    • 停止 - ./sbin/stop-dfs/sh

    • 查看 - 192.168.2.150:50090







关键词:Hadoop Had Replication persistent Implementa

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2021-1-21 05:52