玩转spark起步第一篇安装与配置介绍

资源类型: 技术文章 语言类型: 编程与开发 发布时间: 2016-06-13 22:24:16

更新时间:2017-08-16 15:59:38 发布者:ykswz(ykswz) 380

说到spark,我相信大多数玩大数据的朋友们肯定知道,并且很多朋友们玩的很溜。这里我们也给大家对spark做一个简单的介绍吧。从哪来开始呢,自然从spark的安装与配置开始了哦。所以我们今天的这个标题,我可以说说标题党吗?哈哈,希望大家不要见怪哦。没有这么牛,不可能进行玩转的呢。当然,我们后续如果有时间,也会零零星星更新一些我自己工作中的一些经验和分享一些代码的哦。好了,不废话,我们进入玩转spark的第一篇吧。好好安装和配置我们的spark的环境吧。

开始我们的正题之前,请允许我再废话一句哦。不保证,使用此文档,可以完完整整构建一个完善的spark分布式系统平台。另外需要说明的是,spark只是用来替代map reduce的,所以在分布式的运用中hadoop的安装也是需要的哦。因为我们经常会把我们的数据存储在Hadoop的分布式系统上,也就是我们经常说到的HDFS系统了哦。就上这个分布式系统,它还是非常有用的呢。

安装环境,按照官网所述,window、Linux、mac都可以,这里为了方便选择Linux系统, 选择为:centos6.5 32位

测试环境,选择虚拟机模式,依照计划为3台虚拟服务器,一个namenode和两个datanode
为了方便,虚拟机的构建软件选择比较小型的virtualbox,当然也是因为是免费的

安装centos过程不再赘述,这里大致说一下虚拟机的配置,3台测试的虚拟服务器配置一致
系统:centos 6.5 32位
内存:1GB
硬盘:20GB

为了操作虚拟主机的方便,这里登录虚拟主机的用户名统一用root操作

为了操作方便,我们通过service iptables stop方式,关闭防火墙

说到这里,我需要另外说明一下,请大家不要吐槽我的机器配置差,因为是虚拟机,而且为了有效果,这里需要开启3个虚拟机,我的物理机器还是需要工作的呢,所以请允许我对虚拟机的配置差一点吧。

还有关于防火墙的问题,我这里也说明一下,我只是偷懒了一下下哦。大家最好还是弄好防火墙配置吧。当然如果是局域网里面使用,安全问题应该不是很大哦。所以我们就这么简简单单的关闭防火墙了哦,一下子,是不是感觉整个世界都清净了呢哈哈。

补充一个virtualbox的扩展包功能,支持主机和虚拟机之间的文件操作以及共享剪切板以及鼠标的移入、移出操作等

yum install -y gcc kernel kernel-devel
#重启一下虚拟机就可以了
reboot



说明一下,这里的一些公共操作,比如说上面提到的这个动作,你必须在分布式集群里面都操作一遍的。仅此说明一次,希望大家能过清楚明白。

查看Java的安装情况,默认情况下,安装好centos应该已经安装了Java的

[root@namenode 桌面]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-i386 u45-b15)
OpenJDK Client VM (build 24.45-b08, mixed mode, sharing)



默认情况下,Python也是安装好了的

[root@namenode 桌面]# python -V
Python 2.6.6



由于spark是用Scala写的,所以这里需要安装一下Scala编译器。
按照官方的说法,Spark 1.5.1 uses Scala 2.10 Java 7+, Python 2.6+ Hadoop2.6

安装Scala 2.10.4

cd /root
wget http://www.scala-lang.org/files/archive/scala-2.10.4.tgz
tar -xzvf scala-2.10.4.tgz
cd scala-2.10.4
mv /root/scala-2.10.4/ /usr/lib/



为什么要安装这个东西呢?似乎是为了编写spark方便吧。我们通常编写我们的Hadoop的map reduce的代码我们用java写的。但是我们写spark脚本,一般会用scala这个语言。当然这个不是必须的,其实sark可以用很多语言去,只能过说,用Scala会更加的见解吧。毕竟它的api用Scala去调用最方便了。

