行为分析系统-震惊!一小伙竟然在centos7上搭建hadoop集群

 

目录

准备工作

vmware安装centos并配置ip地址

centos7开放端口

其他准备

接下来要安装jdk

安装hadoop2真分布式

配置hadoop-env.sh

配置core-site.xml 

配置hdfs-site.xml

配置yarn-site.xml----集群资源管理系统参数

配置mapred-site.xml----包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等

复制Hadoop配置好的包到其他Linux主机

停止启动

查看hdfs的页面

查看 YARN Web页面

来一个mapReduce任务

玩转控制台


草...首先要有一个完全分布式的hadoop集群,所以此文跳到完全分布式hadoop集群的搭建,不过估计也就安装hadoop麻烦点吧,大概.....

准备工作

vmware安装centos并配置ip地址

首先准备3个虚拟机,centos7的,设置内存4G,磁盘20G,单文件存储,没有4G内存按喜好设,我也不知道会咋样

装好后网卡选择NAT模式,这样能公用主机网络,下载东西方便,然后查看你的虚拟网络编辑器下的nat模式,记下网关(实际就是入网路由器地址), 子网掩码,后续有用。

顺便说下,我网关用的本机ipconfig的网关,子网掩码也是本机的子网掩码。

因为不论在家还是在公司都是都是局域网,所以本机ip基本不变,所以把3台虚拟机的ip地址也固定,em...顶多家里一套ip公司一套ip,记下脚本

cd etc/sysconfig/network-scripts/
vi ifcfg-ens33

#增加并修改如下
bootProtocal=static 原来是dhcp动态主机配置协议,dhcp服务器会给启动的主机随机分配ip,我们指定ip,所以改为static

onboot=yes 重启生效?

IPADDR=你的ip,别跟网关相同,但是又要处于同一网段

NETMASK=刚刚记下的子网掩码

GATEWAY=刚刚记下的网关

然后

service network restart 重启网络

ip addr 看下新ip生效没

centos7开放端口

实在被vmware的窗口弄得受不了,决定用xshell去连接它,所以得先开下端口,没记错ssh用的是22,开

看一下现在打开的端口,发现全关着
firewall-cmd --zone=public --list-ports 

22号端口开
firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --reload   # 重启防火墙生效

firewall-cmd --zone=public --remove-port=5672/tcp --permanent  #顺便记录个关闭端口的命令

#最后嫌麻烦我选择全部关闭
启动:  systemctl start firewalld
查状态:systemctl status firewalld 
停止:  systemctl disable firewalld
禁用:  systemctl stop firewalld

xshell一连,美滋滋

其他准备

配置本虚拟机域名,不然老是一堆文件改ip地址,我给我的3台虚拟机命名menber3,menber2, menber1

vi /etc/hosts

配置ssh免密登陆,因为hadoop各节点间通信如果还得输入密码很麻烦

#在menber3上生成公钥
ssh-keygen -t rsa

#分发至
ssh-copy-id menber3
ssh-copy-id menber2
ssh-copy-id menber1

#在menber2,menber1上重复以上步骤,都生成公钥,然后都分发到3台机子

接下来要安装jdk

要不是云hbase太贵,serverless模式又不支持pheonix,我真的不想重复装这些

用yum先看下云库里有什么java包
yum -y list java  

#竟然发现虚拟机无法识别别人域名
vi /etc/resolv.conf
nameserver 114.114.114.114

#安装java1.8
yum install java-1.8.0-openjdk* -y

#默认jre jdk 安装路径是/usr/lib/jvm 下面,这特么是个隐藏目录 ls -a可以看到

#配置到环境变量
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin

#使配置生效
. /etc/profile

安装hadoop2真分布式

终于开始安装大数据组件了.......预计这样装,网上抄的图

    

配置hadoop-env.sh

该文件的主要是配置hadoop的环境变量。例如守护进程的JVM启动参数:java堆大小和垃圾回收策略等。在这个文件中还可以设置HBase配置文件的目录、日志目录、SSH选项、进程pid文件的目录等。

#发现wget用不了,就没法下载相关包,安装下
yum -y install wget

#选定一台作为主,在上面安装hadoop
wget  http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz

