1.4 使用Sqoop从MySQL数据库导入数据到HDFS
2015-11-03 10:52
946 查看
1.4 使用Sqoop从MySQL数据库导入数据到HDFS
先将weblog_entries.txt放入/var/lib/mysql/path/下
注:以下命令都是在namenode节点运行的
实验准备
在mysql中创建数据库和表,并插入数据
1.登录mysql
2.创建新的数据库
3.选择logs数据库
4.创建weblogs表
5.往 weblogs表插入数据
书中 最后是 ‘\t\n’ 但是这样只能导入一行,最后将‘\t’去掉,导入3000条信息
6.查询下插入的数据量(应该有3000条)
更改配置
更改mysql的my.cnf 文件
找到以下语句,注释掉(在最前面加一个 # )
然后在关键字[mysqld]添加以下语句
最后 保存退出,然后重启下mysql
更改Hdfs的hdfs-site.xml 文件
添加以下语句
最后 保存退出
注:每个节点的hdfs-site.xml都要这样修改,然后重启hadoop服务
更改sqoop的hdfs-site.xml 文件
将以下语句注释掉
实验过程
对sqoop进行个人解析,会有解析不到位的地方,还请大家指出来
sqoop import -m 1 –connect 这个是固定语句
jdbc:mysql://namenode:3306/logs 这里面 namenode:3306 是指mysql安装的主机,logs 是使用到的数据库
–username root 这里的root是登录mysql的账号
–password hadoop 这里的hadoop是登录mysql的密码
–table weblogs 这里的weblogs 是需要导入到HDFS的表名
–target-dir /data/weblogs/impor 这里的 /data/weblogs/impor 是数据导入到HDFS中的那个位置
先将weblog_entries.txt放入/var/lib/mysql/path/下
mkdir /var/lib/mysql/path/
cp /home/data/weblog_entries.txt /var/lib/mysql/path/weblog_entries.txt
注:以下命令都是在namenode节点运行的
实验准备
在mysql中创建数据库和表,并插入数据
1.登录mysql
mysql -uroot -phadoop
2.创建新的数据库
CREATE DATABASE logs;
3.选择logs数据库
USE logs;
4.创建weblogs表
CREATE TABLE weblogs ( md5 VARCHAR(32), url VARCHAR(64), request_date DATE, request_time TIME, ip VARCHAR(15) );
5.往 weblogs表插入数据
LOAD DATA INFILE './path/weblog_entries.txt' INTO TABLE weblogs FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
书中 最后是 ‘\t\n’ 但是这样只能导入一行,最后将‘\t’去掉,导入3000条信息
6.查询下插入的数据量(应该有3000条)
select count(*) from weblogs;
更改配置
更改mysql的my.cnf 文件
vim /etc/mysql/my.cnf
找到以下语句,注释掉(在最前面加一个 # )
bind-address = 127.0.0.1
然后在关键字[mysqld]添加以下语句
skip-external-locking skip-name-resolve skip-grant-tables
最后 保存退出,然后重启下mysql
/etc/init.d/mysql restart
更改Hdfs的hdfs-site.xml 文件
vim /etc/hadoop-0.20/conf/hdfs-site.xml
添加以下语句
<property> <name>dfs.permissions</name> <value>false</value> </property>
最后 保存退出
注:每个节点的hdfs-site.xml都要这样修改,然后重启hadoop服务
更改sqoop的hdfs-site.xml 文件
vim /usr/lib/sqoop/bin/configure-sqoop
将以下语句注释掉
if [ ! -d "${HBASE_HOME}" ]; then echo "Warning: $HBASE_HOME does not exist! HBase imports will fail." echo 'Please set $HBASE_HOME to the root of your HBase installation.' fi
实验过程
sqoop import -m 1 --connect jdbc:mysql://namenode:3306/logs --username root --password hadoop --table weblogs --target-dir /data/weblogs/impor
对sqoop进行个人解析,会有解析不到位的地方,还请大家指出来
sqoop import -m 1 –connect 这个是固定语句
jdbc:mysql://namenode:3306/logs 这里面 namenode:3306 是指mysql安装的主机,logs 是使用到的数据库
–username root 这里的root是登录mysql的账号
–password hadoop 这里的hadoop是登录mysql的密码
–table weblogs 这里的weblogs 是需要导入到HDFS的表名
–target-dir /data/weblogs/impor 这里的 /data/weblogs/impor 是数据导入到HDFS中的那个位置
相关文章推荐
- 8.12 Optimizing the MySQL Server 优化MySQL Server 优化
- MySQL双主高可用架构之MMM实战
- Navicat远程无法连接mysql问题解决(附MAC上NavicatPremium11.1.8破解中文版下载链接)
- Oracle11g,在SQL Developer里新建连接时出现错误的解决办法
- Oracle11g,在SQL Developer里新建连接时出现错误的解决办法
- Oracle SQL Developer 添加SQLServer 和Sybase 连接
- SQL Server 2016 CTP3 集成R语言安装配置手册
- oracle 11g SQL Developer instead of isqlplus
- 导入数据时报错: MySQL server has gone away
- Django连接MySQL数据库
- shell 脚本监控MySQL数据库启动状态
- Mysql在实际使用中的部署架构
- ecshop的Mysql操作类
- [Django数据库模型]Django用原始SQL进行Insert/Update操作
- SQLiteOpenHelper类
- 使用 tungsten-replicator4 实现 mysql -- > monogo 数据同步
- LAMP简单架构实验:Apache+NFS+MySQL
- 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
- 关于The MySQL server is running with the--skip-grant-tables option so it cannot execute thisstatement
- mysql性能监控指标及分析