centos 7服務(wù)器 安裝配置 指北錄

由于技術(shù)棧的更新,原來的centos 的配置 還是 稍微 淺顯,現(xiàn)在要照顧到C++ java scala python R golang nodejs shell 這些常用的語言和諧相處,又要把所有的環(huán)境配置到更穩(wěn)定 更合適部署 開發(fā)的環(huán)境

首先要確定的就是 我們的服務(wù)要做的就是 要使用 集群的cdh 的hadoop spark hbase hive ,及 sqoop mysql tensorflow xgboost neo4j sklearn pyspark pandas

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install  cyrus-sasl-lib.x86_64  cyrus-sasl-devel.x86_64 libgsasl-devel.x86_64  saslwrapper-devel.x86_64   

sudo yum install mpich mpich-devel

yum install lrzsz  ##方便使用 rz  sz  命令
yum install nc
yum install  telnet
yum install tmux
sudo yum install java-1.8.0-openjdk  java-1.8.0-openjdk-devel
rpm -qa | grep mariadb
rpm -e --nodeps  mariadb-libs-5.5.56-2.el7.x86_64
sudo rpm -Uvh [http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm](http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm)

sudo yum install mysql-server  # 安裝 mysql 這里也有坑 建議大家看我之前寫的 mysql 安裝教程
yum install  mysql-connector-java  #centos 7 安裝 mysql-connector-java.noarch 1:5.1.25-3.el7 
#默認(rèn) mysql-connector-java 會(huì)再次 安裝 jdk6 ,一定要卸載 jdk 6 否則未來啟動(dòng)會(huì)報(bào)錯(cuò)  【Caused by: java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 51.0】 
yum list  jdk #   jdk.x86_64 2000:1.6.0_31-fcs
yum  remove  jdk  #刪除jdk6
sudo yum install gcc                     # C 編譯器
sudo yum install gcc-c++                 # C++ 編譯器
sudo yum install gcc-gfortran            # Fortran 編譯器
sudo yum install compat-gcc-44           # 兼容 gcc 4.4
sudo yum install compat-gcc-44-c++       # 兼容 gcc-c++ 4.4
sudo yum install compat-gcc-44-gfortran  # 兼容 gcc-fortran 4.4
sudo yum install compat-libf2c-34        # g77 3.4.x 兼容庫

首先 centos7 默認(rèn)安裝的python2.7,我們現(xiàn)在要 升級(jí)到python3.6,
參考
http://www.itdecent.cn/p/8929bba0bed5

cd /opt/
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
 mkdir /usr/local/python3 
tar -xvJf  Python-3.6.2.tar.xz  -C  /usr/local/python3
cd /usr/local/python3/Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
ln -s /usr/local/bin/pip3   /usr/bin/pip
pip3 install --upgrade pip
pip install ipython ptpython
#需要注意的是 ptpython 需要設(shè)置到 PATH的環(huán)境變量中

   /usr/local/python3/bin/ptipython
    /usr/local/python3/bin/ptipython3
    /usr/local/python3/bin/ptpython
    /usr/local/python3/bin/ptpython3
vi  /etc/profile

export  PT_HOME=/usr/local/python3
export MPI_HOME=/usr/lib64/openmpi  # mpi要用到
export MPICH_HOME=/usr/lib64/mpich
export  PATH=$PATH:$PT_HOME/bin:$MPI_HOME/bin:$MPICH_HOME/bin


esc : wq
source /etc/profile

需要注意的是 cdh 5.13 的spark 是1.6版本 ,spark 低于 2.1 版本的 pyspark 是不支持 python3.6 的,最高支持 python 3.5,所以 折中的方法是安裝 anaconda
或者建議上一步 安裝 python 3.5.4 代替 Python-3.6.2

wget  https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz

Spark 2.1.0 doesn't support python 3.6.0. To solve this change your python version in anaconda environment. Run following command in your anaconda env

cd  /opt
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh
bash Anaconda3-5.1.0-Linux-x86_64.sh  
#一路回車 yes  安裝即可
which python2.7
/usr/bin/python2.7
vi /etc/profile
export PATH=/root/anaconda3/bin:$PATH  
export PYSPARK_DRIVER_PYTHON=/usr/bin/python2.7 
# /etc/profile     /root/.bashrc
source /etc/profile
conda create -n py35 python=3.5 anaconda  # 創(chuàng)建 python 3.5環(huán)境
source  activate py35  # 激活 python 3.5環(huán)境
conda install py-xgboost
jupyter notebook --generate-config


export PYSPARK_DRIVER_PYTHON=/usr/bin/python2.7
# 可以把這個(gè)追加到  /etc/profile
source /etc/profile

之后再安裝下面的這些包 涵蓋 機(jī)器學(xué)習(xí) ETL 計(jì)算機(jī)視覺 自然語言處理 運(yùn)維
大數(shù)據(jù) 云計(jì)算 并發(fā)

