java怎么连接mysql-mha集群

java怎么连接mysql-mha集群,第1张

public class Cnn { /** * 静态连接数据库函数 * @return Connection */ public static Connection getConn() { // String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver"// String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}DBQ=JICQ2006.mdb"// String user=""// String password=""String dbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"String url="jdbc:microsoft:sqlserver://localhost:1433DatabaseName=chat"String user="yong"String password="yong"Connection con=nulltry { Class.forName(dbDriver).newInstance()con=DriverManager.getConnection(url,user,password)} catch(Exception ex) { ex.printStackTrace()} return con} }

Ambari是Apache的开源项目,它帮助用户在GUI页面上简单的部署、管理、监控Hadoop集群环境。Ambari支持的Hadoop组件包括HDFS、Hive、HBase、Spark、Yarn等,HortonWorks官方也是采用Ambari来完成自家HDP套件的安装、管理及监控的。除了预置的组件之外,Ambari还支持自定义组件的安装,同时,支持RESTful的API,继而可以通过命令行等方式调用Ambari来完成一些自动化的任务。

本文共分为两部分,第一部分介绍如何在Docker虚拟化环境中部署Ambari;第二部分介绍如何基于Ambari来部署和管理Hadoop集群。

### 环境信息

* Docker发行版:Docker for Mac

* Docker版本:17.06.2-ce

* Docker容器OS:Ubuntu 14.04

* Ambari版本:2.5.2.0

Docker环境准备

拉取Docker镜像:在宿主机上执行命令docker pull ubuntu:14.04从远端仓库中获取Ubuntu的镜像,也可以获取其他OS的镜像,本文以Ubuntu为例

启动Docker容器:执行如下命令,以ubuntu:14.04镜像为基础启动容器:

docker run -itd --name ambari_new -p 8080:8080 -p 3306:3306 -v /Users/yuxiaolei/Workspace/dockerShared:/dockerShared ubuntu:14.04 /bin/bash

由于Ambari启动Web程序的时候占用8080端口,因此要从Docker宿主机上访问Ambari页面,需要通过参数 -p 来制定端口映射;

作为新手,笔者在容器内部署好Ambari之后,才发现Web页面的8080端口和MySQL的3306端口(可选)没有暴露给Docker宿主机,也就没法从宿主机上通过浏览器来登陆Ambari,因此必须想办法在已有容器上开放端口。

有两个方法:

1)如果宿主机为Linux系统,则修改iptables防火墙来指定端口映射规则;

2)如果是非Linux系统,可以将已装Ambari的容器commit为新的镜像,再基于该镜像创建新的容器。此时,就可以在docker run命令中添加参数 -p 来指定端口映射了。

还有一个问题,Ambari将其数据存储在数据库中,支持MySQL、PostgreSQL等数据库;容器内安装MySQL之后,基于上一步创建的新容器里,会发现MySQL启动不起来,执行命令/etc/init.d/mysql restart启动失败,在/var/log/mysql/error.log日志文件中打印有170802 14:02:59 [ERROR] Fatal error: Can't open and lock privilege tables: Got error 140 from storage engine的错误,经过网上查资料,需要在创建容器的时候添加参数-v /var/lib/mysql将MySQL数据存储路径声明为数据卷,即可解决问题。

启动容器之后,执行命令docker exec -it ambari /bin/bash进入容器内部。

Ambari安装

配置Ubuntu的软件仓库源:

国内建议采用阿里云的软件源,在root账号下用vim打开/etc/apt/sources.list文件,删除文件所有内容,粘贴如下内容:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

执行命令apt-get update完成软件列表更新

安装Ambari所依赖的软件

apt-get install software-properties-common

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java8-set-default

完成安装之后,在 ~/.bashrc 文件末尾添加命令 `export JAVA_HOME=/usr/lib/jvm/java-8-oracle ` 以配置JAVA\_HOME 环境变量。

create database ambariuse ambariGRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTIONFLUSH PRIVILEGESexit

由于Ambari的数据存储在MySQL数据库中,这里为Ambari单独创建了database,并为其赋了完全控制权限;说明:假设MySQL数据库root用户的密码为:root\_password

修改 `/etc/mysql/my.conf`,将`skip-external-locking`注释掉,并确保 `bind-address = 0.0.0.0` 配置,以使MySQL可被远程主机访问。