配置Scala任意目录可执行,类似window下的path路径
通过下面命令打开这个文件

vim /etc/profile
#在文件的底部,加上下面的内容
export SCALA_HOME=/usr/lib/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
 
#然后:wq保存退出,让立即生效
source /etc/profile
 
#然后进行测试一下效果
scala -version
 
#结果输出为
[root@namenode ~]# scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL


说明搞定了,按照预定的,下面需要去安装Hadoop2.6了
这里选择把Hadoop放在,/usr/local放在这个目录下面吧

cd /usr/local
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar -xzvf hadoop-2.6.0.tar.gz
cd hadoop-2.6.0
 
#接下来,来进行设置path,这里也同样是
vim /etc/profile
#然后对文件末尾增加下面的相关的信息,然后保存退出,然后记得source /etc/profile目的是为了让立即生效
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
 
#建立 hdfs 相关目录
groupadd hadoop
useradd hadoop -g hadoop
passwd hadoop   #建立Hadoop的密码,根据自己需要进行设定
mkdir -p /home/hadoop/hd_space/tmp
mkdir -p /home/hadoop/hd_space/hdfs/name
mkdir -p /home/hadoop/hd_space/hdfs/data
mkdir -p /home/hadoop/hd_space/mapred/local
mkdir -p /home/hadoop/hd_space/mapred/system
chown -R hadoop:hadoop /home/hadoop/hd_space/
chown -R hadoop:hadoop /usr/local/hadoop-2.6.0



一大堆的命令,是不是感觉看着晕了,其实也很简单。无非就是创建目录和设置一些环境变量。然后就是关闭系统,shutdown -h now 然后,通过virtualbox进行复制两个虚拟机出来,然后记得勾选重置网卡的mac

后面设定一下,三台虚拟机的主机名,修改/etc/sysconfig/network中的hostname的值
这里,我设定,主节点为namenode,另外两个分别是datanode1和datanode2

配置三个虚拟机的IP地址
namenode 设置为192.168.56.101
datanode1 设置为192.168.56.102
datanode2 设置为192.168.56.103

设置三个直接可以通过主机名访问

vi /etc/hosts
#添加下面的内容
192.168.56.101 namenode
192.168.56.102 datanode1
192.168.56.103 datanode2
#添加保存完成,退出后,就可以通过主机名进行访问了
 
#修改相应的hostname信息
vi /etc/hosts
#对应的namenode里面写namenode
#对应的datanode1里面写datanode1
#对应的datanode2里面写datanode2
#设置ssh登录不需要密码的方式
#分别在 namenode、datanode1、datanode2,使用 hadoop 用户登录
ssh-keygen -t rsa
#中途采用默认值(三次回车)
 
#将datanode1和datanode2的公开秘钥分别copy到namenode上,期间需要输入一下namenode的hadoop用户的密码
#在 datanode1 登录 hadoop 用户
scp /home/hadoop/.ssh/id_rsa.pub  hadoop@namenode:/home/hadoop/.ssh/id_rsa.pub.datanode1
#在 datanode2 登录 hadoop 用户
scp /home/hadoop/.ssh/id_rsa.pub  hadoop@namenode:/home/hadoop/.ssh/id_rsa.pub.datanode2
 
#在 namenode 登录 hadoop 用户
cd /home/hadoop/.ssh/
ll
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.datanode1 >> authorized_keys
cat id_rsa.pub.datanode2 >> authorized_keys
chmod 644 ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop@datanode1:/home/hadoop/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop@datanode2:/home/hadoop/.ssh/authorized_keys
 
#操作完成,就算这个ssh无密码登录成功了,下面只有分别测试一下,通过ssh命令测试一下,无密码登录是否可用
#namenode机器上
ssh datanode1
exit;
ssh datanode2
exit;
#datanode1机器上
ssh namenode
exit;
ssh datanode2
exit;
#datanode2机器上
ssh namenode
exit;
ssh datanode1
exit;



