大数据生态系统的环境搭建

4 篇文章 0 订阅
3 篇文章 0 订阅

大数据各种环境搭建

系统环境准备

配置网卡信息

  • 开启网卡
    • ifup eth0
  • 设置静态ip
    • 静态ip:192.168.xxx.xxx
    • 子网掩码:255.255.255.0
    • 默认网关ip:192.168.xxx.2
    • 主DNS服务器:114.114.114.114
    • 第二DNS服务器:8.8.8.8
  • 设置网卡开机自启
    • vim /etc/sysconfig/network-scripts/ifcfg-eth0
  • 重启网卡
    • service network restart

安装文件上传与下载的插件

  • yum install -y lrzsz

关闭防火墙(centos6)

  • 查看防火墙状态 service iptables status
  • 关闭防火墙 service iptables stop
  • 启动防火墙 service iptables start
  • 重启防火墙 service iptables restart
  • 永久关闭防火墙 chkconfig iptables off
  • 永久关闭后重启 chkconfig iptables on

修改主机名

  • hostname hadoop01 临时修改
  • vim /etc/sysconfig/network 永久修改
  • 修改/etc/hosts文件配置DNS解析

配置免密登录

  • 先生成密钥 ssh-keygen
  • 分别拷贝到要被登录的主机上ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop02

修改hosts文件

192.168.174.128 hadoop01
192.168.174.129 hadoop02
192.168.174.131 hadoop03

安装JDK

  • 解压
  • 配置环境变量
JAVA_HOME=/usr/local/java/jdk1.8.0_201
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

集群运行环境要求

  1. 关闭防火墙
  2. 配置ssh免密登录

大数据的各种框架的搭建

安装zookeeper

  1. 解压zookeeper-3.4.8.tar.gz
  2. 进入conf目录,复制zoo-sample.cfg为zoo.cfg,通过修改zoo.cfg
  3. 修改置dataDir,并在tmp下创建一个myid(每一个编号对应以下配置的编号)
    server.1=xxx.xxx.xxx.xxx:2888:3888
    server.2=xxx.xxx.xxx.xxx:2888:3888
    server.3=xxx.xxx.xxx.xxx:2888:3888
    

安装Hadoop(完全分布式)

  1. 解压
  2. 编辑 hadoop-env.sh,修改以下两项配置,并且重新生效
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop

  1. 修改core-site.xml,在标签中添加如下配置
    <!--指定hdfs的nameservice,为整个集群起一个别名-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns</value>
    </property>
    <!--指定Hadoop数据临时存放目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/software/hadoop-2.7.1/tmp</value>
    </property>
    <!--指定zookeeper的存放地址-->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
    </property>

  1. 修改hdfs-site.xml
    <!--执行hdfs的nameservice为ns,注意要和core-site.xml中的名称保持一致-->
    <property>
        <name>dfs.nameservices</name>
        <value>ns</value>
    </property>
    <!--ns集群下有两个namenode,分别为nn1, nn2-->
    <property>
        <name>dfs.ha.namenodes.ns</name>
        <value>nn1,nn2</value>
    </property>
    <!--nn1的RPC通信-->
    <property>
        <name>dfs.namenode.rpc-address.ns.nn1</name>
        <value>hadoop01:9000</value>
    </property>
    <!--nn1的http通信-->
    <property>
        <name>dfs.namenode.http-address.ns.nn1</name>
        <value>hadoop01:50070</value>
    </property>
    <!-- nn2的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns.nn2</name>
        <value>hadoop02:9000</value>
    </property>
    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns.nn2</name>
        <value>hadoop02:50070</value>
    </property>
    <!--指定namenode的元数据在JournalNode上存放的位置,这样,namenode2可以从journalnode集
    群里的指定位置上获取信息,达到热备效果-->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns</value>
    </property>
    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/software/hadoop-2.7.1/tmp/journal</value>
    </property>
    <!-- 开启NameNode故障时自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置失败自动切换实现方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.ns</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制 -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
    <!-- 使用隔离机制时需要ssh免登陆 -->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!--配置namenode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/name</value>
    </property>
    <!--配置datanode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/data</value>
    </property>
    <!--配置复本数量-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--设置用户的操作权限,false表示关闭权限验证,任何用户都可以操作-->
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

  1. 复制mapred-site.xml.template 为mapred-site.xml,并做如下配置
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
  1. 编辑yarn-site.xml
    <!--配置yarn的高可用-->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!--指定两个resourcemaneger的名称-->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <!--配置rm1的主机-->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop01</value>
    </property>
    <!--配置rm2的主机-->
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop03</value>
    </property>
    <!--开启yarn恢复机制-->
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
    <!--执行rm恢复机制实现类-->
    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</
    value>
    </property>
    <!--配置zookeeper的地址-->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
    </property>
    <!--执行yarn集群的别名-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>ns-yarn</value>
    </property>
    <!-- 指定nodemanager启动时加载server的方式为shuffle server -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定resourcemanager地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop03</value>
    </property>
  1. 修改slaves文件, 配置datanode的主机名
