①Spark入门-环境搭建

Spark集群环境搭建(最少3台)

1、Linux虚拟机网络配置

  1. ifconfig eth0 192.168.0.100
  2. 在/etc/hosts文件中配置本地ip(192.168.0.100)到host(spark1)
  3. 配置静态ip:
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    
    DEVICE=eth0
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1
    DNS1=192.168.0.1
  4. 重启网卡:service network restart
  5. 关闭防火墙:
    service iptables stop
    chkconfig iptables off
    vi /etc/selinux/config
    SELINUX=disabled

    自己在win7的控制面板中,关闭windows的防火墙!

2、yum配置

  1. 修改repo
    cd /etc/yum.repos.d/
    rm -rf *
    mv 自己的repo文件移动到/etc/yum.repos.d/目录中:cp /usr/local/CentOS6-Base-163.repo .
    修改repo文件,把所有gpgcheck属性修改为0
  2. 配置yum
    yum clean all
    yum makecache
    yum install telnet

3、JDK1.7安装

  1. 安装JDK:rpm -ivh jdk-7u65-linux-i586.rpm
  2. 配置jdk相关的环境变量
    cd 
    vi .bashrc
    export JAVA_HOME=/usr/java/latest
    export PATH=$PATH:$JAVA_HOME/bin
    source .bashrc
  3. 测试jdk安装是否成功:java-version
  4. rm-f /etc/udev/rules.d/70-persistent-net.rules
  5. 同理安装第二台和第三台

4、配置集群ssh免密码登录

  1. 首先在三台机器上配置对本机的ssh免密码登录生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下:

    ssh-keygen -t rsa

  2. 将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了

    cd /root/.ssh
    cp id_rsa.pub authorized_keys

  3. 接着配置三台机器互相之间的ssh免密码登录

    使用ssh-copy-id -i spark?命令将本机的公钥拷贝到指定机器的authorized_keys文件中(方便好用)

5、Hadoop2.4.1集群搭建

  1. 将hadoop-2.4.1.tar.gz上传到CentOS的/usr/local目录下
  2. 将hadoop包进行解压缩:tar -zxvf hadoop-2.4.1.tar.gz
  3. 对hadoop目录进行重命名:mv hadoop-2.4.1 hadoop
  4. 配置hadoop相关环境变量

    cd
    vi .bashrc
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    source .bashrc
  5. 创建data文件夹,后面配置中配置了
    cd /usr/local
    mkdir data
  6. 修改hadoop配置
    1>修改core-site.xml
      <property>
        <name>fs.default.name</name>
        <value>hdfs://spark1:9000</value>
      </property>
    2>修改hdfs-site.xml
      <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/data/namenode</value>
      </property>
      <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/data/datanode</value>
      </property>
      <property>
        <name>dfs.tmp.dir</name>
        <value>/usr/local/data/tmp</value>
      </property>
      <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
    3>修改mapred-site.xml
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    4>修改yarn-site.xml
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>spark1</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    5>修改slaves文件
      spark1
      spark2
      spark3
  7. 使用如上配置在另外两台机器上搭建hadoop,可以使用scp命令将spark1上面的hadoop安装包和.bashrc配置文件都拷贝过去。

    cd /usr/local
    scp -r hadoop root@spark2:/usr/local
    scp -r hadoop root@spark3:/usr/local
  8. .bashrc文件同样拷贝过去,要记得对.bashrc文件进行source,以让它生效
  9. 记得在spark2和spark3的/usr/local目录下创建data目录
  10. 启动hdfs集群
    1、格式化namenode:在spark1上执行以下命令,hdfs namenode -format
    2、启动hdfs集群:start-dfs.sh3、验证启动是否成功:jps、50070端口
    spark1:namenode、datanode、secondarynamenode
    spark2:datanode
    spark3:datanode
  11. 启动yarn集群
    1、启动yarn集群:start-yarn.sh
    2、验证启动是否成功:jps、8088端口
    spark1:resourcemanager、nodemanager
    spark2:nodemanager
    spark3:nodemanager

6、Hive 0.13搭建

  1. 将apache-hive-0.13.1-bin.tar.gz上传到spark1的/usr/local目录下
  2. 解压缩hive安装包:tar -zxvf apache-hive-0.13.1-bin.tar.gz
  3. 重命名hive目录:mv apache-hive-0.13.1-bin hive
  4. 配置hive相关的环境变量
    vi ~/.bashrc
    export HIVE_HOME=/usr/local/hive
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
    source ~/.bashrc

7、安装mysql

  1. 在spark1上安装mysql
  2. 使用yum安装mysqlserver
    yum install -y mysql-server
    service mysqld start
    chkconfig mysqld on
  3. 使用yum安装mysqlconnector
    yum install -y mysql-connector-java
  4. 将mysql connector拷贝到hive的lib包中

    cp /usr/share/java/mysql-connector-java-5.1.17.jar /usr/local/hive/lib
  5. mysql上创建hive元数据库,并对hive进行授权
    create database if not exists hive_metadata;
    grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
    grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
    grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';
    flush privileges;
    use hive_metadata;
  6. 配置hive-site.xml
    mv hive-default.xml.template hive-site.xml
    vi hive-site.xml
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://spark1:3306/hive_metadata?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>hive</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>hive</value>
    </property>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
    </property> 
    
  7. 配置hive-env.sh和hive-config.sh
    mv hive-env.sh.template hive-env.sh
    
    vi /usr/local/hive/bin/hive-config.sh
    export JAVA_HOME=/usr/java/latest
    export HIVE_HOME=/usr/local/hive
    export HADOOP_HOME=/usr/local/hadoop
  8. 验证hive是否安装成功
    直接输入hive命令,可以进入hive命令行

