zoukankan      html  css  js  c++  java
  • hadoop+spark集群搭建入门

    忽略元数据末尾
    回到原数据开始处

    Hadoop+spark集群搭建 

    说明:

    本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个作为Master节点,另一个作为Slave节点,由于spark依赖scala,所以需要安装scala

    搭建步骤:

    一:安装jdk
    二:安装hadoop集群(http://www.powerxing.com/install-hadoop-cluster/也可参考这个大家hadopp集群)
    1:选定一台机器作为 Master
    2:在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境(java环境安装参考一:安装jdk)
    3:在 Master 节点上安装 Hadoop,并完成配置
    4:在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境(java环境安装参考一:安装jdk)
    5:将 Master 节点上的 /usr/local/hadoop 目录复制到其他 Slave 节点上
    6:在 Master 节点上开启 Hadoop
    7:执行分布式实例
    三:安装Scala
    四:安装Spark

    一:安装jdk(每个节点都需要安装)

    Java 环境可选择 Oracle 的 JDK,或是 OpenJDK,现在一般 Linux 系统默认安装的基本是 OpenJDK,如centos6.4就默认安装了OpenJDK1.7.
    按 http://wiki.apache.org/hadoop/HadoopJavaVersions 中说的,Hadoop 在 OpenJDK 1.7 下运行是没问题的。需要注意的是,CentOS 6.4 中默认安装的只是 Java JRE,而不是 JDK,为了开发方便,我们还是需要通过 yum 进行安装 JDK,安装过程中会让输入 [y/N],输入 y 即可:
    sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
    通过上述命令安装 OpenJDK,默认安装位置为 /usr/lib/jvm/java-1.7.0-openjdk(该路径可以通过执行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac' 命令确定,执行后会输出一个路径,除去路径末尾的 "/bin/javac",剩下的就是正确的路径了)。OpenJDK 安装后就可以直接使用 java、javac 等命令了。
    接着需要配置一下 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置
    vim ~/.bashrc
    在文件最后面添加如下单独一行(指向 JDK 的安装位置),并保存:
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
    使环境变量生效
    source ~/.bashrc
    检验是否设置正确
    echo $JAVA_HOME # 检验变量值
    java -version
    $JAVA_HOME/bin/java -version # 与直接执行 java -version 一样
    如果设置正确的话,$JAVA_HOME/bin/java -version 会输出 java 的版本信息,且和 java -version 的输出结果一样,如下图所示:
      

    二:安装hadoop集群

    1:创建hadoop用户(每个节点都需要安装)

    useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash 作为shell
    passwd hadoop #修改hadoop密码
    按提示输入两次密码,可简单的设为 "123456"(密码随意指定,若提示"无效的密码,过于简单"则再次输入确认就行)
    可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题,执行:
    visudo 
    如下图,找到 root ALL=(ALL) ALL 这行(应该在第98行,可以先按一下键盘上的 ESC 键,然后输入 :98 (按一下冒号,接着输入98,再按回车键),可以直接跳到第98行 ),然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL (当中的间隔为tab),如下图所示:

    2:安装ssh、配置ssh无密码登陆(每个节点都需要安装)

    集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:

    返回结果若如上图,表示包含了SSH client 跟 SSH server,则不需要再安装。
    若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):

    1. sudo yum install openssh-clients
    2. sudo yum install openssh-server

    接着执行如下命令测试一下 SSH 是否可用:

    1. ssh localhost


    此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 123456,这样就登陆到本机了

    但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
    首先输入 exit 退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

    1. exit # 退出刚才的 ssh localhost
    2. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
    3. ssh-keygen -t rsa # 生成密钥对,会有提示,都按回车就可以
    4. cat id_rsa.pub >> authorized_keys # 加入授权
    5. chmod 600 ./authorized_keys # 修改文件权限

    http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);注:
    含义在 Linux 系统中, 代表的是用户的主文件夹,即 "/home/用户名" 这个目录,如你的用户名为 hadoop,则 ~ 就代表 "/home/hadoop/"。 此外,命令中的 # 后面的文字是注释。
    此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。

    3:安装java环境(参考一:安装jdk,每个节点都需要安装)


    4:安装hadoop2(Master节点安装)

    Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,本教程选择的是 2.7.2 版本,下载时请下载 hadoop-2.x.y.tar.gz这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。
    下载时强烈建议也下载 hadoop-2.x.y.tar.gz.mds 这个文件,该文件包含了检验值可用于检查 hadoop-2.x.y.tar.gz 的完整性,否则若文件发生了损坏或下载不完整,Hadoop 将无法正常运行。
    进入opt目录执行下面命令,下载hadoop2
    wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
    wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz.mds
    判断文件的完整性:

    1. Cat /opt/hadoop-2.7.2.tar.gz.mds # 列出md5检验值
    2. # head -n 6 ~/下载/hadoop-2.7.1.tar.gz.mds # centos2.7.1版本格式变了,可以用这种方式输出
    3. md5sum hadoop-2.7.2.tar.gz | tr "a-z" "A-Z" # 计算md5值,并转化为大写,方便比较

    若文件不完整则这两个值一般差别很大,可以简单对比下前几个字符跟后几个字符是否相等即可,如下图所示,如果两个值不一样,请务必重新下载 


     
    我们选择将 Hadoop 安装至 /usr/local/ 中:

    1. sudo tar -zxf /opt/hadoop-2.7.2.tar.gz -C /usr/local # 解压到/usr/local中
    2. cd /usr/local/
    3. sudo mv ./hadoop-2.7.2/ ./hadoop # 将文件夹名改为hadoop
    4. sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限

    注:
    相对路径与绝对路径的区别
    请务必注意命令中的相对路径与绝对路径,本文后续出现的 ./bin/...,./etc/... 等包含 ./ 的路径,均为相对路径,以 /usr/local/hadoop 为当前目录。例如在 /usr/local/hadoop 目录中执行 ./bin/hadoop version 等同于执行 /usr/local/hadoop/bin/hadoop version。可以将相对路径改成绝对路径来执行,但如果你是在主文件夹 ~ 中执行./bin/hadoop version,执行的会是/home/hadoop/bin/hadoop version,就不是我们所想要的了。
    到此单机式hadoop就配置完了,可以执行以下例子来感受一下hadoop的运行,Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。
    在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

    1. cd /usr/local/hadoop
    2. mkdir ./input
    3. cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
    4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
    5. cat ./output/* # 查看运行结果


    若运行出错,如出现如下图提示:
     运行Hadoop实例时可能会报错
    若出现提示 "WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable",该 WARN 提示可以忽略,不会影响 Hadoop 正常运行(可通过编译 Hadoop 源码解决,解决方法请自行搜索)。
    若出现提示 "INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException",这需要执行如下命令修改 hosts 文件,为你的主机名增加IP映射:

    1. sudo vim /etc/hosts

    主机名在终端窗口标题里可以看到,或执行命令 hostname 查看,如下图所示,在最后面增加一行 "127.0.0.1 dblab":
     设置主机名的IP映射
    保存文件后,重新运行 hadoop 实例,若执行成功的话会输出很多作业的相关信息,最后的输出信息如下图所示。作业的结果会输出在指定的 output 文件夹中,通过命令 cat ./output/* 查看结果,符合正则的单词 dfsadmin 出现了1次:

    注意,Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。

    1. rm -r ./output







    到此单机的hadoop已经配置完成,接下来配置集群

    5:集群配置

    Master 节点上完成准备工作后,关闭 Hadoop (/usr/local/hadoop/sbin/stop-dfs.sh),进行后续集群配置。

    (1)修改各节点主机名

    为了便于区分,可以修改各个节点的主机名(在终端标题、命令行中可以看到主机名,以便区分)。在 Ubuntu/CentOS 7 中,我们在 Master 节点上执行如下命令修改主机名(即改为 Master,注意是区分大小写的):

    1. sudo vim /etc/hostname

    或者用下面的命令修改主机名

    如果是用 CentOS 6.x 系统,则是修改 /etc/sysconfig/network 文件
    然后执行如下命令修改自己所用节点的IP映射:

    1. sudo vim /etc/hostshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

    例如本教程使用两个节点的名称与对应的 IP 关系如下:
    192.168.1.121 Master
    192.168.1.122 Slave1
    我们在 /etc/hosts 中将该映射关系填写上去即可,如下图所示(一般该文件中只有一个 127.0.0.1,其对应名为 localhost,如果有多余的应删除,特别是不能有 "127.0.0.1 Master" 这样的记录):
     Hadoop中的hosts设置
    CentOS 中的 /etc/hosts 配置则如下图所示:

    修改完成后需要重启一下,重启后在终端中才会看到机器名的变化。接下来的教程中请注意区分 Master 节点与 Slave 节点的操作。 
    注:
    需要在所有节点上完成网络配置
    如上面讲的是 Master 节点的配置,而在其他的 Slave 节点上,也要对 /etc/hostname(修改为 Slave1、Slave2 等) 和 /etc/hosts(跟 Master 的配置一样)这两个文件进行修改!
    配置好后需要在各个节点上执行如下命令,测试是否相互 ping 得通,如果 ping 不通,后面就无法顺利配置成功:

    1. ping Master -c 3 # 只ping 3次,否则要按 Ctrl+c 中断
    2. ping Slave1 -c 3http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

    例如我在 Master 节点上 ping Slave1,ping 通的话会显示 time,显示的结果如下图所示:

    继续下一步配置前,请先完成所有节点的网络配置,修改过主机名的话需重启才能生效。

    (2)ssh无密码登陆节点

    这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。
    首先实现各个slave节点自己的ssh无密码登陆
    然后生成 Master 节点的公匙,在 Master 节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次):

    1. cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
    2. rm ./id_rsa* # 删除之前生成的公匙(如果有)
    3. ssh-keygen -t rsa # 一直按回车就可以http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

    让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

    1. cat ./id_rsa.pub >> ./authorized_keyshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

    完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

    1. scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

    scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:
     通过scp向远程主机拷贝文件
    接着在 Slave1 节点上,将 ssh 公匙加入授权:

    1. mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
    2. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    3. rm ~/id_rsa.pub # 用完就可以删掉了

    http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。
    这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:

    1. ssh Slave1

    http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

    注:
    如果在执行ssh无密码登陆时,出现设置完还需要输入密码,修改authorized_keys权限 chown 600

    (3)配置path环境

    Vim ~/.bashrc
    加入一行
    export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
    如下图所示:

    保存后执行 source ~/.bashrc 使配置生效。

    (4)配置集群/分布式环境

    集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 。
    1): 文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
    本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,只添加一行内容:Slave1。
    2):文件 core-site.xml 改为下面的配置:
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://Master:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>
    </configuration>

    1. :文件 hdfs-site.xml,dfs.replication 一般设为 3,但我们只有一个 Slave 节点,所以 dfs.replication 的值还是设为 1

    <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Master:50090</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
    <property>
    <name>dfs.permissions.enabled</name>
    <value>true</value>
    </property>
    <property>
    <name>dfs.namenode.acls.enabled</name>
    <value>true</value>
    </property>
    </configuration>

    1. :文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:

    <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>

    1. :文件yarn-site.xml 改为下面的配置:

    <configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>Master</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <!-- Site specific YARN configuration properties -->
    </configuration> 

    (5)将Master 上的 /usr/local/Hadoop 文件夹复制到各个节点上

    配置好后,将 Master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。(如果之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件)。在 Master 节点上执行:

    1. cd /usr/local
    2. sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
    3. sudo rm -r ./hadoop/logs/* # 删除日志文件
    4. tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先压缩再复制
    5. cd ~
    6. scp ./hadoop.master.tar.gz Slave1:/home/hadoop


    在 Slave1 节点上执行:

    1. sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在)
    2. sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
    3. sudo chown -R hadoop /usr/local/hadoop

    http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    同样,如果有其他 Slave 节点,也要执行将 hadoop.master.tar.gz 传输到 Slave 节点、在 Slave 节点解压文件的操作。

    (6)启动hadoop

    首次启动需要先在 Master 节点执行 NameNode 的格式化:

    1. hdfs namenode -format # 首次运行需要执行初始化,之后不需要


    CentOS系统需要关闭防火墙
    CentOS系统默认开启了防火墙,在开启 Hadoop 集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping 得通但 telnet 端口不通,从而导致 DataNode 启动了,但 Live datanodes 为 0 的情况。
    在 CentOS 6.x 中,可以通过如下命令关闭防火墙:

    1. sudo service iptables stop # 关闭防火墙服务
    2. sudo chkconfig iptables off # 禁止防火墙开机自启,就不用手动关闭了

    http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    若用是 CentOS 7,需通过如下命令关闭(防火墙服务改成了 firewall):

    1. systemctl stop firewalld.service # 关闭firewall
    2. systemctl disable firewalld.service # 禁止firew

    如下图,是在 CentOS 6.x 中关闭防火墙:
     CentOS6.x系统关闭防火墙
    接着可以启动 hadoop 了,启动需要在 Master 节点上进行:

    1. start-dfs.sh
    2. start-yarn.sh
    3. mr-jobhistory-daemon.sh start historyserver

    http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程,如下图所示:

    在 Slave 节点可以看到 DataNode 和 NodeManager 进程,如下图所示:

    缺少任一进程都表示出错。

    (7)执行分布式实例

    执行分布式实例过程与伪分布式模式一样,首先创建 HDFS 上的用户目录:

    1. hdfs dfs -mkdir -p /user/hadoop

    Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    将 /usr/local/hadoop/etc/hadoop 中的配置文件作为输入文件复制到分布式文件系统中:

    1. hdfs dfs -mkdir input
    2. hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input

    Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    通过查看 DataNode 的状态(占用大小有改变),输入文件确实复制到了 DataNode 中,如下图所示:

    接着就可以运行 MapReduce 作业了:

    1. hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

    Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    运行时的输出信息与伪分布式类似,会显示 Job 的进度。
    可能会有点慢,但如果迟迟没有进度,比如 5 分钟都没看到进度,那不妨重启 Hadoop 再试试。若重启还不行,则很有可能是内存不足引起,建议增大虚拟机的内存,或者通过更改 YARN 的内存配置解决。

    同样可以通过 Web 界面查看任务进度 http://master:8088/cluster,在 Web 界面点击 "Tracking UI" 这一列的 History 连接,可以看到任务的运行信息,如下图所示:

    执行完毕后的输出结果:
     MapReduce作业的输出结果
    关闭 Hadoop 集群也是在 Master 节点上执行的:

    1. stop-yarn.sh
    2. stop-dfs.sh
    3. mr-jobhistory-daemon.sh stop historyserver

    Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
    此外,同伪分布式一样,也可以不启动 YARN,但要记得改掉 mapred-site.xml 的文件名。 

    三:安装scala

    wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.248348352.61371242.1418807768 下载scala tar包到/opt目录下
    tar -zxf scala-2.11.4.tgz -C /usr/local/spark #解压到/usr/local/spark目录下
    配置环境变量:
    vim /etc/profile 在后面添加

    1. set scala environment
      export SCALA_HOME=/usr/local/spark/scala-2.11.4
      export PATH=$PATH:$SCALA_HOME/bin
      保存,然后执行source /etc/profile 使其立即生效
      scala -version #查看版本,验证是否安装成功
       

      四:安装spark

      1:下载spark,解压spark
      2:配置环境变量
      # set spark environment
      export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6
      export PATH=$PATH:$SPARK_HOME/bin
      export SPARK_EXAMPLES_JAR=$SPARK_HOME/examples/target/scala-2.11.4/spark-examples_2.11.4-1.6.0.jar 
      3:修改配置文件
      1):cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6
      2):mv spark-env.sh.template spark-env.sh
      3):vi spark-env.sh 
      export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64 
      export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6 
      export SPARK_WORKER_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/work 
      export SPARK_LOG_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/logs/
      export SPARK_MASTER_WEBUI_PORT=8070 
      export SPARK_WORKER_CORES=2
      export SPARK_WORKER_INSTANCES=2
      export SPARK_WORKER_MEMORY=4g

      4:修改slaves文件 
    2. mv slaves.template  slaves
    3. :vi slaves

    添加以下内容:
    Master
    Slave1
    5:启动spark
    cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6/sbin
    执行./start-all.sh命令
    对应的关闭spark也是在sbin目录下,执行
          ./stop-all.sh 即可 
    5:验证

    1. :在master节点上执行jps

    30859 jps
    30172 Master

    1. :在slave1节点上执行jps

    30302 worker
    30859 jps 

    2 people 赞了此内容.

    1 评论


    1. 使用HortonWorks 的打包版本HDP, 安装起来更方便. 

  • 相关阅读:
    函数的进阶
    几个基础 类型循环删除
    函数的初识
    python3的 基础
    python3 最基础
    demo
    [转] ajax方法
    <codis><jodis>
    <Redis Advance><Pipelining><Memory Optimization><Expire><Transactions>
    <HBase><Scan>
  • 原文地址:https://www.cnblogs.com/xmanblue/p/6802771.html
Copyright © 2011-2022 走看看