hadoop01
hadoop02
hadoop03
  1. 拷贝到hadoop02,hadoop03的主机上
  2. 启动zookeeper
  3. 格式化zookeeper(在两个名称节点上执行)
hdfs zkfc -formatZK
  1. 启动journalnode
hadoop-daemon.sh start journalnode
  1. 在第一台节点上格式化并启动namenode
hadoop namenode -format
hadoop-daemon.sh start namenode
  1. 在第二个节点上格式化并启动namenode
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode
  1. 三台节点分别启动datanode
hadoop-daemon.sh start datanode
  1. 在第一台节点和第二台节点上启动zkfc(Failover Controller)
hadoop-daemon.sh start zkfc
  1. 在第一个节点上启动yarn
start-yarn.sh
  1. 在第三个节点启动resourcemanager
yarn-daemon.sh start resourcemanager

hadoop伪分布式安装

  1. 编辑hadoop-env.sh,修改两个变量,与上面一样
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
  1. 修改core-site.xml
    <property>
        <!--指定HDFS的主节点-->
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>             
    </property>
    <property>
        <!--指定HDFS中的记录数据的目录,如果不配置,默认在/tmp-->
        <name>hadoop.tmp.dir</name>
        <value>/home/software/hadoop-2.7.1/tmp</value>
    </property>
  1. 修改hdfs-site.xml
    <property>
        <!--设置复本数量,默认为3,但是在伪分布式下,必须设置>为1-->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  1. cp mapred-site.xml.template mapred-site.xml, 并修改
	<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

  1. 编辑mapred-site.xml
	<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

  1. 编辑yarn-site.xml
	<!--指定yarn的主节点-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
  1. 编辑slaves
hadoop01
  1. 修改环境变量
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

  1. 重新生效
source /etc/profile
  1. 格式化数据目录:hadoop namenode -format
  2. 启动命令:start-all.sh
  • hdoop的一些默认端口介绍
Namenode:50070
Datanode:50075
SecondaryNamenode:50090
yarn:8088

Flume的各种配置

  • 下载并解压flume
  • 到flume解压目录下创建一个目录,例如,flumeconf(任意名字)
  • 再到flumeconf下创建一个文件,例如my.conf(名字任意)
  • 再新创建的文件中配置即可,配置实例如下
    a1.sources=r1
    a1.channels=c1
    a1.sinks=s1
    
    a1.sources.r1.type=spooldir
    a1.sources.r1.spoolDir=/home/zebra
    a1.sources.r1.interceptors=i1
    a1.sources.r1.interceptors.i1.type=timestamp
    
    
    a1.sinks.s1.type=hdfs
    a1.sinks.s1.hdfs.path=hdfs://192.168.150.137:9000/zebra/reportTime=%Y-%m-%d
    a1.sinks.s1.hdfs.fileType=DataStream
    a1.sinks.s1.hdfs.rollInterval=30
    a1.sinks.s1.hdfs.rollSize=0
    a1.sinks.s1.hdfs.rollCount=0
    
    a1.channels.c1.type=memory
    
    a1.sources.r1.channels=c1
    a1.sinks.s1.channel=c1
    
  • 启动flume(以下是在flume自定义配置文件中执行)
../bin/flume-ng agent -n a1 -c ./ -f ./my.conf -Dflume.root.logger=INFO,console

Hive的安装配置

  • 方式一: 以默认的方式存储元数据
    • 解压,到bin目录下运行sh hive即可
  • 方式二: 用mysql存储元数据
    1. 删除hdfs中的/user/hive
      执行:hadoop fs -rmr /user/hive
      2.将mysql驱动包上传到hive安装目录的lib目录下
      3.编辑新的配置文件,名字为:hive-site.xml
    
    <configuration>
    
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        </property>
    
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    
    
    • 安装mysql
    • hive要求存储元数据的字符集必须是iso8859-1,进入mysql, create database hive character set latin1;

Mysql的安装配置

  1. 下载mysql的安装包

    • MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
    • rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
  2. 确认当前虚拟机之前是否有安装过mysql

    • 查看:rpm -qa | grep mysql
  3. 删除mysql

    • rpm -ev --nodeps mysql-libs-5.1.71-1.el6.x86_64
  4. 新增mysql用户组,并创建mysql用户
    groupadd mysql
    useradd -r -g mysql mysql

  5. 安装mysql server rpm包和client包

    • rpm -ivh MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
    • rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
  6. 安装后,mysql文件所在的目录

    • Directory Contents of Directory
    • /usr/bin Client programs and scripts
    • /usr/sbin The mysqld server
    • /var/lib/mysql Log files, databases
    • /usr/share/info MySQL manual in Info format
    • /usr/share/man Unix manual pages
    • /usr/include/mysql Include (header) files
    • /usr/lib/mysql Libraries
    • /usr/share/mysql Miscellaneous support files, including error messages, - character set files, sample configuration files, SQL for database installation
    • /usr/share/sql-bench Benchmarks
  7. 修改my.cnf,默认在/usr/my.cnf

    • 执行:vim /usr/my.cnf
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    character_set_server=utf8
    
  8. 将mysqld加入系统服务,并随机启动

    • 执行:cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
  9. 启动mysqld

    • 执行:service mysqld start
  10. 查看初始生成的密码

    • 执行:vim /root/.mysql_secret 。这个密码随机生成的
  11. 修改初始密码

    • 第一次安装完mysql后,需要指定登录密码
    • 执行:mysqladmin -u root -p password root 此时,提示要输入初始生成的密码,拷贝过来即可
      12.进入mysql数据库
    • 执行:mysql -u root -p
    • 输入:root进入
    • 执行:\s ,查看mysql数据配置信息
  • 附加:
    • mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 以安全模式进入mysql
      mysql -u root
    • UPDATE user set password=password(‘root’) where user=‘root’; 设置密码
    • flush privileges; 刷新
    • Exit; 退出安全模式,重新进入mysql
    • create database hive character set latin1; 创建一个hive数据库并制定字符集为latin1,因为hive只支持latin1字符集

