博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数据TensorFlowOnSpark安装
阅读量:6537 次
发布时间:2019-06-24

本文共 11137 字,大约阅读时间需要 37 分钟。

1. 概述

大数据tensorflowonspark 进行安装和测试。

2 .环境

所选操作系统

地址和软件版本

节点类型

Centos7.3 64位

192.168.2.31(master)

Java:jdk 1.8

Scala:2.10.4

Hadoop:2.7.3

Spark:2.12.3

TensorFlowOnSpark:0.8.0

Python2.7

Master

Centos7.3 64位

192.168.2.32(spark worker)

Java:jdk 1.8

Hadoop:2.7.3

Spark:2.12.3

slave001

Centos7.3 64位

192.168.2.33(spark worker)

Java:jdk 1.8

Hadoop:2.7.3

Spark:2.12.3

slave002 

3 .安装

1.1 删除系统自带jdk

# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64rpm -e --nodeps tzdata-java-2016c-1.el6.noarch

1.2 安装jdk

rpm -ivh jdk-8u144-linux-x64.rpm

1.3添加java路径

export JAVA_HOME=/usr/java/jdk1.8.0_144

1.4 验证java

[root@master opt]# java -versionjava version "1.8.0_144"Java(TM) SE Runtime Environment (build 1.8.0_144-b01)Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

1.5 Ssh免登陆设置

cd /root/.ssh/ssh-keygen -t rsacat id_rsa.pub >> authorized_keys scp id_rsa.pub authorized_keys root@192.168.2.32:/root/.ssh/scp id_rsa.pub authorized_keys root@192.168.2.31:/root/.ssh/

1.6安装python2.7和pip

yum install -y gcc wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgztar vxf Python-2.7.13.tgzcd Python-2.7.13.tgz./configure --prefix=/usr/localmake && make install [root@master opt]# pythonPython 2.7.13 (default, Aug 24 2017, 16:10:35) [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2Type "help", "copyright", "credits" or "license" for more information.

1.7 安装pip和setuptools

tar zxvf pip-1.5.4.tar.gztar zxvf setuptools-2.0.tar.gzcd setuptools-2.0python setup.py installcd pip-1.5.4python setup.py install

1.8 Hadoop安装和配置

1.8.1 三台机器都要安装Hadoop

tar zxvf hadoop-2.7.3.tar.gz -C /usr/local/cd /usr/local/hadoop-2.7.3/bin[root@master bin]# ./hadoop versionHadoop 2.7.3Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccffCompiled by root on 2016-08-18T01:41ZCompiled with protoc 2.5.0From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4This command was run using /usr/local/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar

1.8.2 配置hadoop

配置mastervi /usr/local/hadoop-2.7.3/etc/hadoop/core-site.xml 
    
        
hadoop.tmp.dir
        
file:/usr/local/hadoop/tmp
        
Abase for other temporary directories.
    
    
        
fs.defaultFS
        
hdfs://master:9001
    

配置slave

[root@slave001 hadoop-2.7.3]# vi ./etc/hadoop/core-site.xml 
    
        
hadoop.tmp.dir
        
file:/usr/local/hadoop/tmp
        
Abase for other temporary directories.
    
    
        
fs.defaultFS
        
hdfs://slave001:9001
    
[root@slave002 hadoop-2.7.3]# vi ./etc/hadoop/core-site.xml 
    
        
hadoop.tmp.dir
        
file:/usr/local/hadoop/tmp
        
Abase for other temporary directories.
    
    
        
fs.defaultFS
        
hdfs://slave002:9001
    

1.8.3 配置hdfs

vi /usr/local/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
    
        
dfs.replication
        
1
    
    
        
dfs.namenode.name.dir
        
file:/usr/local/hadoop/tmp/dfs/name
    
    
        
dfs.datanode.data.dir
        
file:/usr/local/hadoop/tmp/dfs/data
    
    
        
dfs.namenode.rpc-address
        
master:9001
    

1.9 安装scala

tar -zxvf scala-2.12.3.tgz -C /usr/local/ #修改变量添加scalavi /etc/profileexport SCALA_HOME=/usr/local/scala-2.12.3/export PATH=$PATH:/usr/local/scala-2.12.3/binsource /etc/profile

2.0三台机器都要安装spark

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /usr/local/ vi /etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_144/export SCALA_HOME=/usr/local/scala-2.12.3/export PATH=$PATH:/usr/local/scala-2.12.3/binexport SPARK_HOME=/usr/local/spark-2.1.1-bin-hadoop2.7/export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbinsource /etc/profile

 修改spark配置

cd /usr/local/spark-2.1.1-bin-hadoop2.7/

vi ./conf/spark-env.sh.template

export JAVA_HOME=/usr/java/jdk1.8.0_144/

export SCALA_HOME=/usr/local/scala-2.12.3/

#export SPARK_HOME=/usr/local/spark-2.1.1-bin-hadoop2.7/

export SPARK_MASTER_IP=192.168.2.31

export SPARK_WORKER_MEMORY=1g

export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.3/etc/hadoop

export HADOOP_HDFS_HOME=/usr/local/hadoop-2.7.3/

export SPARK_DRIVER_MEMORY=1g

保存退出

mv spark-env.sh.template spark-env.sh

 

#修改slaves

[root@master conf]# vi slaves.template

192.168.2.32

192.168.2.33

[root@master conf]# mv slaves.template slaves

 

2.1 三台主机上修改hosts

vi /etc/hosts

