logo资料库

Hadoop与Spark安装配置手册.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
hadoop 与 spark 的安装与配置 说明:将以下面版本的软件进行安装示例 jdk-8u20-linux-i586 hadoop-2.4.1 scala-2.10.4 spark-1.1.0-bin-hadoop2.4 1 JDK 的安装与配置 1.1 JDK 的安装 观察 jdk-8u20-linux-i586.tar.gz,实际上它是个解压即可的免安装型文件,我们打 算把它安装在目录(/usr/lib/jvm/)下,即解压到这个目录下即可。初次安装 unbutu,则,目录/usr/lib 是在 Computer 文件系统里的目录,而目录 jvm(也可以用其 它名字)是不存在的,需要自己建立。 #新建 jvm 文件(#符号表示对下面命令的解释) $ sudo mkdir /usr/lib/jvm #进入到放置 jdk 安装包的目录将 jdk-8u20-linux-i586.tar.gz 解压 到/usr/lib/jvm $ sudo tar -zxvf jdk-8u20-linux-i586.tar.gz -C /usr/lib/jvm 到此 jdk 的安装结束,此时在目录/usr/lib/jvm/下可以看到新生成了文件 jdk1.8.0_20 1.2 JDK 环境变量的配置 环境变量设置基本都是在/etc/profile 文件中进行 #打开/etc/profile $ sudo gedit /etc/profile 在刚打开的/etc/profile 的末尾添加下面内容: export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_20 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 关闭 profile 文件,运行下面命令使刚才的添加的配置生效 $ sudo source /etc/profile
1.3 配置默认 JDK 版本 $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_20/bin/java 300 $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_20/bin/javac 300 $ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_20/bin/jar 300 $ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.8.0_20/bin/javah 300 $ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.8.0_20/bin/javap 300 $ sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.8.0_20/bin/jps 300 1.4 测试是否安装配置好了 jdk $ java -version 如果终端显示如下内容,则说明 jdk 配置完毕 java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) Server VM (build 25.20-b23, mixed mode) 2 新建一个名叫 hadoop 的用户 $ adduser hadoop $ sudo gedit /etc/sudoers 在打开的 sudoers 文件的 # User privilege specification root ALL=(ALL:ALL) ALL $ su hadoop 3 设置 ssh 无密码登入 下面添加 hadoop ALL=(ALL:ALL) ALL 保存并关闭 sudoers 文件 #切换到 hadoop 用户,下面的所有设置都是在 hadoop 用户下操作 为了免去每次登入 hadoop 时都要输入密码,所以设置无密码形式。 3.1 安装 ssh
$ sudo apt-get install ssh #启动 ssh $ sudo /etc/init.d/ssh start #检测是否安装并启动了 ssh $ ps -e|grep ssh 如果出现下面内容则说明启动成功 944 ? 00:00:00 sshd 更详细的 ssh 安装内容请参见 http://blog.sina.com.cn/s/blog_7c2374190100tyc9.html 3.2 通过下面命令创建一对 openSSL 密钥对: $ ssh-keygen 在终端等待输入的时候按 Enter 键表示无密码 当终端出现 your identification has been saved in /home/hadoop/.ssh/id_rsa. your public key has been saved in /home/hadoop/.ssh/id_rsa.pub. 表示无密码密钥对设置成功 3.3 使用下面命令将生成的公钥复制至已授权秘钥列表 $ cp .ssh/id_rsa.pub .ssh/authorized_keys 3.4 连接本地主机 $ ssh localhost 终端出现类似于下面的内容则表示连接成功 Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-39-generic i686) * Documentation: https://help.ubuntu.com/ 18 packages can be updated. 7 updates are security updates. Last login: Mon Nov 24 21:50:25 2014 from localhost 3.5 ssh 配置的底层原理 这部分以后会详细编辑,现阶段参见 http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html 4 更改 hosts 文件 #打开 hosts 文件 $ sudo gedit /etc/hosts 在打开的 hosts 文件末尾添加下面内容 192.168.1.182 master (注意上面的内容 ip 是自己电脑的 ip) 5 hadoop 的安装与配置 5.1 hadoop 安装 和 jdk 一样是解压即安装的软件包,终端进入软件包 hadoop-2.4.1.tar.gz 的目录下运 行下面命令进行解压安装到/usr/local/ $ sudo tar -zxvf hadoop-2.4.1.tar.gz -C /usr/local/ 5.2 配置文件/etc/profile $ sudo gedit /etc/profile 在打开的 profile 文件的末尾添加下面内容来配置 hadoop 的环境变量 #hadoop export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin 在终端输入
$ source /etc/profile 使得刚刚的配置生效 #查看是否成功安装 hadoop $ hadoop version 如果终端出现 hadoop 版本号如: Hadoop 2.4.1 则表示刚刚的配置成功,hadoop 的安装成功 5.3 配置 hadoop-env.sh 文件 #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 hadoop-env.sh $ sudo gedit hadoop-env.sh 在打开的 hadoop-env.sh 文件中修改默认的 JAVA_HOME 的值,修改为已经安装配置 好的 JDK 的 JAVA_HOME 的值: export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_20 5.4 配置文件 slaves (这个文件里面保存所有 slave 节点) #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 slaves 文件 $ sudo gedit slaves 在打开的 slaves 文件中把 slaves 的唯一内容 localhost 改成 master 5.5 配置文件 core-site.xml hadoop.tmp.dir /usr/local/hadoop/tmp A base for other temporary directories. #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 core-site.xml 文件 $ sudo gedit core-site.xml 在打开的 core-site.xml 文件末尾添加下面内容: fs.defaultFS hdfs://master:9000 5.6 配置文件 hdfs-site.xml #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 hdfs-site.xml 文件 $ sudo gedit hdfs-site.xml 在打开开的 hdfs-site.xml 文件末尾添加: dfs.namenode.name.dir /usr/local/hadoop/name
dfs.datanode.data.dir /usr/local/hadoop/data dfs.replication 1 5.7 配置文件 mapred-site.xml #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 mapred-site.xml 文件 $ sudo gedit mapred-site.xml 在打开的文件中添加: mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888 5.8 配置文件 yarn-site.xml #进入/usr/local/hadoop/etc/hadoop $ cd $HADOOP_HOME/etc/hadoop #打开 yarn-site.xml 文件 $ sudo gedit yarn-site.xml 在打开的文件中添加: yarn.nodemanager.aux-services mapreduce_shuffle shuffle service that needs to be set for Map Reduce to run 5.9 hadoop 启动与验证 在第一次启动 hadoop 时先格式化一次 namenode,以后每次启动 hadoop 就不要格式 化了。原因是格式化的目的是格式 hdfs 文件系统的数据,如果以后每次启动 hadoop
都格式化 namenode 将导致 hdfs 的数据经常被格式化而丢失想要保存的数据。 #格式化 namenode 操作 $ hadoop namenode -format 启动过程: #进入 HADOOP_HOME 路径 $ cd $HADOOP_HOME 启动 hdfs: $ sbin/start-dfs.sh #用 java 的 jps 命令来检测当前 master 上的正在运行的 java 进程 $ jps 这时候会发现在 master 上正在运行的 java 进程有: 24946 DataNode 25239 Jps 24795 NameNode 25131 SecondaryNameNode 启动 yarn $ sbin/start-yarn.sh #再用 jps 检测进程 $ jps 这时会发现多出了 24946 DataNode 25734 Jps 24795 NameNode 25307 ResourceManager 25131 SecondaryNameNode 25437 NodeManager 到这里,hadoop 已经启动完毕。 5.10 在 web 上查看 详细内容参见 http://blog.csdn.net/u012480384/article/details/40514359 5.11 hadoop 配置文件,如此配置的原因,以后再编辑这部分内容 5.12 hadoop 启动时的问题 启动时遇到最多的问题是,hadoop 在启动时读写文件的权利不够,比如在 /usr/local/hadoop/目录下 logs 文件、data 文件、tmp 文件、name 文件(刚开始这些文 件可能不在/usr/local/hadoop/中,只要启动过 hadoop,则系统会生成这些文件的)都 需要足够的权限。 #在/usr/local/hadoop/目录下对这些文件进行访问权限修改。 $ sudo chmod 777 filename 其中的 filename 指的是上面所说要改权限的文件的文件名。命令 chmod 是修改 权限的命令,777 指的是文件可被读写对于所有人 当改完这些文件权限后,就可以重新启动 hadoop。 6 scala 的安装与配置 scala 的安装简单 在 hadoop 用户的某一个放有 scala-2.10.4.tgz 的目录下运行下面命令: #解压 scala-2.10.4.tgz $ tar -xvzf scala-2.10.4.tgz #把解压出来的名为 scala-2.10.4 的文件改名字,改成 scala $ mv scala-2.10.4 scala
#将 scala 移动到/usr/local/目录下 $ sudo mv scala /usr/local/ 添加环境变量: #打开/etc/profile 文件 $ sudo gedit /etc/profile 将如下内容添加到 profile 文件末尾 #scala export SCALA_HOME=/usr/local/scala export PATH=$SCALA_HOME/bin:$PATH 保存/etc/profile: #重启 profile 文件 $ source /etc/profile #测试 scala 是否安装成功: $ scala -version 终端会出现 Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL 7 spark 的安装与配置 下面这些命令与 scala 安装一样,不作多解释 $ tar -zxvf spark-1.1.0-bin-hadoop2.4.tgz $ mv spark-1.1.0-bin-hadoop2.4 spark $ sudo mv spark /usr/local/ 在/etc/profile 文件的末尾添加环境变量: #spark export SPARK_HOME=/usr/local/spark export PATH=$SPARK_HOME/bin:$PATH 保存并更新/etc/profile: $ source /etc/profile 进入/usr/local/spark/conf 目录下找到 spark-env.sh 文件,如果没有该文件,则,复制 spark-env.sh.template 文件,把复制品改名为 spark-env.sh #打开 spark-env.sh 文件 $ sudo gedit spark-env.sh 在打开的 spark-env.sh 文件在文件末尾添加环境变量 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_HOME=/usr/local/spark export SPARK_JAR=/usr/local/spark/lib/spark-assembly-1.1.0-hadoop2.4.0.jar export PATH=$SPARK_HOME/bin:$PATH 注: HADOOP_CONF_DIR YARN_CONF_DIR 这 2 个变量任选其一 SPARK_JAR 必须指定。 spark 和 scala 安装参考
http://blog.csdn.net/u012480384/article/details/40988181 本文对其进行了一点修正 由于本文介绍的 spark 是安装在 hadoop yarn 基础上的,所以启动 spark 前需要启 动 Hadoop。 启动完 hadoop 后 启动 spark #进入 spark 目录/usr/local/spark/ $ cd /usr/local/spark # 运行启动命令 $ sbin/start-all.sh #用 jps 检测正在运行的 java 进程 $ jps 终端将显示如下内容: 28144 NodeManager 28017 ResourceManager 28530 Master 27655 DataNode 28697 Worker 27867 SecondaryNameNode 27531 NameNode 28799 Jps 可以在 web 上检测查看 spark http://master:8080 有颜色的表示在启动 hadoop 后启动 spark 新产生的进程
分享到:
收藏