构建Spark环境

构建spark

标签:大数据


花了299在天善学院买了玩转大数据分析的教程。虽然名字是一分钟建立,但那仅仅是在centos单机上安装spark,离建立hadoop、spark、hive三位一体的集群环境差距还不是一点点。下面记录的是通过vagrant建立虚拟机,安装这三位大佬的过程。

单机安装spark环境的步骤如下:

下载vagrant和virtualbox,两者用于建立centos7虚拟机。
vagrant建立虚拟的优势
在Windows环境下,使用powershell作为命令行工具。
命令如下:
vagrant init centos/7
vagrant up 第一次将下载centos
sudo yum update
sudo yum install java-1.8.0-openjdk
curl -O spark的下载地址
tar zxvf
bin/pyspark 即可运行spark
例子: rdd=sc.parallelize([1,2,3,4,5])
rdd.map(lambda x:x+1).reduce(lambda x,y:x+y) -->20

查看ip需要先:sudo yum install net-tools
安装集群,修改vagrantfile即可,可方便的获得虚拟机集群

建立Hadoop环境:

  1. 下载Hadoop、Hive、Spark相应版本的文件,将相关命令(yum update等)写入bootstrap.sh执行,具体包括:yum update、yum java,sshkey,tar,mv,cp文件等,修改文件路径等。
    在bootstrap.sh中,自作聪明的将/vagrant/files/等路径的vagrant删掉了,以为对应windows下的files目录,实际上vagrant的工作方式是将windows下.vagrant路径映射到虚拟机的/vagrant/目录下。试图通过将bootstraop.sh复制到虚拟机运行,可实际上少了./vagrant的映射,不能运行成功,只有重新删掉up。
  2. 设定 ssh key
    • 将master的 id_rsa.pub 复制到其他机器的 ~/.ssh/authorized_keys/
    注意:这里花了一点时间,多次将集群彻底删除重装,私钥不能删除,删除了就连vagrant也访问不了node了
    公钥验证不通过,需要在要登录的机器(./etc/ssh/sshd_config) RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    在master机第一次通过密码登录,然后ssh-copy-id -i ~/.ssh/id_rsa.pub <romte_ip>将master机的rsa.pub复制到目标机的authorized_keys。参考http://www.jb51.net/article/94599.htm
  3. 启动 Hadoop
    • hdfs namenode -format 建立hdfs文件夹
    • $HADOOP_PREFIX/sbin/start-dfs.sh 开启dfs,登录各个node验证
    hdfs dfsadmin -report 显示各node的使用情况
    • $HADOOP_PREFIX/sbin/start-yarn.sh
    查看hadoop开启的port:netstat -nlopt
    http://10.211.55.100:50070/ 在web端查看hadoop启动情况

建立Spark集群

开启spark前应开启hadoop,因为多次hdfs namenode -format导致namespaceID不同(所以一旦format,就不应重复,否则因为删除datanode会丢失数据),

Configured Capacity: 0 (0 B)  
Present Capacity: 0 (0 B)  
DFS Remaining: 0 (0 B)  
DFS Used: 0 (0 B)  
DFS Used%: NaN% 

解决方法是:删掉所有节点/var/hadoop目录下的hadoop-datanode和hadoop-namenode两个文件夹。

spark configconfiguration:
spark-env.sh (设定环境变项)
spark-defaults.conf (细节设定)
启动spark(standalone模式):

  1. 設定 Slaves vi /usr/local/spark/conf/slaves 查看slaves
  2. $SPARK_HOME/sbin/start-all.sh

pyspark --master spark://10.211.55.100:7077
http://10.211.55.100:8080/ 在web端查看
在执行上局的时候,报错java.io.FileNotFoundException: File does not exist: hdfs:/user/spark,经过思考,应该是hdfs系统没有这个文件夹,那么使用 hadoop fs -mkdir /user/spark建立这个文件夹。解决!

建立Hive(Hadoop上的资料管理系统)