8、ZooKeeper3.4.5集群搭建

  1. 将zookeeper-3.4.5.tar.gz拷贝到spark1的/usr/local目录下。
  2. 对zookeeper-3.4.5.tar.gz进行解压缩
    tar -zxvf zookeeper-3.4.5.tar.gz
  3. 对zookeeper目录进行重命名
    mv zookeeper-3.4.5 zk
  4. 配置zookeeper相关的环境变量
    vi ~/.bashrc
    export ZOOKEEPER_HOME=/usr/local/zk
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin
    source ~/.bashrc
  5. 配置zoo.cfg
    cd zk/conf
    mv zoo_sample.cfg zoo.cfg
    
    vi zoo.cfg
    修改:dataDir=/usr/local/zk/data
    新增:
    server.0=spark1:2888:3888	
    server.1=spark2:2888:3888
    server.2=spark3:2888:3888
  6. 设置zk节点标识
    cd zk
    mkdir data
    cd data
    
    vi myid
    0
  7. 在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可;唯一的区别是spark2和spark3的(myid文件中)标识号分别设置为1和2
  8. 启动ZooKeeper集群
    分别在三台机器上执行:zkServer.sh start
    检查ZooKeeper状态:zkServer.sh status

9、安装scala 2.11.4

  1. 将scala-2.11.4.tgz拷贝到spark1的/usr/local目录下
  2. 对scala-2.11.4.tgz进行解压缩
    tar -zxvf scala-2.11.4.tgz
  3. 对scala目录进行重命名
    mv scala-2.11.4 scala
  4. 配置scala相关的环境变量
    vi ~/.bashrc
    export SCALA_HOME=/usr/local/scala
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin
    source ~/.bashrc
  5. 查看scala是否安装成功
    scala -version
  6. 按照上述步骤在spark2和spark3机器上都安装好scala。使用scp将scala和.bashrc拷贝到spark2和spark3上即可

10、kafka_2.9.2-0.8.1集群搭建

  1.  将kafka_2.9.2-0.8.1.tgz拷贝到spark1的/usr/local目录下

  2. 对kafka_2.9.2-0.8.1.tgz进行解压缩
    tar -zxvf kafka_2.9.2-0.8.1.tgz
  3. 对kafka目录进行改名
    mv kafka_2.9.2-0.8.1 kafka
  4. 配置kafka
    vi /usr/local/kafka/config/server.properties
    broker.id:依次增长的整数,0、1、2、3、4,集群中Broker的唯一id
    zookeeper.connect=192.168.0.100:2181,192.168.0.101:2181,192.168.0.102:2181
  5. 扫描二维码关注公众号,回复: 1648975 查看本文章

    将slf4j-1.7.6.zip上传到/usr/local目录下

    yum install unzip
    unzip slf4j-1.7.6.zip
    把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
    mv slf4j-1.7.6/slf4j-nop-1.7.6.jar kafka/libs
     
     

     
     

  6.  搭建kafka集群

    按照上述步骤在spark2和spark3分别安装kafka。用scp把kafka拷贝到spark2和spark3行即可。
    唯一区别的,就是server.properties中的broker.id,要设置为1和2

  7.  启动kafka集群

    1、在三台机器上分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties &
    2、解决kafka Unrecognized VM option 'UseCompressedOops'问题
    vi bin/kafka-run-class.sh 
    if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
      KAFKA_JVM_PERFORMANCE_OPTS="-server  -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
    fi
    去掉-XX:+UseCompressedOops即可
    3、使用jps检查启动是否成功

  8.  测试kafka集群

    使用基本命令检查kafka是否搭建成功
    
    窗口A
    bin/kafka-topics.sh --zookeeper 192.168.0.100:2181,192.168.0.101:2181,192.168.0.102:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
    
    bin/kafka-console-producer.sh --broker-list 192.168.0.100:9092,192.168.0.101:9092,192.168.0.102:9092 --topic TestTopic
    
    新克隆一个窗口B
    bin/kafka-console-consumer.sh --zookeeper 192.168.0.100:2181,192.168.0.101:2181,192.168.0.102:2181 --topic TestTopic --from-beginning
    
    在A窗口输入消息回车,看B窗口是否有信息

11、Spark1.3.0集群搭建

  1. 将spark-1.3.0-bin-hadoop2.4.tgz上传到/usr/local目录下
  2. 解压缩spark包
    tar zxvf spark-1.3.0-bin-hadoop2.4.tgz
  3. 更改spark目录名
    mv spark-1.3.0-bin-hadoop2.4 spark
  4. 设置spark环境变量
    vi ~/.bashrc
    export SPARK_HOME=/usr/local/spark
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    source ~/.bashrc
  5. 修改spark-env.sh文件
    cd /usr/local/spark/conf
    cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    export JAVA_HOME=/usr/java/latest
    export SCALA_HOME=/usr/local/scala
    export SPARK_MASTER_IP=192.168.0.100
    export SPARK_WORKER_MEMORY=1g
    export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
  6.  修改slaves文件

    mv slaves.template slaves
    vi slaves
    spark2
    spark3
     

     

  7.  安装spark集群

    在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到spark2和spark3即可

  8.  启动spark集群

    1、在spark目录下的sbin目录
    2、执行./start-all.sh
    3、使用jsp和8080端口可以检查集群是否启动成功
    4、进入spark-shell查看是否正常
    

12、至此,Spark集群搭建完成



注意:scp命令=> 

scp -r 要复制的文件夹 户名@IP:目标路径
如:
scp -r spark [email protected]:/usr/local
scp -r ~/.bashrc [email protected]:~/


猜你喜欢

转载自blog.csdn.net/hekaihaw/article/details/78896257
今日推荐