大数据集群服务安装-mysql,hive,azkaban,sqoop,spark,python

接上一篇继续安装mysql,hive,azkaban,sqoop,spark,配置python

mysql作为hive的元数据库,azkaban的数据库使用

(一)安装mysql

1. 查看系统版本,下载适合操作系统版本的mysql rpm.

uname -r/a 查看内核版本 :2.6.32-642.13.1.el6.x86_64

cat /etc/issue :CentOS release 6.6 (Final)

2. hadoop4 上,使用yum安装

第一步:Adding the MySQL Yum Repository

1)下载rpmhttps://dev.mysql.com/downloads/repo/yum/

2) rpm -Uvhmysql80-community-release-el6-1.noarch.rpm

第二部:查看repository里都有什么版本mysql,以及默认安哪个?

yumrepolist all | grep mysql

[bigdata@hadoop4 ~]$ yum repolist all | grep mysql

mysql-cluster-7.5-community MySQL Cluster 7.5 Community 禁用

mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - 禁用

mysql-cluster-7.6-community MySQL Cluster 7.6 Community 禁用

mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - 禁用

mysql-connectors-community MySQL Connectors Community 启用: 49

mysql-connectors-community-source MySQL Connectors Community - S 禁用

mysql-tools-community MySQL Tools Community 启用: 61

mysql-tools-community-source MySQL Tools Community - Source 禁用

mysql-tools-preview MySQL Tools Preview 禁用

mysql-tools-preview-source MySQL Tools Preview - Source 禁用

mysql55-community MySQL 5.5 Community Server 禁用

mysql55-community-source MySQL 5.5 Community Server - S 禁用

mysql56-community MySQL 5.6 Community Server 禁用

mysql56-community-source MySQL 5.6 Community Server - S 禁用

mysql57-community MySQL 5.7 Community Server 禁用

mysql57-community-source MySQL 5.7 Community Server - S 禁用

mysql80-community MySQL 8.0 Community Server 启用: 15

mysql80-community-source MySQL 8.0 Community Server - S 禁用

参考文章

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

shell>sudoyum-config-manager--disablemysql80-community

shell>sudoyum-config-manager--enablemysql57-community

shell>sudodnf config-manager--disablemysql80-community

shell>sudodnf config-manager--enablemysql57-community

但是上边这两个命令都没有yum-config-manager,dnf config-manager

手动编辑:

/etc/yum.repos.d/mysql-community.repo

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

enabled=1打开

enabled=0关闭

# Enable to use MySQL 5.7 打开5.7[mysql57-community]name=MySQL 5.7 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

#关闭8.0

[mysql80-community]name=MySQL 8.0 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/enabled=

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

修改后查看:

yumrepolist enabled | grep mysql

安装:

sudo yum install mysql-community-server

查看:

sudo service mysqld status

not running

mysqld 已停

sudo service mysqld start 启动mysql服务

查看安装的mysql包

[bigdata@ai3 ~]$ rpm -qa | grep mysql

mysql-community-client-5.7.22-1.el6.x86_64

mysql-community-common-5.7.22-1.el6.x86_64

mysql-community-libs-5.7.22-1.el6.x86_64

mysql80-community-release-el6-1.noarch

mysql-community-libs-compat-5.7.22-1.el6.x86_64

mysql-community-server-5.7.22-1.el6.x86_64

https://jingyan.baidu.com/article/86112f1378bf282737978730.html

https://www.cnblogs.com/shihaiming/p/6038307.html

获取安装mysql后的密码:

在hadoop4上执行:grep 'temporary password' /var/log/mysqld.log 获得mysql安装后的初始密码:XXXXXXXXXXX

进入mysql修改初始密码:

mysql -uroot -p

ALTERUSER'root'@'localhost'IDENTIFIEDBY'自己设定的密码';

更改mysql 的root账户的密码为XXXXXXXXXXXX

netstat -nltp

----3306 mysqld

#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接root)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'安装mysql时修改后的密码' WITH GRANT OPTION;