sqoop的安装配置

  1. 准备sqoop安装包,官网地址:http://sqoop.apache.org
  2. 配置jdk环境变量和Hadoop的环境变量。因为sqoop在使用是会去找环境变量对应的路径,从而完整工作。
  3. sqoop解压即可使用(前提是环境变量都配好了)
  4. 需要将要连接的数据库的驱动包加入sqoop的lib目录下(本例中用的是mysql数据库)

HBase的完全分布式安装配置

  1. 先准备好jdk和zk,hadoop
  2. 编辑conf/hbase-env.sh,修改以下两项配置
export JAVA_HOME=xxxx
export HBASE_MANAGES_ZK=false
  1. 修改hbase-site.xml,配置开启完全分布式模式
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop01:9000/hbase</value>
</property> 
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
#配置Zookeeper的连接地址与端口号
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>

  1. 修改conf/regionservers文件,配置region服务器,hbase启动或关闭会按一下配置顺序进行
hadoop01
hadoop02
hadoop03
  1. 将01节点配置好的hbase远程拷贝到02,03节点上
  2. 启动zk
  3. 启动01节点的Hbase,到bin目录执行 sh start-hbase.sh
  4. ./hbase shell 启动hbase控制台
  5. http://hadoop01:60010来访问web界面,通过web见面管理hbase
  6. 关闭

Kafka的安装配置

  1. 下载安装包
  2. 上传Linux并解压 tar -zxvf kafka_2.11-1.0.0.tgz
  3. 修改配置文件
# 修改配置
broker.id=0
log.dirs=/home/software/kafka/kafka-logs
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181

# 添加配置
delete.topic.enable=true
advertised.host.name=192.168.234.21
advertised.port=9092
  1. 在安装目录下创建kafka-logs目录
  2. 启动zookeeper集群
  3. 进入kafka的bin目录启动kafka
执行:sh kafka-server-start.sh ../config/server.properties

Storm的集群安装配置

  1. 安装配置JDK
  2. 安装配置ZK
  3. 上传解压storm
  4. 配置storm安装目录下的storm.yarm文件
# 注意配置项开头需要有空格,:后面需要跟空格,否则启动会报错
storm.zookeeper.servers: 
    - "hadoop01"
    - "hadoop02"
    - "hadoop03"
nimbus.host: "hadoop01"
storm.local.dir: "/home/software/apache-storm-0.9.3/tmp"
  1. 在storm安装目录下创建tmp目录
  2. 启动
    • 启动imubs后台进程: ./storm nimbus >/dev/null 2>&1 &
    • 启动supervisor后台进程 ./storm supervisor >/dev/null 2>&1 &
    • 启动ui后台进程 ./storm ui >/dev/null 2>&1 &
  3. jps查看进程是否启动成功
    • nimubs
    • supervisor
    • core
  4. 通过浏览器访问hadoop01节点:hadoop01:8080/index.html

Spark的安装配置

Spark的单机版安装
  1. 安装和配置好JDK
  2. 上传和解压Spark安装包
  3. 进入Spark安装目录下的conf目录
    复制spark-env.sh.template 文件为 spark-env.sh在其中修改,增加如下内容:
	# hadoop01代表当前主机名,也可用ip
	SPARK_LOCAL_IP=hadoop01
  1. Spark单机模式启动
    在bin目录下执行:sh spark-shell --master=local
  • 备注:
Spark集群环境搭建
  • 实现步骤:
    1. 上传解压spark安装包

    2. 进入spark安装目录的conf目录

    3. 配置spark-env.sh文件

      SPARK_LOCAL_IP=hadoop01
      #spark的shuffle中间过程会产生一些临时文件,此项指定的是其存放目录,不配置默认是在 /tmp目录下
      SPARK_LOCAL_DIRS=/home/software/spark/tmp
      export JAVA_HOME=/home/software/jdk1.8
      
      
    4. 在conf目录下,编辑slaves文件

      hadoop01
      hadoop02
      hadoop03
      
    5. 配置完后,将spark目录发送至其他节点, 并更改对应的SPARK_LOCAL_IP配置

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值