执行命令`/etc/init.d/mysql restart`重启MySQL 服务。

时间同步服务器ntp:执行命令apt-get install ntp安装ntp时间同步服务器,以便于集群环境中各节点的时钟一致;执行命令sudo service ntp restart重启ntp服务。

MySQL:执行命令apt-get install mysql-server安装MySQL服务器,安装完成后执行命令mysql -uroot -proot进入MySQL客户端,执行如下SQL代码:

Oracle JDK:逐条执行如下命令,以添加WebUpd8团队(https://launchpad.net/~webupd8team/+archive/ubuntu/java)提供的Oracle JDK仓库源,并从该仓库安装JDK:

下载Ambari仓库文件

进入cd /etc/apt/sources.list.d目录,执行命令wget http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.2.0/ambari.list从HortonWorks仓库中下载Ambari源文件,下载后切勿修改list文件名;

执行命令apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD以信任远端仓库的GPG签名

执行命令apt-get update更新Ambari软件源

执行命令apt-get install ambari安装Ambari套件,由于软件包较大(700多MB),这里情耐心等待,不过apt-get支持断点下载,网络终端后重新执行命令时不会从零开始下载

配置Ambari:

执行命令mysql -uroot -proot进入MySQL客户端,执行命令source ambari进入ambari的数据库,并执行命令source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql来完成Ambari的数据库表初始化 *** 作;

执行命令ambari-server setup启动Ambari的引导式配置 *** 作,根据指导做配置即可。需要注意的是,JDK不要选择由Ambari从网络下载,应该选择自定义路径,然后输入/usr/lib/jvm/java-8-oracle即可;

启动Ambari:执行命令ambari-server start,启动日志存储路径为/var/log/ambari-server/ambari-server.log

启动之后,由于我们之前做了Docker容器的端口映射,因此可以在宿主机上打开浏览器输入http://localhost:8080即可访问Ambari登陆页面

登陆用户名和密码均为admin,登陆之后就可以看到Ambari的首页了,如下图:

{% asset_img

Java语言基础

1.Java基本概念

2.Java环境搭建

3.搭建Eclipse开发环境

4.基本类型

5.变量,运算符,表达式

6.分支语句,循环语句

7.数组,数组应用,行业规范。

8.双色球抽奖程序,实现权限管理命令

Java面向对象

1.类、对象、属性、方法、构造器

2.封装、继承、多态

3.重写、重载

4.访问权限控制符

5.this和super、static、final

6.抽象类和接口,内部类

7.单例设计模式

8.模板设计

JavaSE核心类库

1.Java核心类

2.Java字符串、日期处理

3.包装类、集合、数据结构

4.异常和异常处理

5.Java IO、NIO、多线程编程

6.线程同步机制、并发包

7.JAVA网络编程

8.Java泛型

9.Java反射机制

Java分析与设计

1.设计原则

2.设计模式

3.常见算法

4.Java8新特性

5.Maven使用

6.SVN版本管理

数据库开发

1.Oracle安装和管理

2.SQL语句

3.SQL语句原理

4.SQL语句优化

5.表、表设计原则

6.视图、序列、索引

7.Oracle数据字典

8.Oracle 数据库PL/SQL开发

9.存储过程、触发器、游标等

10.数据库设计原则

11.SQL优化技巧和原则

12.MySQL数据库安装

13.MySQL数据库维护

14.MySQL集群和读写分离

Web前端技术

1.XML语法、DTD和Schema

2.XML解析,DOM/SAX/DOM4J

3.XPATH技术应用

4.HTML5(H5)基本文档结构

5.标题、图片标记、链接、列表、表格标记

6.表单标记

7.CSS基础语法

8.CSS文本、列表、表格样式

9.CSS盒子模型

10.CSS浮动布局、定位

11.JavaScript语言基础

12.JavaScript闭包和自执行

13.JavaScript DOM编程

14.JavaScript事件模型

15.Window对象模型

16.HTML5画布、Web存储

17.地理定位、音频/视频、拖放

18.WebSocket技术等

19.CSS3边框、背景、文本效果

20.CSS3字体、动画等

JDBC技术

1.JDBC 核心API

2.CRUP *** 作

3.Statement应用

4.PreparedStatement应用

5.预防SQL注入攻击

6.事务安全控制

7.数据库高并发控制

8.批处理技术

9.DAO封装模式

10.dbcp、c3p0等连接池应用

jQuery技术

1.基本语法

2.选择器

3.元素选择

4.属性 *** 作

5.文档 *** 作

6.CSS *** 作

7.动画效果

8.jQuery 插件

easyUI/Bootstrap/AJAX前端框架

1.Menu菜单

2.Layout布局、Panel面板

3.Tabs 标签页

4.Progressbar进度条

5.Tooltip提示框、Searchbox搜索框

6.Pagination 分页、Draggable可拖动

7.Tree树、Datagrid 数据网格

8.消息框、对话框

9.日历、日期时间、Slider滑块

10.Treegrid树形网格

11.Linkbutton 链接按钮

12.Bootstrap CSS

13.Bootstrap布局组件、Bootstrap插件

14.Bootstrap编辑器

15.highcharts图表组件

16.Ajax作用和原理

17.XMLHttpRequest对象

18.Ajax设计模式

19.JSON技术及Ajax应用

20.jQuery与Ajax技术

JSP &Servlet技术

1.Tomcat配置和部署

2.Servlet生命周期

3.Servlet编写规范和配置

4.中文接收乱码处理

5.Servlet过滤器和监听器

6.Servlet+DAO工厂模式应用

7.JSP 基本语法

8.JSP标记应用

9.JSP内置对象request、session、application、exception等

10.JSTL和 EL表达式

11.JSP新特性

12.MVC设计模式

Spring框架

1.Spring IOC概念

2.ApplicationContext\Factory

Bean

3.IOC对象创建和生命周期

4.IOC注入技巧

5.对象高级装配

6.组件扫描特性

7.Spring JDBC支持

8.Spring 事务及安全管理

9.Spring MVC框架

10.Spring国际化

11.RESTFUL 技术

12.SpringAOP原理、AspectJ

13.Spring Security

14.Spring整合Shiro

SpringBoot/SpringCloud框架

1.SpringBoot Servlet

2.SpringBoot过滤器

3.SpringBoot监听器

4.SpringBoot拦截器

5.SpringBoot启动加载

6.SpringBoot数据库连接

7.SpringBoot多数据源

8.SpringBoot动态数据源

9.SpringBoot事务控制

10.SpringBoot Shiro 权限管理

11.SpringBoot JDBC访问数据库

12.SpringBoot MyBatis访问数据库

13.SpringCloud分布式配置管理

14.SpringCloud服务注册

MyBatis框架

1.MyBatis体系结构

2.SqlSession的使用

3.MyBatis映射基础

4.DQL 映射,DML映射

5.resultType/resultMap结果映射

6.Mapper映射器

7.MyBatis分页原理和优化

8.高级动态SQL映射

9.多表关联映射

10.Spring和MyBatis整合

SSH框架

1.Struts2结构和控制流程

2.Struts2 Action应用

3.ActionContext和ServletActionContext

4.Aware接口注入

5.Interceptor拦截器原理

6.Interceptor自定义应用

7.内置Result原理

8.常用Result组件原理和使用

9.dispatcher、redirect、chain、redirectAction、stream、json等

10.ValueStack原理和OGNL应用

11.Struts2 标记库、Struts2 扩展

12.Struts2和Spring整合应用

13.Hibernate Session API

14.Hibernate实体映射技术

15.Hibernate 关联映射技巧

16.HQL查询、Criteria查询、Native SQL查询

17.延迟加载、持久化、缓存技术

18.SSH整合应用

NoSQL技术

1.Redis原理

2.Redis命令

3.Java Redis API

4.Redis 字符串 *** 作命令

5.Redis 哈希 *** 作命令

6.Redis列表 *** 作命令

7.Redis集合 *** 作命令

8.Redis 有序集合 *** 作命令

9.Redis事务处理、备份和恢复

10.Redis消息发布系统

11.Redis分布式环境

12.MongoDb原理

13.MongoDb命令

14.Java MongoDb API

15.MongoDb排序、索引

16.MongoDb备份恢复

企业开发扩展技术

1.WebService

2.Axis2/CXF创建、发布

3.CXF与Spring集成

4.ActiveMQ消息总线

5.activiti工作流

6.jfreechart图表

7.JasperReport报表技术

8.lucene引擎

9.dubbo分布式架构

10.第三方支付平台

11.第三方短信平台


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6138710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存