第七章 伪分布式安装hive,sqoop
第一部分:先讲这么去安装hive.先去hive官网下载,我这里以hive-0.12.0为例子。
前面第二章讲了安装hadoop,hbase实例,我们继续讲这么安装hive,先说下hive配置文件
一,先讲下使用Derby数据库的安装方式
1.tar zxvf hive-0.12.0.tar.gz 解压hive
2.sudo nano /etc/profile 配置环境变量,在原有的基础上加上hive配置
在终端输入 source /etc/profile 使环境变量对当前终端有效
3.cd /home/hadoop/hive-0.12.0/conf
默认配置文档不存在,所以我们根据模板创建另外2个配置文件,或者还有个方法,就是把原有4个配置文档后面的template删除
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh
4.sudo nano hive-env.sh 修改hive-env.sh配置文件
5.sudo nano hive-site.xml文件,在文件的2000行,有一个不对称
把它修改过来就OK了
6.进入到hive的conf目录下,启动hive
二,使用MySQL数据库的安装方式
注意:配置mysql远程连接必须是root用户
1.先安装mysql服务器
sudo apt-get install mysql-server
2.安装完一搬都自动启动mysql了,如果没有启动,你在输入:
/etc/init.d/mysql start
如果启动了,就登陆mysql
mysql -u root -p
enter password :'123456'
3.设置远程操作mysql权限
GRANT ALL PRIVILEGES ON *.* to root @"%" identified by "123456";
mysql> use hive; (按回车键出现Database changed 时说明操作成功!)
查看现在的数据库中存在什么表
mysql> show tables;
创建一个数据库表
mysql> create table hive(name VARCHAR(20), sex CHAR(1));
显示表的结构:
7:往表中加入记录
mysql>
insert into hive values (”hyq”,”M”);
2 <name>javax.jdo.option.ConnectionURL</name>
3 <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value>
4 <description>JDBC connect string for a JDBC metastore</description>
5 </property>
6
7 <property>
8 <name>javax.jdo.option.ConnectionDriverName</name>
9 <value>com.mysql.jdbc.Driver</value>
10 <description>Driver class name for a JDBC metastore</description>
11 </property>
12
13 <property>
14 <name>javax.jdo.PersistenceManagerFactoryClass</name>
15 <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
16 <description>class implementing the jdo persistence</description>
17 </property>
18
19 <property>
20 <name>javax.jdo.option.DetachAllOnCommit</name>
21 <value>true</value>
22 <description>detaches all objects from session so that they can be used after transaction is committed</description>
23 </property>
24
25 <property>
26 <name>javax.jdo.option.NonTransactionalRead</name>
27 <value>true</value>
28 <description>reads outside of transactions</description>
29 </property>
30
31 <property>
32 <name>javax.jdo.option.ConnectionUserName</name>
33 <value>root</value>
34 <description>username to use against metastore database</description>
35 </property>
36
37 <property>
38 <name>javax.jdo.option.ConnectionPassword</name>
39 <value>123456</value>
40 <description>password to use against metastore database</description>
41 </property>
修改方法如下:
1:在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0
2:重新启动MySQL服务。
测试连接情况:
如果没有给远程登录用户添加所有机器都能访问的权限,将会出现“1045-Access denied for user ‘root@223123(using password:NO)”,这表明需要添加权限;
添加命令如下:
1)grant all on *.* to 用户名@"%" identified by "密码";
2)flush privileges;
完成以上步骤,就可以远程访问MySQL数据库了。
第二部分,讲下这么安装sqoop
1.先去官网下载sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz版本
2.在hadoop用户下,进行解压
tar zxvf sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz
3.配置环境变量 /etc/profile
sudo nano /etc/profile,在文件的末尾,把jdk,hadoop,hbase,hive,sqoop等一些工具都要进行配置
记住,sqoop文件不要写错。
4.把mysql-connector-java-5.1.24-bin.jar放到$SQOOP_HOME/lib文件里,然后把sqoop文件里的sqoop-1.4.4.jar放到
$HADOOP_HOME/lib文件下面
5.如果你没有用到hbase或者 hcat ,修改SQOOP的文件bin/configure-sqoop
sudo nano sqoop-1.4.4.bin__hadoop-1.0.0/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
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HCAT_HOME}" ]; then
# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
#echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
#fi
这样子,sqoop就装成功了,测试
cd #SQOOP_HOME/bin,代表sqoop环境配置没有问题
sqoop version ,可以看到sqoop的信息