#压缩包出现了,把他解压到 /usr/local/hadoop-2.8.5目录下
mkdir /usr/local/hadoop-2.8.5
tar -zxvf hadoop-2.8.5.tar.gz -C /usr/local/hadoop-2.8.5

#跑到hadoop目录里去改配置
vi /usr/local/hadoop-2.8.5/hadoop-2.8.5/etc/hadoop/hadoop-env.sh 

export JAVA_HOME=/usr/lib/jvm/java
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_PID_DIR=/var/hadoopdata/pids
export HADOOP_LOG_DIR=/var/hadoopdata/logs

配置core-site.xml 

#先把这个目录创建出来用于存储hadoop的临时文件
mkdir /var/hadoopdata/tmp/

#添加配置,分别为nameNode接收Client连接的RPC端口,和临时目录
vi /usr/local/hadoop-2.8.5/hadoop-2.8.5/etc/hadoop/core-site.xml

<configuration>
 
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://menber3:8020</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoopdata/tmp</value>
</property>
 
</configuration>

配置hdfs-site.xml

#配置secondaryNameNode路径
#设置每个文件有两个副本
#dfs.namenode.name.dir是保存FsImage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata
#dfs.datanode.data.dir是存放HDFS文件系统数据文件的目录,作用是存放hadoop的数据节点datanode里的多个数据块
#dfs.namenode.http-address是nameNode的http访问网址
<configuration>
   <property>
             <name>dfs.namenode.secondary.http-address</name>
             <value>menber1:50090</value>
   </property>
   <property>
             <name>dfs.replication</name>
             <value>2</value>
   </property>
   <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/var/data/hadoop/hdfs/name</value>
   </property>
   <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/var/data/hadoop/hdfs/data</value>
   </property>
 
   <property>
      <name>dfs.namenode.http-address</name>
      <value>menber3:8084</value>
   </property>
 
</configuration>

配置yarn-site.xml----集群资源管理系统参数

<configuration>
    <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.localizer.address</name>
      <value>0.0.0.0:8140</value>
   </property>
   <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>menber3</value>
   </property>
   <property>
       <name>yarn.log-aggregation-enable</name>
       <value>true</value>
   </property>
   <property>
       <name>yarn.log-aggregation.retain-seconds</name>
       <value>604800</value>
   </property>
   <property>
       <name>yarn.log.server.url</name>
       <value>http://menber1:19888/jobhistory/logs</value>
   </property>
 
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>menber3:3206</value>
  </property>
 
</configuration>

配置mapred-site.xml----包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
 
   <property>
       <name>yarn.app.mapreduce.am.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
   </property>
   <property>
       <name>mapreduce.map.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
   </property>
   <property>
       <name>mapreduce.reduce.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
   </property>
 
   <property>
       <name>mapreduce.jobhistory.address</name>
       <value>menber1:10020</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>menber1:19888</value>
   </property>
</configuration>

复制Hadoop配置好的包到其他Linux主机

 scp -r ./hadoop-2.8.5 root@menber2:/usr/local/
 scp -r ./hadoop-2.8.5 root@menber1:/usr/local/

停止启动

#必须先在主节点初始化集群,不然你会发现你集群没按你指定的端口启动
./bin/hadoop namenode -format
./bin/hadoop datanode -format

start-all.sh
stop-all.sh

#如果运气不好有进程杀不死,只能ps查看一个个杀了

到menber1启动yarn日志系统,start-all.sh并不会帮你启动它,导致在yarn控制台无法看到任务日志

https://blog.csdn.net/qq_26950567/article/details/106453770

查看hdfs的页面

http://10.118.239.239:8084

查看 YARN Web页面

http://10.118.239.239:3206/cluster

 

玩转控制台

来一个mapReduce任务

#查看有哪些mapReduce案例

 hadoop jar  /usr/local/hadoop-2.5.8/hadoop-2.5.8/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.8.jar 

#在hdfs中准备好input目录:

hadoop dfs -mkdir /input

hadoop dfs -mkdir /output

#上传一个文件到hdfs, 假定文件名称为wordcount

hadoop dfs -put  wordcount   /input/wordcount

#执行
 hadoop jar hadoop-mapreduce-examples-2.8.5.jar wordcount /input/wordcount /output/wordcount-result

点击hdfs的web页面--utilities可以下载,如果下载不了,检查自己宿主机的hosts文件有没有配上menber1,menber2,menber3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值