vmware centos spark mysql hive hadoop 环境搭建
本文为原创,转载附博文网址,如有相似,纯属巧合。
1、你的centos要和你的vmware版本匹配
2、学习资料来自网课学习,很感谢那个网课老师。本文不讲解配置文件内容,只讲完成步骤,之后可以自己打开文件学习研究
3、搭建需要的安装包和配置文件,都已经写好,我在下面会提供链接供学习。安装包包括apache-hive,hadoop,mysql,scala,spark和mysql-connection-java-5.1.37-bin
4、配置文件很多,分别包括hadoop、spark、mysql、hive、yarn的配置文件,均在config文件夹内,这些配置文件将在dockerfile文件中执行
https://pan.baidu.com/s/1rK06DJ4dFzfGrc1o5H3aGA 提取码:o9kv
全部文件如下:
5、怎么做呢?我们把文件下载后,通过vmware_tools共享到linux上,然后把它copy到/tmp 目录下,右击鼠标打开终端,整个过程在su 后获得终极权限下完成:
6、我们执行终端命令:
sh build.sh
然后output,这是最后几行输出结果,整个过程就是在执行dockerfile文件,会花费很长时间,可能会报不少错误,我已经修改了bug,不用担心!包括apt_get update 报错(我在上几篇博客已经讲过如何处理),matplotlib不支持python2版本,安装python3-pip的问题,还有最后的ssh秘钥权限问题,要改成chomd 600等,如果安装还有其他问题,给我留言,一起讨论。
整个过程时间较久,也取决于网速,耐心!!
dockerfile内容,请自己仔细去阅读学习,难度不是很大,就是安装包和配置环境执行ADD命令和RUN命令,这样环境和安装包就执行好了,我们下面开始启动docker
Step 29/36 : RUN mv /tmp/ssh_config ~/.ssh/config && chmod 600 ~/.ssh/config && mv /tmp/profile /etc/profile && mv /tmp/masters $SPARK_HOME/conf/masters && cp /tmp/slaves $SPARK_HOME/conf/ && mv /tmp/spark-defaults.conf $SPARK_HOME/conf/spark-defaults.conf && mv /tmp/spark-env.sh $SPARK_HOME/conf/spark-env.sh && cp /tmp/hive-site.xml $SPARK_HOME/conf/hive-site.xml && mv /tmp/hive-site.xml $HIVE_HOME/conf/hive-site.xml && mv /tmp/hadoop-env.sh $HADOOP_HOME/etc/hadoop/hadoop-env.sh && mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && mv /tmp/master $HADOOP_HOME/etc/hadoop/master && mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && mv /tmp/start-hadoop.sh ~/start-hadoop.sh && mkdir -p /usr/local/hadoop2.7/dfs/data && mkdir -p /usr/local/hadoop2.7/dfs/name && mv /tmp/init_mysql.sh ~/init_mysql.sh && chmod 600 ~/init_mysql.sh && mv /tmp/init_hive.sh ~/init_hive.sh && chmod 600 ~/init_hive.sh && mv /tmp/restart-hadoop.sh ~/restart-hadoop.sh && chmod 600 ~/restart-hadoop.sh
---> Using cache
---> eaf7473df332
Step 30/36 : RUN echo $JAVA_HOME
---> Using cache
---> cbe99d121d0d
Step 31/36 : WORKDIR /root
---> Using cache
---> 576864654c94
Step 32/36 : RUN /etc/init.d/ssh start
---> Using cache
---> af51ecf5a931
Step 33/36 : RUN chmod 600 ~/.ssh/config
---> Using cache
---> 47a46acc66ac
Step 34/36 : RUN chmod 600 start-hadoop.sh
---> Using cache
---> bc1551c8114e
Step 35/36 : RUN echo "root:111111" | chpasswd
---> Using cache
---> 8b9f821eec81
Step 36/36 : CMD ["/bin/bash"]
---> Using cache
---> 2c0e72d197a4
Successfully built 2c0e72d197a4
Successfully tagged spark:latest
7、终端输入:cd config 然后 ll 命令,我们会看到config目录里面包含了安装文件的配置文件和容器的启动、停止、重启文件,在这里奉上安装的流程文件作为参考吧,均来自网课学习,https://pan.baidu.com/s/1ajenTGYdDkE7QSpOBupOew,提取码:kc2b,里面有详细的讲解,包括配置文件的讲解
8、终端执行命令:fish,这是一个shell,自己百度查看并安装,
[root@localhost config]# fish
Welcome to fish, the friendly interactive shell
root@localhost /t/p/config#
root@localhost /t/p/config#
root@localhost /t/p/config#
root@localhost /t/p/config#
root@localhost /t/p/config#
然后执行命令:sh start_containers.sh ,回车,启动5个docker
root@localhost /t/p/config# sh start_containers.sh
finished
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0225a70a71d2 spark "/bin/bash" 21 hours ago Up 3 hours 0.0.0.0:18043->8042/tcp, 0.0.0.0:51011->50011/tcp, 0.0.0.0:51021->50021/tcp hadoop-node2
b99167ad68f0 spark "/bin/bash" 21 hours ago Up 3 hours 0.0.0.0:18042->8042/tcp, 0.0.0.0:51010->50010/tcp, 0.0.0.0:51020->50020/tcp hadoop-node1
0cefa39d708a spark "/bin/bash" 21 hours ago Up 3 hours 0.0.0.0:17077->7077/tcp, 0.0.0.0:18032->8032/tcp, 0.0.0.0:18050->8050/tcp, 0.0.0.0:18081->8081/tcp, 0.0.0.0:18888->8888/tcp, 0.0.0.0:18900->8900/tcp, 0.0.0.0:19000->9000/tcp, 0.0.0.0:11100->11000/tcp, 0.0.0.0:28080->18080/tcp, 0.0.0.0:29888->19888/tcp, 0.0.0.0:51030->50030/tcp, 0.0.0.0:51070->50070/tcp hadoop-maste
8458e0c9d7b5 spark "/bin/bash" 21 hours ago Up 3 hours mysql
7c5d957e863c spark "/bin/bash" 21 hours ago Up 3 hours hive
root@localhost /t/p/config#
9、我们来看一下是否启动了mysql,终端执行命令:
docker exec -it hadoop-maste /bin/bash
mysql -uroot -proot -hhadoop-mysql
use hive;
show tables;
output,mysql连接成功 :
10、输入exit退出mysql ,输入jps,检验进程
spark 的maste,yard resourcemanager,hadoop的namenode都已经启动,输入ssh hadoop-node1,启动hadoop-node1节点,其中worker是spark进程,datanode是hdfs进程,nodemanager是yarn进程
exit
jps
ssh hadoop-node1
jps
11、终端输入exit,退出hadoop-node1
检验pyspark,但是这里有个问题,因为pyspark默认python版本为python2.7,但是我在dockerfile中已经选择了python3.6,因此这里要设置一下python path环境变量
vi $SPARK_HOME/conf/spark-env.sh #在跳出的文档里加入下面两句
export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=python3
还有一个办法,应该是在config文件夹下的profile文件中加入这两句话,在执行dockerfile时去配置,但是我没有去试
11、终端输入:
pyspark --master spark://hadoop-maste:7077
欢迎讨论留言,转载需附博客地址!