针对Hadoop进行相关的配置操作
使用hadoop账号登录到namenode

cd /usr/local/hadoop-2.6.0/etc/hadoop
vim hadoop-env.sh
#修改 JAVA_HOME 并保存
export JAVA_HOME=/usr/lib/jvm/java
 
#编辑 yarn-env.sh,修改 JAVA_HOME 并保存
export JAVA_HOME=/usr/lib/jvm/java


#编辑 core-site.xml,把内容改成下面的方式

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://namenode:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/hadoop/hd_space/tmp</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.proxyuser.aboutyun.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.aboutyun.groups</name>
                <value>*</value>
        </property>
</configuration>


#编辑 hdfs-site.xml,将内容修改为如下

<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/hd_space/hdfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/hadoop/hd_space/hdfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>datanode1:50090</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.https-address</name>
                <value>datanode1:50091</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
</configuration>


#编辑 mapred-site.xml,添加

<configuration>
        <property>
                <name>mapreduce.cluster.local.dir</name>
                <value>file:/home/hadoop/hd_space/mapred/local</value>
        </property>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>namenode:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>namenode:19888</value>
        </property>
</configuration>


#编辑 yarn-site.xml,修改为下面的内容

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>namenode:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>namenode:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>namenode:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>namenode:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>namenode:8088</value>
        </property>
</configuration>



#修改 slaves

datanode1
datanode2


这里,我们偷一个小懒,写一个shell脚本,把namenode的配置,同步到datanode1和datanode2中
sync_shell.sh里面的内容如下

for target in datanode1 datanode2
do
 scp -r /usr/local/hadoop-2.6.0/etc/hadoop $target:/usr/local/hadoop-2.6.0/etc
done
 
chmod +x sync_shell.sh
./sync_shell.sh



现在,我们的hadoop的配置已经完成了,下面可以启动hadoop了
使用 hadoop 用户登录 namenode
首次运行需要格式化 hdfs

hdfs namenode -format


发现一个警告信息
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
到对应的安装目录下看了一下
用file命令查看发现官方包里的libhadoop.so.1.0.0文件竟然是64位的。
那没有办法了,只有下载源码重新编译hadoop了

然后我们修改一下
/usr/local/hadoop-2.6.0/etc/hadoop/hadoop-env.sh文件里面的内容
具体修改的内容为

#export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
export HADOOP_OPTS="-Djava.library.path=/usr/local/hadoop-2.6.0/lib:/usr/local/hadoop-2.6.0/lib/native"


具体的路径,请根据自己的安装环境的位置进行设置

然后我们修改一下之前的那个文件的同步脚本
sync_shell.sh里面的内容如下