Hive是Hadoop家族中一款数据仓库产品,
Hive最大的特点就是提供了类SQL的语法,封装了底层的MapReduce
Hive安装模式:embedded metastore、local mode、remote mode
安装Hive -remote Mode 步驟:

  1. 安裝 mySQL, mySQL connector
    systemctl start mysqld(开启mysql)
    cat /var/log/mysqld.log | grep password(查询密码,以便登录)
    mysql -u root -p(使用查询到的密码登录)
    ALTER USER 'root'@'localhost' IDENTIFIED BY '!Spark123';(修改密码)
  2. 設定 hive-site.xml
    vi /usr/local/hive/conf/hive-site.xml 修改刚刚确定的密码
  3. 初始化 mySQL
    schematool -initSchema -dbType mysql 根据hive-site.xml的设置找到mysql的位置,初始化mysql
    mysql -u root -p登录 show databases 显示数据库 use metastore; show tables
    重要的table:DBS 新开的database的信息;DB_PRIVS 使用者权限;PARTITIONS方便Hive快速提取;TBLS新创的表格
  4. 啟動Hive的 metastore
    hive --service metastore 没有退出ctrl+c后执行下局(如果进入hive失败,改为:hive --service metastore &)
    nohup hive --service metastore &
    head nohup.out 查看日志,已经开启metastroe
    netstat -nlopt 查看metastore的端口,存在9083表示开启
    hive 进入hive环境。(语句加分号)show tables 查看表格;show databases 查看数据库
    create database temp;
    use temp;
    create table test1(id string,number int);
    insert into table test1 VALUES('001',1),('002',2);
    select * from test1
    insert时总是失败,报错FAILED: SemanticException [Error 10293]: Unable to create temp file for insert values File。第二天重做了一遍hadoop,spark,正常运行,估计是因为hive --service metastore &没有开启

建立spark与hive的连接,使用spark.sql运行hive语句
ln -s /usr/local/hive/conf/hive-site.xml /usr/local/spark/conf 在spark的conf下建立hive-site.xml的软链接(link)。
pyspark --master local[1] 使用本地模式快速开启spark
spark.sql('show databases').collect()
spark.sql('select * from test1').show() 注意:test1在使用时没有use temp(databases)所以这里没有from temp.test1

建立交互式Pyspark环境

ipython Notebook 简介

  • 以 Web 的方式提供使用者操作 Python
  • 可以远端操作 Server 上的资料及环境
  • 提供基本 code completion,提示等功能
    安装过程:
  1. pip install ipython notebook 安裝 ipython notebook (ipython notebook对root模式排斥)
  2. cp /vagrant/conf/spark/0_spark.py ~/.ipython/profile_default/startup/ 將設定檔放入

ipython notebook --ip 0.0.0.0 启动ipython复制出现的网址到浏览器-0.0.0.0改为master的ip(或者直接填写master ip)

Hadoop常用命令:
•   管理UI: http://10.211.55.100:50070
•   列出档案: hadoop fs -ls /
•   建立资料夹: hadoop fs -mkdir
•   将资料上传到 Hdfs:  hadoop fs -put <source> <dest>
•   将资料从 Hdfs 传到本机: hadoop fs -get <remote> <local> 
•   将资料在 Hdfs 中移动: hadoop fs -mv <source> <dest>
•   删除 Hdfs 资料: hadoop fs -rm <file>
•   观察档案内容: hadoop fs -cat/-tail <file>
vagrant常用命令
•   init 建立 Vagrant File
•   up 建立虚拟机(或开机)
•   ssh 进入虚拟机
•   status 观察虚拟机状态
•   halt 关机
•   destroy 删除虚拟机
•   suspend 暂停虚拟机(类似休眠)
•   resume 唤醒虚拟机
ipython notebook 一般操作方式
•   Enter: 进入编辑此格内容(编辑模式)
•   Esc: 从编辑模式回到命令模式
•   Shift + Enter: 运行此格,并跳至下一格
•   Alt + Enter: 运行此格,并在下方新增一格
•   Ctrl + Enter: 运行此格
•   Y: 切换成 Code 模式(在命令模式下)
•   M: 切换成 Markdown模式(在命令模式下)
•   上下方向键: 上下移动选择格
•   Command + s (for Mac): 储存档案
•   Ctrl + s (for window): 储存档案
•   %matplotlib inline
•   %%timeit 测试时间
•   %history 历史纪录
•   !执行 shell command
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容