pip3 install numpy  scipy  spacy  mpi4py   pandas xgboost  tensorflow  scikit-learn sklearn-pandas  Scrapy  PyHive  sasl  thrift thrift-sasl tornado virtualenv 
pip3 install  Keras hdfs scrapy-redis  ScalaFunctional  PyQt5  pyOpenSSL  Pillow  paramiko   matplotlib  mpld3  jieba nltk  graphviz  bokeh   
pip3 install  Django  click  apache-libcloud  scrapyd  opencv-python opencv-contrib-python  pymongo h5py gym   djangorestframework   imageio
 djangorestframework-csv   ibis-framework pdhbase  happybase plac pytest
pip3 install  seaborn  setuptools  sparkdl tensorframes  ssh-jump-hive zmail Werkzeug  xlrd  xlwt  pymysql  SQLAlchemy  redis  pyarrow fastparquet hdfs3 
aiosmtplib  asyncio
#或者 一次到位  注意 如果某個(gè)包錯(cuò)誤 會(huì)引起中斷,從哪里斷 就從后面 繼續(xù)安裝即可,mpi4py安裝需要先 安裝  yum 安裝 openmpi  mpich 并配置好環(huán)境變量

pip3 install numpy  scipy  spacy   pandas xgboost  tensorflow  scikit-learn sklearn-pandas  Scrapy  PyHive  sasl  thrift thrift-sasl tornado virtualenv  Keras hdfs scrapy-redis  ScalaFunctional  PyQt5  pyOpenSSL  Pillow  paramiko   matplotlib  mpld3  jieba nltk  graphviz  bokeh  Django  click  apache-libcloud  scrapyd  opencv-python opencv-contrib-python  pymongo h5py gym djangorestframework  djangorestframework-csv seaborn  setuptools  sparkdl tensorframes  ssh-jump-hive  Werkzeug  xlrd  xlwt  pymysql  SQLAlchemy  redis  pyarrow fastparquet  hdfs3   pdhbase  happybase  zmail neo4j-driver  networkx imageio  netaddr  colorama  colorcet coverage plac pytest
pip3 install  PyGame Pydot    CherryPy    pexpect fabric  psutil dnspython IPy
 Polyglot TextBlob    Quepy   mpi4py  aiosmtplib  asyncio itchat wxpy

mrjob 0.6.4 可能需要單獨(dú) source 安裝,主要是 pip 安裝的無法引用
git clone https://github.com/Yelp/mrjob.git
cd mrjob 
vi setup.py
dd 'google-cloud-storage>=1.9.0',  ## 刪除這個(gè) 引用依賴,有問題
esc : wq 
python setup.py install

#剩下的 這些  都是python 2.7的  不建議安裝
#PySQLite PIL LibSVM VLFeat  Python-graph  Yorserver smtplib PyNLPI  MontyLingua Pattern
#pip uninstall   ibis-framework
#pip install enum34  funcsigs functools32   ibis-framework

升級(jí) python 會(huì)造成 yum 無法使用 ,yum 依賴的是python 2.7,解決方法是

#使用yum命令報(bào)錯(cuò)File "/usr/bin/yum", line 30 except KeyboardInterrupt, 
問題出現(xiàn)原因: 
yum包管理是使用python2.x寫的,將python2.x升級(jí)到python3.1.3以后,由于python版本語法兼容性導(dǎo)致問題出現(xiàn) 
解決辦法: 
修改yum配置文件,將python版本指向以前的舊版本

# vi /usr/bin/yum
#!/usr/bin/python2.7

修改urlgrabber-ext-down文件,更改python版本

# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7

另外 在使用pyhive 操作 hive 時(shí) 需要 使用到 thrift 和sasl ,直接 安裝 sasl 會(huì)爆 【 sasl/saslwrapper.h:22:23: 致命錯(cuò)誤:sasl/sasl.h:沒有那個(gè)文件或目錄】
解決方法

yum install cyrus-sasl-lib.x86_64

yum install cyrus-sasl-devel.x86_64

yum install libgsasl-devel.x86_64

yum install saslwrapper-devel.x86_64

一般拉說前面三句基本能解決問題,第四句留著實(shí)在沒辦法時(shí)用。

操作了這些在 pip install sasl 才不會(huì)報(bào)錯(cuò)

centos 默認(rèn)安裝的 openjdk 7,可以升級(jí)到 openjdk8
centos 安裝 cdh 可以參考我之前寫的
cdh 默認(rèn)安裝的是 spark 1.6
為此我們要升級(jí)cdh 的spark 到 2.3

https://www.cloudera.com/documentation/spark2/latest/topics/spark2_packaging.html#packaging
http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera2/

 wget http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.3.0.cloudera2.jar
wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera2/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel
wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera2/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel.sha1 
wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera2/manifest.json