##############################################
for target in datanode1 datanode2
do
 scp -r /usr/local/hadoop-2.6.0/* $target:/usr/local/hadoop-2.6.0
done
##############################################


然后我们这边分别手动删除datanode1和datanode2的/usr/local/hadoop-2.6.0目录里面的文件及文件夹

cd /usr/local/hadoop-2.6.0
rm -rf *


通过上面的方式,分别在datanode1和datanode2中进行执行

然后回到namenode这个主机,然后通过登录hadoop这个账号,然后执行对应的/home/hadoop/sync_shell.sh
通过这样的方式,把刚刚namenode主机上的hadoop整个的修改同步到多个datanode中

然后我们再次进行format一下
格式化之前,我们需要重置一下namenode、datanode1和datanode2的目录结构环境
reset_hadoop_directory.sh 里面的内容如下,同步到namenode、datanode1、datanode2


#################################################################
rm -rf /home/hadoop/hd_space/
mkdir -p /home/hadoop/hd_space/tmp
mkdir -p /home/hadoop/hd_space/hdfs/name
mkdir -p /home/hadoop/hd_space/hdfs/data
mkdir -p /home/hadoop/hd_space/mapred/local
mkdir -p /home/hadoop/hd_space/mapred/system
#################################################################
#使用 hadoop 用户登录 namenode
#首次运行需要格式化 hdfs
hdfs namenode -format
 
#然后就可以启动所有的东西了,通过下面的方式
[hadoop@namenode ~]$ start-all.sh 
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [namenode]
namenode: starting namenode, logging to /usr/local/hadoop-2.6.0/logs/hadoop-hadoop-namenode-namenode.out
datanode2: starting datanode, logging to /usr/local/hadoop-2.6.0/logs/hadoop-hadoop-datanode-datanode2.out
datanode1: starting datanode, logging to /usr/local/hadoop-2.6.0/logs/hadoop-hadoop-datanode-datanode1.out
Starting secondary namenodes [datanode1]
datanode1: starting secondarynamenode, logging to /usr/local/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-datanode1.out
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop-2.6.0/logs/yarn-hadoop-resourcemanager-namenode.out
datanode2: starting nodemanager, logging to /usr/local/hadoop-2.6.0/logs/yarn-hadoop-nodemanager-datanode2.out
datanode1: starting nodemanager, logging to /usr/local/hadoop-2.6.0/logs/yarn-hadoop-nodemanager-datanode1.out
 
#然后分别在namenode主机、datanode1和datanode2主机上进行jsp命令查看是否正常启动了进程
 
#namenode主机输出效果
[hadoop@namenode ~]$ jps
3105 ResourceManager
2863 NameNode
3363 Jps
 
#datanode1主机输出效果
[hadoop@datanode1 hadoop-2.6.0]$ jps
3036 DataNode
3103 SecondaryNameNode
3312 Jps
3187 NodeManager
 
#datanode2主机输出效果
[hadoop@datanode2 hadoop-2.6.0]$ jps
3249 Jps
3118 NodeManager
3030 DataNode


还可以通过浏览器查看一些情况监控
http://namenode:50070
通过上面的地址查看namenode节点及相关的情况

http://namenode:8088/cluster
通过上面的地址查看hadoop集群的作业的运行情况监控

上面只是简单的一个hadoop环境的安装,后续做一个简单的hadoop的测试,使用官方提供的案例进行测试
hadoop 用户登录 namenode
运行 Hadoop 自带的 wordcount 示例


#1)建立输入文件
mkdir -p -m 755 /home/hadoop/test
cd /home/hadoop/test
echo "My first hadoop example. Hello Hadoop in input. " &gt; testfile.txt
#2)建立目录
hadoop fs -mkdir /test
#hadoop fs -rmr /test
#3)上传文件
hadoop fs -put testfile.txt /test
#4)执行 wordcount 程序
hadoop fs -rm -r /test/output
hadoop jar /usr/local/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples- 2.6.0.jar wordcount /test/testfile.txt /test/output
#5)查看结果
[hadoop@namenode test]$ hadoop fs -ls /test/output/
Found 2 items
-rw-r--r--   2 hadoop supergroup          0 2015-10-26 12:52 /test/output/_SUCCESS
-rw-r--r--   2 hadoop supergroup         60 2015-10-26 12:52 /test/output/part-r-00000
[hadoop@namenode test]$ hadoop fs -cat /test/output/part-r-00000
Hadoop	1
My	1
example.Hello	1
first	1
hadoop	1
in	1
input	1


如果你输出的效果,和上面的类似,那么整个测试OK,结束,下面介绍spark的安装
登录到namenode主机上,使用root账号进行登录,把spark-1.5.1-bin-hadoop2.6.tgz文件移动到/usr/local目录下

其实刚刚说了那么多,下面才是真正的正题了哦。我们开始安装spark吧。下面进入说明spark的安装,这个相对比较简单一点的呢。

cd /usr/local;
tar -xzvf spark-1.5.1-bin-hadoop2.6.tgz;
cd spark-1.5.1-bin-hadoop2.6;
cd /usr/local/spark-1.5.1-bin-hadoop2.6/conf;
cp spark-env.sh.template spark-env.sh;
 
vim spark-env.sh
#追加内容
export SCALA_HOME=/usr/lib/scala-2.10.4
export SPARK_HOME=/usr/local/spark-1.5.1-bin-hadoop2.6
#保存
 
cp slaves.template slaves;
vim slaves;
#将里面的内容添加为
datanode1
datanode2
#保存,退出
 
#文件夹的组和用户进行修改为hadoop
chown -R hadoop:hadoop /usr/local/spark-1.5.1-bin-hadoop2.6
 
#分别登录到datanode1和datanode2服务器,进行下面的操作(root账号登录)
mkdir /usr/local/spark-1.5.1-bin-hadoop2.6
chown -R hadoop:hadoop spark-1.5.1-bin-hadoop2.6
 
#同步资源及配置文件到其它两个节点(hadoop 用户)
#~/sync_spark.sh
################################################
for target in datanode1 datanode2
do
 scp -r /usr/local/spark-1.5.1-bin-hadoop2.6/* $target:/usr/local/spark-1.5.1-bin-hadoop2.6/
done
################################################
 
#启动spark
cd /usr/local/spark-1.5.1-bin-hadoop2.6/
# Start Master
./sbin/start-master.sh
# Start Workers
./sbin/start-slaves.sh
 
#然后就可以通过下面地址查看相关的spark监控信息了
http://namenode:8080
 
#也可以通过jps查看进程情况
#namenode下的进程情况
[hadoop@namenode sbin]$ jps
4020 NameNode
5130 Master
4265 ResourceManager
5354 Jps
 
#datanode1下的进程情况
[hadoop@datanode1 ~]$ jps
3569 NodeManager
3495 SecondaryNameNode
4411 Worker
4517 Jps
3393 DataNode
 
#datanode2下的进程情况
[hadoop@datanode2 current]$ jps
3914 Jps
3809 Worker
3047 NodeManager
2943 DataNode
 
#测试spark的统计功能
#使用hadoop账号,登录到namenode中
#随便上传一个需要统计的文件,这里就以一个readme的文件为例
hadoop fs -put /usr/local/spark-1.5.1-bin-hadoop2.6/README.md /test
MASTER=spark://namenode:7077
/usr/local/spark-1.5.1-bin-hadoop2.6/bin/spark-shell
val file = sc.textFile("hdfs://namenode:9000/test/README.md")
val count = file.flatMap(line =&gt; line.split(" ")).map(word =&gt; (word,1)).reduceByKey(_+_)
count.collect()
#退出
exit
 
 
#hive的安装
#先通过yum安装MySQL 这里安装MySQL5.6的版本
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum install mysql mysql-devel mysql-server mysql-utilities
#启动mysql服务
service mysqld start
#mysql初次更新
mysql_upgrade -u root -p
#开机自动启动
chkconfig mysqld on
#修改密码
mysqladmin -u root password '123456'
 
#创建hive用户,数据库等
insert into mysql.user(Host,User,Password) values("localhost","hive",password("hive"));
create database hive;
grant all on hive.* to hive@'%'  identified by 'hive';
grant all on hive.* to hive@'localhost'  identified by 'hive';
flush privileges; 
#退出mysql 
exit
 
#验证hive用户
mysql -uhive -phive
show databases;
#看到如下反馈信息,则说明创建成功
mysql&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| test               |
+--------------------+
3 rows in set (0.00 sec)
 
#退出mysql
exit
 
#三,安装hive
#1,解压安装包
cd  /usr/local
tar -zxvf apache-hive-1.2.1-bin.tar.gz
#添加环境变量
vi  .bash_profile
#导入下面的环境变量
export HIVE_HOME=/home/hdpsrc/hive
export PATH=$PATH:$HIVE_HOME/bin
 
#使其有效
source .bash_profile
 
#4,修改hive-site.xml
#主要修改以下参数
<property> 
   <name>javax.jdo.option.ConnectionURL </name> 
   <value>jdbc:mysql://localhost:3306/hive </value> 
</property> 
 
<property> 
   <name>javax.jdo.option.ConnectionDriverName </name> 
   <value>com.mysql.jdbc.Driver </value> 
</property>
 
<property> 
   <name>javax.jdo.option.ConnectionPassword </name> 
   <value>hive </value> 
</property> 
 
<property> 
   <name>hive.hwi.listen.port </name> 
   <value>9999 </value> 
   <description>This is the port the Hive Web Interface will listen on </descript ion> 
</property> 
 
<property> 
   <name>datanucleus.autoCreateSchema </name> 
   <value>true</value> 
</property> 
 
<property> 
   <name>datanucleus.fixedDatastore </name> 
   <value>false</value> 
</property> 
</property> 
 
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>Username to use against metastore database</description>
  </property>
 
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hadoop/hive/iotmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hadoop/hive/iotmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
  <property>
    <name>hive.querylog.location</name>
    <value>/home/hadoop/hive/iotmp</value>
    <description>Location of Hive run time structured log file</description>
  </property>
cp hive/conf/hive-default.xml.template hive/conf/hive-site.xml
#编辑hive-site.xml
 
#5,拷贝mysql-connector-java-5.1.6-bin.jar 到hive 的lib下面
#地址在这里
http://mirrors.sohu.com/mysql/Connector-J/
mv ~/mysql-connector-java-5.1.37-bin.jar /usr/local/apache-hive-1.2.1-bin/lib/
 
#6,把jline-2.12.jar拷贝到hadoop相应的目录下,替代jline-0.9.94.jar,否则启动会报错
cp /usr/local/apache-hive-1.2.1-bin/lib/jline-2.12.jar /usr/local/hadoop-2.6.0/share/hadoop/yarn/lib/
 
mv /usr/local/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar /usr/local/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar.bak /
 
#7,创建hive临时文件夹
mkdir -p /home/hadoop/hive/iotmp
 
 
#四,启动测试hive
#启动hadoop后,执行hive命令
hive
 
#测试输入 show database;
hive&gt; show databases;
OK
default
Time taken: 0.907 seconds, Fetched: 1 row(s)
 
#到此hive已经安装完成
 
#创建hive的测试表
create table wyp
    (id int, name string,
    age int, tel string)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    STORED AS TEXTFILE;
 
#弄一个测试的数据,名称为/home/hadoop/test_hive_data.txt
 
[hadoop@namenode ~]$ hive
Logging initialized using configuration in jar:file:/usr/local/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive&gt; use default;
OK
Time taken: 0.712 seconds
hive&gt; load data local inpath '/home/hadoop/test_hive_data.txt' into table wyp;
Loading data to table default.wyp
Table default.wyp stats: [numFiles=1, totalSize=71]
OK
Time taken: 2.178 seconds
 
#spark 1.51通过源码编译安装
#这里介绍使用maven方式对源码进行编译安装,因为有些国外的maven是被墙的,这里使用oschain的源,具体方式参考
# http://maven.oschina.net/help.html
 
# 弄好之后,直接运行
mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package

基本的安装流程就是上面介绍的这些了,还是那句话,大家还是自己动手做,才能过真正玩转它。光看是没有说明卵用的呢。哈哈,不废话了,就简单记录这么多吧。希望对大家学习spark分布式方面的东西能有所帮助就可以了。


最新评论

封面图片

封面图片

简介

说到spark,我相信大多数玩大数据的朋友们肯定知道,并且很多朋友们玩的很溜。这里我们也给大家对spark做一个简单的介绍吧。从哪来开始呢,自然从spark的安装与配置开始了哦。所以我们今天的这个标题,我可以说说标题党吗?哈哈,希望大家不要见怪哦。没有这么牛,不可能进行玩转的呢。当然,我们后续如果有时间,也会零零星星更新一些我自己工作中的一些经验和分享一些代码的哦。好了,不废话,我们进入玩转spark的第一篇吧。好好安装和配置我们的spark的环境吧。