FLUSH PRIVILEGES;

(二)安装hive

在集群中某台机器:hadoop2

1) tar -zxvf apache-hive-2.3.2-bin.tar.gz -C ~/bigdata/

2)修改配置文件

hive-site.xml

hive.metastore.schema.verification

false

Enforce metastore schema version consistency.

True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic

schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures

proper metastore schema migration. (Default)

False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.

jdbc:mysql://hadoop4:3306/hive?createDatabaseIfNotExist=true&useSSL=false

JDBC connect string for a JDBC metastore

Driver class name for a JDBC metastore

安装mysql时的用户名,一般为root

username to use against metastore database

安装mysql时修改后的密码

password to use against metastore database

#hive on hbase功能:在hive-site.xml里增加

file:$/lib/hive-hbase-handler-2.3.2.jar,

file:$/lib/hbase-common-1.2.6.jar,

file:$/lib/zookeeper-3.4.6.jar

hadoop2,hadoop3,hadoop4

3)hive-env.sh

HADOOP_HOME=/home/bigdata/bigdata/hadoop-2.7.4

4) 将mysql的连接jar包拷贝到$/lib目录下

mysql-connector-java-5.1.45.jar

5) 初始化hive的schema

bin/schematool -dbType mysql -initSchema

如果提示错误:

Underlying cause: java.sql.SQLException : null, message from server: "Host '10-19-42-65' is not allowed to connect to this MySQL server"

是没有权限的问题,在mysql上授权(在安装mysql的机器上执行)

mysql -uroot -p

#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接root)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'安装mysql时修改后的密码' WITH GRANT OPTION;

FLUSH PRIVILEGES;

继续执行 bin/schematool -dbType mysql -initSchema

6)启动hive

bin/hive

启动hive的no thrift服务

启动为前台:bin/hiveserver2

启动为后台: nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

hive的客户端怎么连接:

先hive/bin/beeline

然后beeline> !connect jdbc:hive2//hiveserver2所启动的那台主机名:10000

或者直接: bin/beeline -u jdbc:hive2//hiveserver2所启动的那台主机名:10000 -n hadoop

7) 分发到所有其他机器上

scp -r $/ hadoop3:~/bigdata/

scp -r $/ hadoop4:~/bigdata/

(三) 安装azkaban

目前azkaban只支持mysql,需安装mysql服务器,默认已安装好mysql服务器,并建立了root用户,密码XXXX

在hadoop4的 ~/bigdata/下建立目录azkaban (hadoop4也是安装mysql的机器上)

主要这三个:

1) azkaban web服务器安装

解压: tar –zxvf azkaban-web-server-2.5.0.tar.gz -C ~/bigdata/azkaban/

并重新命名为web-server: mv azkaban-web-server-2.5.0 web-server

2) azkaban 执行服器安装

解压:tar –zxvf azkaban-executor-server-2.5.0.tar.gz -C ~/bigdata/azkaban/

并重新命名为executor: mv azkaban-executor-server-2.5.0 executor

3) azkaban脚本导入

解压: tar –zxvf azkaban-sql-script-2.5.0.tar.gz -C ~/bigdata/azkaban/

并重新命名为initsql: mv azkaban-sql-script-2.5.0 initsql

将解压后的mysql脚本,导入到mysql中:

mysql -u root -p

mysql> create database azkaban;

mysql> use azkaban;

Database changed

mysql> source /home/bigdata/bigdata/azkaban/initsql/create-all-sql-2.5.0.sql;

4)创建SSL配置

参考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA

运行此命令后,会提示输入当前生成keystor的密码及相应信息,输入的密码请劳记,信息如下:

输入keystore密码:XXXXXXX

再次输入新密码:

您的名字与姓氏是什么?

[Unknown]:

您的组织单位名称是什么?

[Unknown]:

您的组织名称是什么?

[Unknown]:

您所在的城市或区域名称是什么?

[Unknown]:

您所在的州或省份名称是什么?

[Unknown]:

该单位的两字母国家代码是什么