一 、[下載](https://www.cloudera.com/documentation/spark2/latest/topics/spark2_packaging.html#packaging)


SPARK2_ON_YARN-2.2.0.cloudera1.jar

SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel
SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel.sha
manifest.json


二、準(zhǔn)備 
1、將SPARK2_ON_YARN-2.2.0.cloudera1.jar上傳至/opt/cloudera/csd目錄

**注:要保證集群的本地描述符存儲(chǔ)庫路徑是/opt/cloudera/csd** 
查看方式:CM主界面管理–>設(shè)置–>類別(本地描述符存儲(chǔ)庫路徑)

2、將

SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel
SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel.sha
manifest.json


上傳至/var/www/html/spark2目錄下,且保證http能夠訪問。

3、重啟cloudera-scm-server 服務(wù)

service cloudera-scm-server restart
1
成功后進(jìn)入CM界面,在添加服務(wù)里面會(huì)看到spark2的按鈕。

三、安裝parcels 
1、主機(jī)–>parcels–>配置–>填寫url–>檢查新的parcel 
2、下載–>分配—>激活

四、添加服務(wù) 
1、點(diǎn)擊集群按鈕旁的添加服務(wù) 
2、選擇spark2 –>繼續(xù) 
3、選擇依賴 
4、角色分配(Gateway所有主機(jī)都要安裝) 
5、啟動(dòng)

spark2中默認(rèn)使用的是python2,可以通過以下三種方式之一使用python3:

PYSPARK_PYTHON=python3 pyspark2
修改~/.bash_profile,增加 PYSPARK_PYTHON=python3
修改spark-env.sh增加PYSPARK_PYTHON=/usr/local/bin/python3

參考
https://liupzmin.com/
https://blog.csdn.net/ccy521520/article/details/52131999
https://blog.csdn.net/Gavin_chun/article/details/78554277
https://blog.csdn.net/u010936936/article/details/73650417
https://blog.csdn.net/lsshlsw/article/details/49155087
解決在編程方式下無法訪問Spark Master問題
http://ju.outofmemory.cn/entry/162428
http://www.itdecent.cn/p/e00e7c65bb08
,集群要配置 ssh免登陸
安裝scala 2.10.7 為了和 cdh 的spark 配合
wget https://downloads.lightbend.com/scala/2.10.7/scala-2.10.7.rpm
rpm -ivh scala-2.10.7.rpm

安裝 neo4j 企業(yè)版 集群 配置 參考我上一篇
安裝 maven tomcat 等等 ,
wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz

安裝 sbt [scala]
wget https://sbt-downloads.cdnedge.bluemix.net/releases/v1.1.5/sbt-1.1.5.tgz
安裝 zeppelin
http://mirrors.hust.edu.cn/apache/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz

并行計(jì)算
并行可以用 openmpi,也可以用 mpich,二者的功能可以認(rèn)為是完全相同的。由于二者提供了幾乎一樣的命令, 所以二者可以同時(shí)安裝,但是不可以同時(shí)處于使用狀態(tài)。

openmpi
安裝 openmpi:

sudo yum install openmpi openmpi-devel
sudo yum install mpich mpich-devel
安裝后,二進(jìn)制文件位于 /usr/lib64/openmpi/bin 下,動(dòng)態(tài)庫文件位于 /usr/lib64/openmpi/lib 下,因而實(shí)際使用的話還需要額外的配置,在 .bashrc 中加入如下語句:

export PATH=/usr/lib64/openmpi/bin/:${PATH}
module load mpi/openmpi-x86_64
PS:要使用 module 命令需要先安裝 environment-modules 包。

mpich
安裝 mpich:

sudo yum install mpich mpich-devel
安裝后,二進(jìn)制文件位于 /usr/lib64/mpich/bin 下,動(dòng)態(tài)庫文件位于 /usr/lib64/mpich/lib 下, 因而實(shí)際使用的話還需要額外的配置,在 .bashrc 中加入如下語句:

export PATH=/usr/lib64/mpich/bin/:${PATH}
module load mpi/mpich-x86_64
<1>配置環(huán)境,通過遠(yuǎn)程方式訪問jupyter notebook
jupyter notebook --generate-config
會(huì)出現(xiàn)一個(gè)配置文件的路徑(注意)

<2>生成登陸密碼,為了云主機(jī)的安全
進(jìn)入python
1.from notebook.auth import passwd

passwd()
Enter password:
Verify password:
3會(huì)輸出加密后的密碼(記得保存),例如:
'sha1:5311cd8b9da9:70dd3321fc7e66080a5d3d943ab9752b4'
4.exit()

<3>修改<1>生成的配置文件,將以下地址修改如下:
vi ~/.jupyter/jupyter_notebook_config.py (對(duì)應(yīng)你的路徑)

c.NotebookApp.ip='*'
c.NotebookApp.password = u'你保存的密碼'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #隨便指定一個(gè)端口,使用默認(rèn)8888也可以

<4>啟動(dòng)Jupyter服務(wù)
命令行下開啟服務(wù):
jupyter notebook --ip=0.0.0.0 --no-browser --allow-root

<5>瀏覽器訪問,并輸入密碼
http://服務(wù)器地址:端口號(hào)

參考
鏈接:http://www.itdecent.cn/p/8c73bb39dc2e

https://spacy.io/
https://blog.csdn.net/flyfrommath/article/details/78652339
http://hanlp.linrunsoft.com/

mpi
https://www.cnblogs.com/sos-blue/p/6412112.html
http://mpi4py.readthedocs.io/en/stable/tutorial.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容