国庆假期留在学校做了一下林子雨博士的大数据实验–淘宝双11数据分析与预测,虽然教程写得很详细,但自己还是踩了很多坑,现在记录下来,希望给别人一点帮助。
淘宝双11数据分析与预测实验连接:点击这里
- 问题一:安装Hadoop时报错
报错内容:
Starting namenodes on [localhost]
localhost: mkdir: 无法创建目录"/usr/local/hadoop/logs": 权限不够
localhost: chown: 无法访问"/usr/local/hadoop/logs": 没有那个文件或目录
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 没有那个文件或目录
localhost: head: 无法打开"/usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out" 读取数据: 没有那个文件或目录
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 没有那个文件或目录
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 没有那个文件或目录
localhost: mkdir: 无法创建目录"/usr/local/hadoop/logs": 权限不够
localhost: chown: 无法访问"/usr/local/hadoop/logs": 没有那个文件或目录
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 没有那个文件或目录
localhost: head: 无法打开"/usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out" 读取数据: 没有那个文件或目录
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 没有那个文件或目录
localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 没有那个文件或目录
Starting secondary namenodes [0.0.0.0]
0.0.0.0: mkdir: 无法创建目录"/usr/local/hadoop/logs": 权限不够
0.0.0.0: chown: 无法访问"/usr/local/hadoop/logs": 没有那个文件或目录
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out
0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 没有那个文件或目录
0.0.0.0: head: 无法打开"/usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out" 读取数据: 没有那个文件或目录
0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 没有那个文件或目录
0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 没有那个文件或目录
dblab@dblab-virtual-machine:/usr/local/hadoop$ sudo chown -R niugen /usr/local/hadoop
报错原因:权限不够
解决方法:
sudo chown -R 你自己电脑到用户名 /usr/local/hadoop
- 问题二:Error: JAVA_HOME is not set and could not be found.
解决方法: JAVA_HOME 环境变量没设置好,请按教程在.bashrc文件中设置好JAVA_HOME,如果
还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,就到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,
“export JAVA_HOME=/usr/lib/jvm/你自己到java版本”,然后,再次启动Hadoop。
- 问题三:使用Sqoop将Hive数据导入到MySQL中
报错内容:
ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
...
ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter
报错原因:操作权限不够
解决方法:
首先用命令service mysql start确保mysql已经启动,进入操作界面 mysql -u root -p,按提示输入的mysql密码,然后执行下面命令修改远程登录权限
mysql> grant all privileges on *.* to root@localhost identified by 'root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
- 问题四:将Hive数据导入到MySQL时报错
报错内容:
ERROR:"Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient"
报错原因:换数据库时没有和hive成功通信。
解决方法:在确保Hive和MySQL配置步骤正确执行的前提下,在终端输入如下命令
source /usr/local/hive/scripts/metastore/upgrade/mysql/hive-schema-3.0.0.mysql.sql//使这个版本的配置文件有用!注意更换文件路径
schematool -dbType mysql -initSchema//进行初始化.运行显示成功就可以正常通信了。
- 问题五:新建Java Web项目时,没有找到Dynamic Web Project
问题原因:安装的是专门开发java项目的,而Dynamic Web Project属于J2EE技术,所以你要专门下载一个集成了J2EE插件的Eclipse,(eclipse-jee-helios-SR2-win32)
解决方法:
方法一:先卸载之前的eclipse版本,到eclipse官网下载相对应版本的IDE
官网安装链接:点击这里
方法二:查看博客点击这里(如果你在原来的eclipse版本下执行这个方法不成功,请转到方法一)
- 问题六:Eclipse导入外部的jar包
ps:与其说这是一个问题,不如说这是一个注意项。之前天真以为导入jar包只要鼠标左键拖拉进去就可以,其实这种做法是错误的。
正确操作步骤:查看此链接