共计 4098 个字符,预计需要花费 11 分钟才能阅读完成。
Ubuntu16.04 安装 Hadoop2.6+Spark1.6,并安装 python 开发工具 Jupyter notebook,通过 pyspark 测试一个实例,調通整个 Spark+hadoop 伪分布式开发环境。
主要内容:配置 root 用户,配置 Hadoop,Spark 环境变量,Hadoop 伪分布式安装并测试实例,spark 安装并通过 Jupter notebook 进行开发实例,配置 Jupter notebook 兼容 Python2 和 python3 双内核共存开发。
默认已经正确安装了 JDK,并设置了 JAVA_HOME(安装 JDK 教程较多,不再赘述)
1. 配置环境变量
1.1. 进入 root 用户
1.1.1 root 用户初始为禁止登陆,通过重新设置密码达到 root 可登陆目的。
sudo passwd // 回车输入新的 root 账户密码两次
su // 以 root 登录 执行设计 opt 的文件
在本用户(root 用户和普通用户)下
ls -a
1.1.2. 为了使得当前 user 如 wxl(wangxiaolei)用户的变量在 root 用户中也能生效,需要修改 root 用户下的.bashrc 文件。方法如下。
su
vim ~/.bashrc
# 增加内容
source /etc/profile
重新启动 terminal/ 终端
1.2. 配置当前用户中 hadoop 和 spark 的环境变量(有的开发人员习惯先创建一个 Hadoop 新用户来做,其实这个是可有可无的)
vim /etc/profile.d/spark.sh
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$PATH
export PYTHONPATH=$SPARK_HOME/ptython
vim /etc/profile.d/hadoopsnc.sh (hadoop Single node cluster)
export HADOOP_HOME/opt/hadoop
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$HADOOP_HOME/bin:$PATH"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
1.3. 解决 localhost: Error: JAVA_HOME is not set and could not be found.
修改 /opt/hadoop/etc/hadoop/hadoop-env.sh
vim /opt/hadoop/etc/hadoop/hadoop-env.sh
# 增加
export JAVA_HOME=/opt/java
2. 安装 Hadoop。在单机情景下,可以单例也可以伪分布式安装。本次详细介绍了伪分布式安装。
2.0.Hadoop 单机模式
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
结果如图
cat output/*
Tip:再次运行例子时候需要手动删除 output 文件,否则报错
删除 output 文件
rm -rf output
2.1. 伪分布式模式
进入 hadoop 解压路径中
cd /opt/hadoop
2.2. 源码修改
vim etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.3. 初始化节点
Tip 如果出错,可以删除生成的文件在 /tem 路径下
rm -rf /tmp/hadoop-wxl
注意:因为 format 在 /tmp 目录下,所以每次重启机器这些文件会丢失,所以。。。每次开机都需要 format 一次。
初始化 namenode
bin/hdfs namenode -format
2.4. 启动 hdfs
sbin/start-dfs.sh
查看是否正常启动
jps
若启动成功,访问 web 端 http://localhost:50070
2.5.YARN 的伪分布式
2.5.1. 源码修改
创建一个 mapred-site.xml,这里采用源文件备份的 mapred-site.xml。
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.5.2 开启 YARN
sbin/start-yarn.sh
查看是否全部正常启动命令 jps,如图
也可以在 web 端查看,地址 http://localhost:8088/cluster
2.6. 运行例子:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -get output output
bin/hdfs dfs -cat output/*
2.7. 关闭 YARN/dfs
sbin/stop-dfs.sh
sbin/stop-yarn.sh
3. 安装 spark
3.1. 解压,移动到 /opt 路径下
cd /home/wxl/Downloads
tar -zxf spark-1.6.2-bin-hadoop2.6.tgz
sudo mv spark-1.6.2-bin-hadoop2.6 /opt/spark
在 /opt/spark/conf 的文件,将 spark-env.sh.template 复制为 spark-env.sh
增加
export JAVA_HOME=/opt/java
即可。
可以看到 spark 配置比较简单,只需要解压,放置指定路径皆可。
3.2. 通过小例子的 shell 测试
3.2.1. 开启 pyspark
./bin/pyspark
3.2.2.pyspark 在 shell 中开发
lines =sc.textFile("README.md")
lines.count()
lines.first()
exit() # 或者 ctrl+c
可以看到每次 shell 打印一堆 info 信息,为了较少信息输出,建立 log 机制
cp conf/log4j.properties.template conf/log4j.properties
将 log4j.properties 文件中的 log4j.rootCategory=INFO, console
修改为 log4j.rootCategory=WARN, console
3.3.pyspark 在 jupyter notebook 中开发
启动
IPYTHON_OPTS="notebook" /opt/spark/bin/pyspark
输入测试例子,shift+enter 是运行本单元格并且建立新行,依次输入
lines =sc.textFile("README.md")
lines.count()
lines.first()
至此,整个环境搭建和开发过程总结完毕,愉快的开发吧!注意
:Spark 支持的 python 版本是 python2.7.x,也支持 python3.4+。但是在开发程序时候,朋友请保证注意 pyhton 版本,如果程序和使用内核不同的话,jupyter notebook 内核则会报错。
下面关于 Hadoop 的文章您也可能喜欢,不妨看看:
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134101.htm