云服务器内容精选

  • Yarn对接OBS 以客户端安装用户登录安装了Yarn客户端的节点。 执行以下命令,切换到客户端安装目录。 cd 客户端安装目录 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证,该用户需具有OBS目录的读写权限。普通模式集群无需执行用户认证。 kinit HDFS组件操作用户 在Yarn命令行显式添加要访问的OBS文件系统。 使用以下命令访问OBS文件系统。 hdfs dfs -ls obs://OBS并行文件系统名称/路径 使用以下命令创建OBS文件系统下的目录: hdfs dfs -mkdir obs://OBS并行文件系统名称/hadoop1 执行以下Yarn任务访问OBS: yarn jar 客户端安装目录/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi -Dmapreduce.job.hdfs-servers=NAMESERVICE -fs obs://OBS并行文件系统名称 1 1 其中“NAMESERVICE”为HDFS文件系统中的NameService,默认为“hdfs://hacluster”,如有多个NameService, 以“,”分隔。 例如: yarn jar /opt/hadoopclient/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi -Dmapreduce.job.hdfs-servers=hdfs://hacluster -fs obs://bucketname 1 1 执行以下命令写入数据到OBS: yarn jar 客户端安装目录/HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar teragen 100 obs://OBS并行文件系统名称/hadoop1/teragen1 执行以下命令将OBS下的数据复制到HDFS: hadoop distcp obs://OBS并行文件系统名称/hadoop1/teragen1 /tmp OBS文件系统打印大量日志可能导致读写性能受影响,可通过调整OBS客户端日志级别优化,日志调整方式如下: cd 客户端安装目录/Yarn/config vi log4j.properties 在文件中添加OBS日志级别配置(应用若使用自带的log4j.properties,添加同样配置即可) log4j.logger.org.apache.hadoop.fs.obs=WARN log4j.logger.com.obs=WARN 图1 添加OBS日志级别配置
  • 导入或导出数据时缺少MySQL驱动包 若执行sqoop import或sqoop export命令报错“Could not load db driver class: com.mysql.jdbc.Driver”,如图1所示,则表示缺少MySQL驱动包,需在MySQL官网(https://downloads.mysql.com/archives/c-j/)下载对应MySQL驱动包,解压并上传至“客户端安装目录/Sqoop/sqoop/lib”目录下,再执行Sqoop导入或导出数据命令即可。 图1 缺少MySQL驱动包报错
  • Sqoop使用样例 通过sqoop import导入MySQL数据到HDFS sqoop import --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --query 'SELECT * FROM component where $CONDITIONS and component_id =" MRS 1.0_002"' --target-dir /tmp/component_test --delete-target-dir --fields-terminated-by "," -m 1 --as-textfile 通过sqoop export 导出OBS数据到MySQL sqoop export --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --table component14 -export-dir obs://obs-file-bucket/xx/part-m-00000 --fields-terminated-by ',' -m 1 通过sqoop import导入MySQL数据到OBS sqoop import --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --table component --target-dir obs://obs-file-bucket/xx --delete-target-dir --fields-terminated-by "," -m 1 --as-textfile 通过sqoop import导入MySQL数据到Hive OBS外表 sqoop import --connect jdbc:mysql://10.100.231.134:3306/test --username root --password xxx --table component --hive-import --hive-table component_test01 --fields-terminated-by "," -m 1 --as-textfile