192.168.2.31 master

192.168.2.32 slave001

192.168.2.33 slave002

4. 启动服务

[root@master local]# cd hadoop-2.7.3/sbin/

修改配置文件vi /usr/local/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144/

./start-all.sh

localhost: Warning: Permanently added 'localhost' (RSA) to the list of known hosts.

localhost: Error: JAVA_HOME is not set and could not be found.

修改配置文件

vi /usr/local/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144/

重新启动服务

sbin/start-all.sh

#启动spark

cd /usr/local/spark-2.1.1-bin-hadoop2.7/sbin/

./start-all.sh

4. 安装tensorflow

前提下先安装cudavim /etc/yum.repos.d/linuxtech.testing.repo  添加内容:[cpp] view plain copy[linuxtech-testing]  name=LinuxTECH Testing  baseurl=http://pkgrepo.linuxtech.net/el6/testing/  enabled=0  gpgcheck=1  gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET   sudo rpm -i cuda-repo-rhel6-8.0.61-1.x86_64.rpmsudo yum clean allsudo yum install cudarpm -ivh --nodeps dkms-2.1.1.2-1.el6.rf.noarch.rpm yum install cudayum install epel-releaseyum install -y zlib* #软连接cudaln -s /usr/local/cuda-8.0 /usr/local/cudaldconfig /usr/local/cuda/lib64Vi /etc/profileexport LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"export CUDA_HOME=/usr/local/cuda

 

更新pippip install --upgrade pip下载tensorflowpip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl安装好后#python>>> import tensorflowTraceback (most recent call last):  File "
", line 1, in 
  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in 
    from tensorflow.python import *  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in 
    from tensorflow.python import pywrap_tensorflow  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in 
    _pywrap_tensorflow = swig_import_helper()  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory
#这是因为lib库不完整yum install openssl -yyum install openssl-devel -yyum install gcc gcc-c++ gcc*#更新pip install --upgrade pippip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
>>> import tensorflowTraceback (most recent call last):  File "
", line 1, in 
  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in 
    from tensorflow.python import *  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in 
    from tensorflow.python import pywrap_tensorflow  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in 
    _pywrap_tensorflow = swig_import_helper()  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)ImportError: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)#这是因为tensorflow 使用的glibc版本库太高,系统自带太低了。可以使用。

# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

 

放入最新的glibc库,解压出6.0.20

libstdc++.so.6.0.20 覆盖原来的libstdc++.so.6

[root@master 4.4.7]# ln -s /opt/libstdc++.so.6/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6

ln: creating symbolic link `/usr/lib64/libstdc++.so.6': File exists

[root@master 4.4.7]# mv /usr/lib64/libstdc++.so.6 /root/

[root@master 4.4.7]# ln -s /opt/libstdc++.so.6/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6

[root@master 4.4.7]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

 

[root@master ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_3.4.14

GLIBCXX_3.4.15

GLIBCXX_3.4.16

GLIBCXX_3.4.17

GLIBCXX_3.4.18

GLIBCXX_3.4.19

GLIBCXX_3.4.20

GLIBCXX_DEBUG_MESSAGE_LENGTH

这个地方特别要注意坑特别多,一定要覆盖原来的。

pip install tensorflowonspark

 

这样就可以使用了

报错信息:

报错:ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)

tar zxvf glibc-2.17.tar.gz  

mkdir build  

cd build  

../glibc-2.17/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  

make -j4  

make install  

测试验证tensorflow

import tensorflow as tfimport numpy as npx_data = np.float32(np.random.rand(2, 100)) y_data = np.dot([0.100, 0.200], x_data) + 0.300 b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(W, x_data) + b loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss) init = tf.initialize_all_variables() sess = tf.Session()sess.run(init)  for step in xrange(0, 201):    sess.run(train)    if step % 20 == 0:        print step, sess.run(W), sess.run(b) # 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

确保etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_144/export SCALA_HOME=/usr/local/scala-2.12.3/export PATH=$PATH:/usr/local/scala-2.12.3/binexport SPARK_HOME=/usr/local/spark-2.1.1-bin-hadoop2.7/export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbinexport LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"export CUDA_HOME=/usr/local/cudaexport PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH

完成实验。

下载地址:

转载地址:http://lfbdo.baihongyu.com/

你可能感兴趣的文章
为什么有人讨厌 Google 的新 Logo?
查看>>
2022 年 AI 会发展成什么样子,IBM 做出了 5 大预测
查看>>
腾讯2017暑期实习编程题3
查看>>
Intellij IDEA 构建Spring Web项目 — 用户登录功能
查看>>
[AHOI2013]作业
查看>>
git push被忽略的文件 处理
查看>>
C#中用ILMerge将所有引用的DLL打成一个DLL文件
查看>>
PHP生成HTML静态页面
查看>>
Makefile 中:= ?= += =的区别【转】
查看>>
使用makecontext实现用户线程【转】
查看>>
Comet:基于 HTTP 长连接的“服务器推”技术
查看>>
BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
查看>>
四种方法校验数组中是否包含某个指定的字符串
查看>>
29、Java并发性和多线程-非阻塞算法
查看>>
安装OpenResty开发环境
查看>>
第0课 从0开始
查看>>
hadoop无法启动DataNode问题
查看>>
java泛型中<?>和<T>区别
查看>>
这里是指推送通知跟NSNotification有区别:
查看>>
Linux中断(interrupt)子系统之一:中断系统基本原理【转】
查看>>