mysql数据导入hbase

本文介绍如何安装配置Sqoop,并通过Sqoop将MySQL数据库中的数据导入到HBase表中。包括环境变量设置、JDBC配置、MySQL服务启动及权限设置、HBase表创建等步骤。
下载sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
解压
//配置环境变量
export SQOOP_HOME=/home/hadoop/software/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export SQOOP_SERVER_EXTRA_LIB=$SQOOP_HOME/lib
export PATH=$SQOOP_HOME/bin:$PATH


//cd ./conf
//cp sqoop-env-template.sh sqoop-env.sh
//./conf/sqoop-env.sh修改
export HADOOP_COMMON_HOME=/home/hadoop/software/hadoop-2.6.4
export HBASE_HOME=/home/hadoop/software/hbase-1.2.4
export HIVE_HOME=/home/hadoop/software/apache-hive-2.1.0-bin


//导入jdbc的jar包到./lib     mysql-connector-java-5.1.32-bin.jar


//开启mysql服务,进入mysql,mysql -u root -p123456
//Access denied for user 'root'@'localhost' (using password:YES)      
// 问题解决 
1、打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。
2、重启MySQL服务。
3、在命令行中输入“mysql -uroot -p”(不输入密码),回车即可进入数据库。
4、执行,“use mysql;”使用mysql数据库。
5、执行,“update user set password=PASSWORD("123456") where user='root';”(修改root的密码)
6、打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
7、重启MySQL服务。
8、在命令行中输入“mysql -uroot -prootadmin”,问题搞定!




//mysql赋权限
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;






//测试连接
sqoop list-databases --connect jdbc:mysql://slave2:3306/sqoop --username root -password 123456


//mysql建表
create table student(id INT NOT NULL AUTO_INCREMENT,title VARCHAR(100) NOT NULL,author VARCHAR(40) NOT NULL,date DATE,PRIMARY KEY(id));




INSERT INTO student ( id, title,author,date )VALUES( 1, "q","qq","2015-09-03");
INSERT INTO student ( id, title,author,date )VALUES( 2, "w","ww","2015-09-04");


//hbase建表
create 'student2','info'




//mysql导入hbase
sqoop import --connect jdbc:mysql://slave2:3306/mysql --username root --password 123456 -m 1 --table student --hbase-table student2 --column-family info --hbase-row-key id
Python可以通过HBase的Python API来实现将MySQL数据导入HBase的操作。具体步骤如下: 1. 安装HBase的Python API 可以通过pip安装happybase库来使用HBase的Python API: ``` pip install happybase ``` 2. 连接HBase 使用happybase库连接HBase: ```python import happybase connection = happybase.Connection('localhost') ``` 3. 创建HBase表 使用happybase库创建HBase表: ```python table_name = 'my_table' column_family = 'cf' connection.create_table( table_name, {column_family: dict()} ) ``` 4. 连接MySQL 使用Python的MySQL库连接MySQL: ```python import mysql.connector cnx = mysql.connector.connect( user='user', password='password', host='localhost', database='my_database' ) ``` 5. 从MySQL中读取数据 使用MySQL库从MySQL中读取数据: ```python cursor = cnx.cursor() query = 'SELECT * FROM my_table' cursor.execute(query) for row in cursor: print(row) ``` 6. 将数据导入HBase 使用happybase库将数据导入HBase: ```python table = connection.table(table_name) for row in cursor: key = row[0] data = { column_family + ':column1': row[1], column_family + ':column2': row[2], column_family + ':column3': row[3] } table.put(key, data) ``` 完整代码如下: ```python import happybase import mysql.connector connection = happybase.Connection('localhost') table_name = 'my_table' column_family = 'cf' connection.create_table( table_name, {column_family: dict()} ) cnx = mysql.connector.connect( user='user', password='password', host='localhost', database='my_database' ) cursor = cnx.cursor() query = 'SELECT * FROM my_table' cursor.execute(query) table = connection.table(table_name) for row in cursor: key = row[0] data = { column_family + ':column1': row[1], column_family + ':column2': row[2], column_family + ':column3': row[3] } table.put(key, data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值