sqoop在Linux中环境搭建,sqoop搭建和运行小结
一. 安装工具和操作系统:
macOs 4核8G brew 安装 postgresql
二. 安装sqoop
brew install sqoop
会自动安装hadoop hbase hive zookeeper sqoop
三. 启动
brew services start habse
brew services start zookeeper
四. 安装hadoop(先看注意事项,修改响应的配置文件然后再启动hadoop)
参考链接: http://zhongyaonan.com/hadoop-tutorial/setting-up-hadoop-2-6-on-mac-osx-yosemite.html
注意: 我目前brew 安装的最新版本是:hadoop 3.0.0
1. 默认安装目录/usr/local/Cellar/hadoop/3.0.0/libexec
cd /usr/local/Cellar/hadoop/3.0.0/libexec
cd etc/hadoop/ 里面放置的是配置文件
教程里面 hadoop-env.sh不用配置
2. 修改配置文件:
vim yarn-site.xml
如果按照教程里面配置会出现错误:找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
按照这个参考链接找到了答案:http://wenda.chinahadoop.cn/question/3069
需要再加入一个配置项:name:yarn.application.classpath
对应的值 value为执行hadoop classpath输出的结果
例如我的配置:注意版本和目录有可能不同,按照具体的输出修改
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.application.classpath
/usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/common/lib/*:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/common/*:/usr/local/Cellar/hadoop/3.0.0/libexec/share/ hadoop/hdfs:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/hdfs/lib/*:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/hdfs/*:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/mapreduce/*:/usr/local/Cellar/hadoop/3.0.0/libexec/ share/hadoop/yarn:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/yarn/lib/*:/usr/local/Cellar/hadoop/3.0.0/libexec/share/hadoop/yarn/*
3. 启动和重启
建议:每次删除掉/tmp/hadoop*
1. rm -rf /tmp/hadoop*
2. bin/hdfs namenode -format
每次重启或者首次启动都要执行,否则datanode可能无法启动
sbin/start-dfs.sh 启动dfs
sbin/start-yarn.sh
启动完成检验输入jps 获得如下输出表示没有问题,否则要检查各个步骤和报错,直到启动完毕,方可继续进行
五. 配置sqoop
1. 配置sqoop的环境变量(这一步灰常重要,官方文档里面貌似没有详细说明,我也是根据报错摸索的)
默认安装位置是:
cd /usr/local/Cellar/sqoop/1.4.6/libexec
vim conf/sqoop-env.sh
添加如下配置:根据具体版本和安装目录做调整
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home"
export HADOOP_HOME="/usr/local/Cellar/hadoop/3.0.0/libexec"
export HBASE_HOME="/usr/local/Cellar/hbase/1.2.6"
export HIVE_HOME="usr/local/Cellar/hive/2.3.1"
export ZOOCFGDIR="/usr/local/etc/zookeeper"
五. 测试
brew 默认把sqoop添加进入环境变量的
输入:sqoop version 会出现sqoop的版本号,warning里面一些组建的环境变量没有配置,暂时用不到不用管
6. 导出( 从hdfs导出到postgresql)
(1)先上传一个文件到hdfs
vim student.txt
内容如下:
1,Ace
2,zeus
3,tom
4,john
hadoop fs -put student.txt /user/test
/user/test目录是我搭建hadoop之后在hdfs上创建的目录
上传之后查看一下:hadoop fs -ls -R /user/test
(2)创建表这里使用的是postgresql数据库
(3) 下载jdbc的jar包
我使用的是postgresql所以下载postgresql的jar包,大家可以根据响应的数据库类型下载相应的jdbc包
下载地址:https://jdbc.postgresql.org/download/postgresql-9.3-1101.jdbc41.jar
移动到/usr/local/Cellar/sqoop/1.4.6/libexec/lib目录下。根据版本修改路径
(4)运行
sqoop export --connect jdbc:postgresql://localhost:5432/test --username test --password newpass --table stud1 -m 1 --export-dir /user/test/student.txt
数据库密码别忘了修改
(5)结果
(6)查看结果
7. 导入从postgresql到hbase
sqoop import --connect jdbc:postgresql://localhost:5432/test --username test --password newpass --table stud1 -m 1
至此poc完毕