Hadoop2.2 + spark1.0 在ubuntu 上搭建分布式集群
2014-06-16 22:18
411 查看
环境介绍:
两台服务器上的虚拟机,只能用命令行使用。虚拟机的系统环境完全一样ubuntu12.04.2 (GNU/Linux 3.2.0-57-generic x86_64) 以及需要用的 jdk1.7.0_09.
spark的集群可以在Amazon EC2, Apache mesos, Hadoop yarn以及spark自己的Standalone Mode。
由于我第一次接触集群,Hadoop算是比较老牌了,群众基础也比较大,所以先试着搭建hadoop 环境。
本来虚拟机上初始化有Hadoop的,但是spark的网站上提到MLlib时都是基于2版本以上的,以防万一,还是重新搭建新版本好了。
***********************************************************************************************************************************
首先从本机上ssh登陆到服务器上
ok登陆成功。
因为要经过一层服务器,所以不能使用ssh免密登陆,不知道有没有办法解决。
***********************************************************************************************************************************
此外,为了为以后的集群做准备,也修改一下hostname,并用ssh实现无密码登陆。
使用exit退出,重新连接就生效了。使用同样的方法修改slave的hostname为slave1...
修改了hostname后可能会在sudo时遇到异常提示,这是因为host解析错误。
**********************************************************************************************************************************
安装jdk,设置JAVA_HOME环境变量
***********************************************************************************************************************************
下面搭建hadoop2.2
官方文档的地址
首先是两台虚拟机中的master。
在目录/home/cloud内
ok
搭好hadoop之后,spark就简
4000
单了,release版本直接使用,配置好master,slave就可以,scala版本对应
两台服务器上的虚拟机,只能用命令行使用。虚拟机的系统环境完全一样ubuntu12.04.2 (GNU/Linux 3.2.0-57-generic x86_64) 以及需要用的 jdk1.7.0_09.
spark的集群可以在Amazon EC2, Apache mesos, Hadoop yarn以及spark自己的Standalone Mode。
由于我第一次接触集群,Hadoop算是比较老牌了,群众基础也比较大,所以先试着搭建hadoop 环境。
本来虚拟机上初始化有Hadoop的,但是spark的网站上提到MLlib时都是基于2版本以上的,以防万一,还是重新搭建新版本好了。
***********************************************************************************************************************************
首先从本机上ssh登陆到服务器上
$ ssh username@address //输入密码->password //输入虚拟机的IP //输入虚拟机登陆账户的密码
ok登陆成功。
因为要经过一层服务器,所以不能使用ssh免密登陆,不知道有没有办法解决。
***********************************************************************************************************************************
此外,为了为以后的集群做准备,也修改一下hostname,并用ssh实现无密码登陆。
$ sudo hostname master $ sudo vim /etc/hostname # 修改hostname为master
使用exit退出,重新连接就生效了。使用同样的方法修改slave的hostname为slave1...
修改了hostname后可能会在sudo时遇到异常提示,这是因为host解析错误。
$ vim /etc/hosts #第一行改为 127.0.0.1 localhost master #也可以把master的ip地址写入,之后搭建集群时还需要写入slave的ip下面实现无密码登陆,生成公钥私钥,并将公钥追加到认证里面。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
**********************************************************************************************************************************
安装jdk,设置JAVA_HOME环境变量
***********************************************************************************************************************************
下面搭建hadoop2.2
官方文档的地址
http://hadoop.apache.org/docs/r2.2.0/镜像地址
http://www.apache.org/dyn/closer.cgi/hadoop/common/
首先是两台虚拟机中的master。
在目录/home/cloud内
$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz[/code]
解压当前用户目录下,并改个简单的名字$ tar zxf hadoop-2.2.0.tar.gz -C ~/ $ mv hadoop-2.2.0 hadoop
**************************************************************************************************************************************
我直接下载了release版本,但后来配置好之后发现其中hadoop/lib里的库文件是32位的,不能使用。还需要下载源码重新编译,我觉得重新编译还是蛮麻烦的,我把自己编译好的库文件放在了github.com/DarryO/trans/lib内了,需要的话直接下载替换好了。
下面是编译的过程,不多说。
依赖文件$ sudo apt-get install g++ autoconf automake libtool make cmake zlib1g-dev pkg-config libssl-dev sudo maven在源码目录下编译,出现一些错误也没关系,我们要的是/lib的内容
还有protobuf,我安装时是被墙了...mvn package -Pdist,native -DskipTests -Dtar
****************************************************************************************************************************************
修改环境变量$ vim ~/.bashrc #我是根据网上的博客写的,看到了两个版本,是不同版本的hadoop用到的环境变量,都是可以的,以防万一,都写了。 #HADOOP VARIABLES START #JAVA_HOME也一定要先做好的 HADOOP_HOME export HADOOP_PREFIX=$HOME/hadoop export HADOOP_INSTALL=$HOME/hadoop export HADOOP_COMMON_HOME=$HADOOP_PREFIX export HADOOP_HDFS_HOME=$HADOOP_PREFIX export HADOOP_MAPRED_HOME=$HADOOP_PREFIX export HADOOP_YARN_HOME=$HADOOP_PREFIX export YARN_HOME=$HADOOP_INSTALL export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib" #HADOOP VARIABLES ENDsource ~/.bashrc
***********************************************************************************************************
修改配置文件
hadoop/etc/hadoop下的
1. hadoop-env.sh
添加export JAVA_HOME地址
2. core-site.xml
设置<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> <!-- 设置namenode的地址--> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/cloud/hadoop/local/hadoop/tmp/hadoop-${user.name}</value> <!--临时文件--> </property> </configuration>
3. hdsf-site.xml<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/cloud/hadoop/local/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/cloud/hadoop/local/hadoop/hdfs/datanode</value> </property> </configuration>
4. yarn-site.xml<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration>
5. mapred-site.xml<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobtracker.staging.root.dir</name> <value>/user</value> </property> </configuration>
*********************************************************************************************************************
ok接下来在hadoop/etc/hadoop下创建masters,slaves
在masters里写入master的hostname,在slaves内写入slave的hostname,此时应该在/etc/hosts里面已将把他们的hostname解析好了的。
把hadoop相关的文件传到slave上面,所有配置相同。
***********************************************************************************************************************hadoop namenode -format ./bin/start-all.sh
例子
$ cd $HADOOP_PREFIX
$ hdfs dfs -put ./etc/hadoop/ input
$ hadoop jar $HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount input output
$ hdfs dfs -lsr output
$ hdfs dfs -cat output/part-r-00000
ok
搭好hadoop之后,spark就简
4000
单了,release版本直接使用,配置好master,slave就可以,scala版本对应
相关文章推荐
- Hadoop2.6.0 + Spark1.4.0 在Ubuntu14.10环境下的伪分布式集群的搭建(实践可用)
- Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程
- Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--5
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
- spark2.0.2基于hadoop2.4搭建分布式集群
- Hadoop 2.2 YARN分布式集群搭建配置流程
- ubuntu上搭建eclipse下hadoop-2.7.1集群(全分布式)开发环境遇到的几个问题笔记
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--3
- Ubuntu下用hadoop2.4搭建集群(伪分布式)
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建
- ubuntu14-Hadoop2.7.2完全分布式集群搭建操作时遇到的错误
- Ubuntu 上搭建伪分布式模式Hadoop集群 步骤与分析
- spark2.1.0完全分布式集群搭建-hadoop2.7.3
- spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分布式集群
- Centos 7 搭建hadoop-2.6.0和spark1.6.0完全分布式集群教程 (最小化配置)
- Hadoop2.2.0 HA高可用分布式集群搭建(hbase,hive,sqoop,spark)
- 联想ThinkPad S3-S440虚拟机安装,ubuntu安装,Hadoop(2.7.1)详解及WordCount运行,spark集群搭建
- 搭建分布式Hadoop2.6.0和Spark1.6.0集群
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--2