[Unknown]:CN

CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN正确吗?

[否]:y

输入的主密码

(如果和keystore密码相同,按回车):

再次输入新密码:

完成上述工作后,将在当前目录生成keystore证书文件,将keystore考贝到azkaban web服务器根目录中.如:cp keystore web-server/

5)配置文件

注:先配置好服务器节点上的时区

1、先生成时区配置文件Asia/Shanghai,用交互式命令tzselect即可

2、拷贝该时区文件,覆盖系统本地时区配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5.1) azkaban web服务器配置

进入azkaban web服务器安装目录conf目录

修改azkaban.properties文件

vi azkaban.properties

内容说明如下:

#Azkaban Personalization Settings

azkaban.name=Online #服务器UI名称,用于服务器上方显示的名字

azkaban.label=Online azkaban #描述

azkaban.color=#FF3601 #UI颜色

default.timezone.id=Asia/Shanghai#默认时区,已改为亚洲/上海 默认为美国

#Azkaban UserManager class

#Loader for projects

database.type=mysql #数据库类型

mysql.port=3306 #端口号

mysql.host=192.168.1.2 #数据库连接IP ----192.168.1.2

mysql.database=azkaban #数据库实例名

mysql.user=root #数据库用户名

mysql.password= XXXX #数据库密码

mysql.numconnections=100 #最大连接数

# Velocity dev mode

# Jetty服务器属性.

jetty.maxThreads=25 #最大线程数

jetty.port=8081 #Jetty端口

jetty.keystore=keystore #SSL文件名

jetty.password=XXXXX #SSL文件密码

jetty.keypassword=XXXXX #Jetty主密码 与 keystore文件相同

jetty.truststore=keystore #SSL文件名

jetty.trustpassword=XXXXX # SSL文件密码

# 执行服务器属性

executor.port=12321 #执行服务器端口

# 邮件设置

mail.user=xxxxxxxx #发送邮件时显示的名称

mail.password=********** #邮箱密码

cache.directory=cache #缓存目录

5.2) azkaban执行服务器executor配置

进入执行服务器安装目录conf,修改azkaban.properties

vi azkaban.properties

#Azkaban

# Azkaban JobTypes 插件配置

#Loader for projects

#数据库设置

database.type=mysql #数据库类型(目前只支持mysql)

mysql.port=3306 #数据库端口号

mysql.host=192.168.1.2 #数据库IP地址 192.168.1.2

mysql.database=azkaban #数据库实例名

mysql.user=root #数据库用户名

mysql.password=XXXXX #数据库密码

mysql.numconnections=100 #最大连接数

# 执行服务器配置

executor.maxThreads=50 #最大线程数

executor.port=12321 #端口号(如修改,请与web服务中一致)

5.3)用户配置

进入azkaban web服务器conf目录,修改azkaban-users.xml

vi azkaban-users.xml增加管理员用户

6)启动azkaban服务

mkdir -p/home/bigdata/data/azkaban/log/

mkdir -p/home/bigdata/data/azkaban/log_executor/

6.1)web服务器

在azkaban web服务器目录下执行启动命令

bin/azkaban-web-start.sh

注:在web服务器根目录运行

cd/home/bigdata/bigdata/azkaban/web-server

或者启动到后台

nohupbin/azkaban-web-start.sh1>/home/bigdata/data/azkaban/log/azstd.out 2>/home/bigdata/data/azkaban/log/azerr.out &

6.2)执行服务器

cd/home/bigdata/bigdata/azkaban/executor

在执行服务器目录下执行启动命令

nohupbin/azkaban-executor-start.sh1>/home/bigdata/data/azkaban/log_executor/azstd.out2>/home/bigdata/data/azkaban/log_executor/azerr.out &

注:只能在执行服务器根目录运行

启动完成后,在浏览器中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击login.

https://hadoop4:8443

输入用户名和密码:admin XXXX

用户配置里:azkaban-users.xml里设置的用户名和密码。

如果出现azkaban 连接错误:

2017/10/26 12:03:02.753 +0800 ERROR [DataSourceUtils] [Azkaban] MySQL connection test failed. Please check MySQL connection health!

at azkaban.database.DataSourceUtils$MySQLBasicDataSource$MonitorThread.pingDB(DataSourceUtils.java:186)

at azkaban.database.DataSourceUtils$MySQLBasicDataSource$MonitorThread.run(DataSourceUtils.java:174)

Caused by: java.sql.SQLException: null, message from server: "Host 'hadoop2' is not allowed to connect to this MySQL server"

#(执行下面的语句*.*:所有库下的所有表%:任何IP地址或主机都可以连接root账户)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mall321#@' WITH GRANT OPTION;

FLUSH PRIVILEGES;这个root是mysql的root

(四)安装sqoop

安装sqoop的前提是已经具备java和hadoop的环境

1. tar -zxvf sqoop-1.4.6.tar.gz -C ~/bigdata/

2. 修改配置文件

cd $SQOOP_HOME/conf

cp sqoop-env-template.sh sqoop-env.sh

打开sqoop-env.sh并编辑下面几行:

export HADOOP_COMMON_HOME=/home/bigdata/bigdata/hadoop-2.7.4

export HADOOP_MAPRED_HOME=/home/bigdata/bigdata/hadoop-2.7.4

export HBASE_HOME=/home/bigdata/bigdata/hbase-1.2.6

3. 加入postgresql的jdbc驱动包

cp postgresql-9.2-1002.jdbc4.jar $SQOOP_HOME/lib/

测试连接:

sqoop list-tables --connect jdbc:postgresql://数据库ip地址:5432/t --username postgres -password 数据库密码

error:

解决办法4:

4. 把sqoop目录下的sqoop-1.4.6.jar拷贝到hadoop的lib目录下解决

$HADOOP_HOME/share/hadoop/common/lib

5. 从Sqoop往HBase里导入数据,让Row key作为单独字段

参考资料 : Row key里的字段 在HBase里也作为单独字段

参考文章:使用sqoop导入postgresql数据到Hbase

在$SQOOP_HOME/sqoop-site.xml中加入如下配置项

true

6. 分发到所有机器

scp -r $/ hadoop3:~/bigdata/

scp -r $/ hadoop4:~/bigdata/

(五)安装spark

Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on yarn了

1.安装scala

解压配置环境变量即可。文章一已配置好。

2. 安装spark

解压spark:tar -zxvf spark-2.2.1-bin-hadoop2.7.tar.gz -C ~/bigdata/

cd $SPARK_HOME

cpslaves.templateslaves不需要改

在spark-env.sh中添加:

# JDK目录

export JAVA_HOME=/usr/local/jdk8

# Scala目录

export SCALA_HOME=/data/bdsofts/scala-2.11.12

# hadoop配置文件目录

export HADOOP_CONF_DIR=/data/bdsofts/hadoop-2.7.4/etc/hadoop

3.spark 访问hive

1)hive复制到所有机器

2)将hive的hive-site.xml,core-site.xml,hdfs-site.xml 拷贝到spark/conf下

测试例子:

--master yarn \

--deploy-mode cluster \

--driver-memory 2g \

--executor-memory 3g \

--executor-cores 3 \

$SPARK_HOME/examples/jars/spark-examples_2.11-2.2.1.jar \

10

4. 分发到所有机器

scp -r $/ hadoop3:~/bigdata/

scp -r ${SPARK_HOME}/ hadoop4:~/bigdata/

(六)配置python

配置python

在几台机器的 .bash_profile里打开

export PYTHON_HOME=/usr/local/python27

在几台机器的 .bashrc 里添加:

alias python='/usr/local/python27/bin/python'

解决这个错误:

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

#vi /etc/ld.so.conf.d/python2.7.conf

加入/usr/local/python27/lib

保存退出后执行

#ldconfig

参考:

https://www.cnblogs.com/biboxie/p/4233329.html

https://blog.csdn.net/wanyanxgf/article/details/8021641

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180626G0FRXT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券