spark 安装
环境配置:
ubuntu14.04.4-server 64位
jdk1.7.0_79
hadoop-2.6.0
spark-1.4.1 built for hadoop-2.6.0
spark 的环境部署的主要步骤:
1,机器和网络配置,这里使用VM VirtualBox构建两台虚拟机。
2,安装 ssh server ,并配置免密码登入
3,安装 Jdk
4,安装 hadoop
5,安装 spark
步骤说明
1,机器和网络配置
构建两台虚拟机master 和 slave01 ,并创建一个专用的hadoop 用户 。
虚拟机需要启用两个网卡,先在VM VirtualBox如下配置
nat
host-only
接下来,根据下面的网段说明,为master ,slave01 分配固定Ip。
master:192.168.56.101
slave01:192.168.56.102
ifconfig -- 查看网络 sudo ifconfig eth1 up --开启eh1网卡
sudo vi /etc/network/interfaces -- 配置固定IP
重启机器后,ifconfig 查看固定ip是否生效
配置host
sudo vim /etc/hosts
分别在master 和slave01 互ping可通则Ok.
2,安装 ssh server
检查是否安装ssh server,如果没有安装会报错。
ssh localhost
安装命令
sudo apt-get update --更新一下软件列表 sudo apt-get install openssh-server --安装ssh-server
接下来生成生成密钥对,注意先用上面创建的hadoop用户登入
先在master 生成密钥对
cd ~ ssh-keygen -t rsa -P ''
此时~/.ssh 会有id_rsa,id_rsa.pub两个文件。然后把公钥拷到authorized_keys
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
然后在slave01 上也生成密钥对,然后把公钥拷贝到master
scp .ssh/id_rsa.pub rihai@192.168.56.101:~/slave01_rsa.pub
在master上,把slave 的公钥追加到authorized_keys。
cat slave01_rsa.pub >> .ssh/authorized_keys
把有两个公钥的authorized_keys把拷到slave01
scp .ssh/authorized_keys rihai@192.168.56.102:~/.ssh/authorized_keys
测试下ssh连接是否Ok
ssh slave01
3,安装 Jdk
下载地址:http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"
建jdk安装目录:/usr/lib/jdk
cd /usr/lib sudo mkdir jdk
解压
sudo tar zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jdk
配置javahome
sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_79 export JRE_HOME=/usr/lib/jdk/jdk1.7.0_79/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
配置生效
. /etc/profile
java -version 查看版本,安装成功
4,安装 hadoop
下载地址:
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
先在master解压安装
sudo tar xvzf hadoop-2.6.0.tar.gz -C /usr/local
usr/local/hadoop-2.6.0/ 用户组换成专门的hadoop用户
sudo chown -R rihai:rihai /usr/local/hadoop-2.6.0/
配置hadoop-env.sh
cd /usr/local/hadoop-2.6.0/ vim etc/hadoop/hadoop-env.sh
配置hadoophome
sudo vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.6.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
. /etc/profile 配置生效
hadoop version --查看版本信息
接下来是集群配置
先建三个目录
~/hadoop/tmp、~/hadoop/datanode、~/hadoop/namenode
进到 /usr/local/hadoop-2.6.0/etc/hadoop/目录
cd $HADOOP_HOME/etc/hadoop/
core-site.xml 配置
sudo vim core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/rihai/hadoop/tmp</value> </property> </configuration>
hdfs-site.xml 配置
sudo vim hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/rihai/hadoop/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/rihai/hadoop/datanode</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
mapred-site.xml 配置
sudo mv mapred-site.xml.template mapred-site.xml sudo vim mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml 配置
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> </configuration>
然后 把hadoop-2.6.0 整个目录拷贝到slave01。拷贝到/usr/local/ 可能会有权限的问题。
sudo scp -r hadoop-2.6.0 rihai@192.168.56.102:/usr/local/
slave01 还需要再做上面几个步骤(usr/local/hadoop-2.6.0/ 用户组,建三个目录,配置hadoophome)
回到master, 配置slaves hostname
sudo vim slaves
#add slaves
slave01
前面配置Ok了的话,在Master机器上进行hdfs格式化
hdfs namenode -format
启动dfs ,会启动以下进程
start-dfs.sh
启动yarn ,会启动以下进程
start-yarn.sh
如果和上面一样说明已经安装成功了,最后还需要创建一个用户hdfs目录
hdfs dfs -mkdir /user hdfs dfs -mkdir /user/<username> --username为你创建的Hadoop用户名
http://192.168.56.101:50070/ 查看集群情况
http://192.168.56.101:8088/ 查看job情况
可以测试一下官方自带的mapreduce例子
hdfs dfs -mkdir input hdfs dfs -put etc/hadoop/*.xml input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha1.jar grep input output 'dfs[a-z.]+'
hdfs dfs -cat output/* 查看结果
5,安装 spark
下载地址 http://spark.apache.org/downloads.html
先在master解压安装
sudo tar xvf spark-1.4.1-bin-hadoop2.6.tgz -C /usr/local
设置spark 目录用户组为之前创建的用户
sudo chown -R rihai:rihai /usr/local/spark-1.4.1-bin-hadoop2.6/
设置sparkhome
sudo vim /etc/profile
export SPARK_HOME=/usr/local/spark-1.4.1-bin-hadoop2.6 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
. /etc/profile 配置生效
接下来集群配置
先在hdfs上建一个日志目录: spark_tmp/spark-events
hdfs dfs -mkdir /user/rihai/spark_tmp hdfs dfs -mkdir /user/rihai/spark_tmp/spark-events
配置spark-env.sh
cd $SPARK_HOME/conf
cp -R spark-env.sh.template spark-env.sh sudo vim spark-env.sh
export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_79 export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://master:9000/user/rihai/spark_tmp/spark-events" export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop export SPARK_WORKER_MEMORY=300M export SPARK_MASTER_IP=192.168.56.101
SPARK_HISTORY_OPTS --SPARK_HISTORY server的配置,这样如果是提交到yarn 的任务,也可以通过页面查看运行情况
Dspark.history.fs.logDirectory 为上面创建的spark-events目录
HADOOP_CONF_DIR --指定Hadoop 的配置目录
SPARK_WORKER_MEMORY --我本机电脑设的比较小
SPARK_MASTER_IP --这个指定Master的ip 如果填的是master ,则提交任务的时候只能用spark://master:7077 .如果是和ZooKeeper 结合做HA,SPARK_MASTER_IP不要设置。
配置spark-defaults.conf
sudo vim spark-defaults.conf
#add log feature spark.eventLog.enabled true spark.eventLog.dir hdfs://master:9000/user/rihai/spark_tmp/spark-events spark.executor.memory 100m spark.driver.memory 100m
spark.eventLog.enabled --启用eventLog
spark.eventLog.dir --为上面创建的spark-events目录
配置slaves hostname
cp -R slaves.template slaves sudo vim slaves
#slave list
slave01
master 配置好了,拷贝spark到slave
sudo scp -r spark-1.4.1-bin-hadoop2.6 rihai@192.168.56.102:/usr/local/
同样的slave01 还需要再做上面几个步骤(设置spark 目录用户组,设置sparkhome)。
所以配置都 OK了,启动 spark
start-all.sh start-history-server.sh
可以进到管理页面,查看集群的情况。
http://192.168.56.101:8080/ --master管理页面
http://192.168.56.101:18080/ history server页面
安装完成!