新手安裝 hadoop、hive和hbase 筆記

系統是ubuntu 12.04 , hadoop版本是1.2.1 , hive版本是0.12 , hbase版本我忘記了,很差意思
首先是配置好hostname
vi /etc/hosts
寫入你要配置的ip 和它的hostname
這裏我寫入了
192.168.19.129 ubuntuhtml

給要部署hadoop的機器都互相配置信任關係,具體怎麼玩,本身谷歌
測試一下ssh user@hostname , 作到無需輸入密碼便可登陸java

給全部須要配置hadoop集羣的機器,關閉防火牆
service iptables stopnode

(下面的hadoop版本是1.2.1 , hive版本是0.12 , hbase版本是0.94.12)
修改$HADOOP_HOME/conf/hadoop-env.sh文件
搜索JAVA_HOME
將前面的#去掉,取消註釋
寫入你的JAVA_HOME路徑(方式是在shell上執行:echo $JAVA_HOME , 若是爲空,那麼你就本身再配置一下JDK吧,囧)mysql

修改$HADOOP_HOME/conf/core-site.xml文件
在<configuration></configuration>之間加入web

<property> 
   <name>fs.default.name</name> 
   <value>hdfs://yourHostName(localhost/ubuntu):9000</value> 
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>your tmp director in hdfs</value>
</property>

注意:yourHostName建議寫你本身設置的hostname,不建議寫localhost,由於到多節點時候很容易會出錯,甚至你能夠寫ip地址。sql

另外,hadoop.tmp.dir的標籤的值不是本地文件系統的地址,而是對應HDFS上的臨時目錄,它是在跑MapReduce程序時產生的臨時文件的存放地址。shell

 

修改$HADOOP_HOME/conf/mapred-site.xml文件
在<configuration></configuration>之間加入數據庫

<property>
   <name>mapred.job.tracker</name>
   <value>yourHostName(localhost/ubuntu):9001</value>
</property>
<property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>
<property>
   <name>mapred.child.java.opts</name>
   <value>-Xmx512m</value>
</property>

 

注意:同理,這裏也不建議yourHostName寫localhostubuntu

修改$HADOOP_HOME/conf/hdfs-site.xml文件
在<configuration></configuration>之間加入安全

<property> 
   <name>dfs.name.dir</name> 
   <value>/usr/local/hadoop/datalog</value> 
</property> 
<property> 
   <name>dfs.data.dir</name> 
   <value>/usr/local/hadoop/data</value> 
</property> 
<property> 
   <name>dfs.replication</name> 
   <value>1</value> 
</property> 

 

在$HADOOP_HOME/conf/master 和 $HADOOP_HOME/conf/slaves文件寫入的寫master機器的hostname和slaves的hostname,保存退出

格式化master機器的namenode節點
執行:
$HADOOP_HOME/bin/hadoop namenode -format

啓動整個hadoop集羣環境
$HADOOP_HOME/bin/start-all.sh


*******************************************************************************

hive搭建
解壓好hive的包,給$HIVE_HOME/conf/hive-default.xml.template 拷貝成$HIVE_HOME/conf/hive-site.xml

修改hive的配置,由於默認的配置文件有問題

<value>auth<auth>修改成<value>auth</value>,保存退出
這個hive和hadoop的簡單對接已經完成,後面會加上mysql來做爲數據類型存儲源

*******************************************************************************

hive 與 mysql對接
容許其餘機器訪問mysql服務
修改mysql配置文件/etc/mysql/my.cnf
>skip-networking => # skip-networking //其實就是註釋這一條配置選項

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

在網上下載一個mysql的java驅動,將其放到$HIVE_HOME/lib底下便可
修改$HIVE_HOME/conf/hive-site.xml文件

 

修改hive的配置,hive.metastore.schema.verification默認爲true,修改成false

<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>

 

localhost 寫你的ip地址或者hostname
3306是mysql默認的通訊端口
hive是你所使用mysql裏面的database名字,這個database 必定是你本身手動建立的,不然hive會報錯

<property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNoExist=true</value>
</property>

 

mysql驅動類名

<property>
   <name>javax.jdo.option.ConnectionDriverName</name>
   <value>com.mysql.jdbc.Driver</value>
</property>


所使用mysql的用戶名

<property>
   <name>javax.jdo.option.ConnectorUserName</name>
   <value>hive</value>
</property>

 mysql用戶的密碼

<property>
   <name>javax.jdo.option.ConnectionPassword</name>
   <value>hive</value>
</property>

 

若是你不但願使用hive這個用戶,也能夠自行在mysql上創建用戶

mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
mysql> CREATE user 'hive'@'localhost' IDENTIFIED BY 'hive'; mysql
> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' with grant option; mysql
> flush privileges;

執行上面三行命令,就給mysql建立了hive這個用戶了,用戶名和密碼都是hive

在shell裏面登錄mysql的hive用戶試驗
mysql -uhive -phive

若是在執行上面的命令出現ERROR 1045(28000)錯誤,那麼你就須要執行

/etc/init.d/mysql stop
mysqld_safe --user=root --skip-grant-tables --skip-networking & (這個就是下降mysql 的安全係數啓動mysql 服務,是的用戶無需密碼就能登錄mysql 的root 用戶)
/etc/init.d/mysql restart

此方法參考:http://blog.sina.com.cn/s/blog_4d0aa5f30100fobu.html中的方法一

 

若是忘記mysql 的root 密碼,能夠參考這篇博客:http://www.blogjava.net/wiflish/archive/2006/12/23/89655.html

 

登錄後,給hive用戶建立一個名字叫hive的數據庫

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

啓動hive
show databases; 不出錯,說明hive和mysql打通了

***************************************************************************

hbase搭建

修改$HBASE_HOME/conf/hbase_env.sh文件
export JAVA_HOME=your java_home
export HBASE_MANAGES_ZK=true
若是使用獨立的zookeeper的話,$HBASE_MANAGES_ZK=false

修改$HBASE_HOME/conf/hbase-site.xml

<configuration> 
  <property> 
     <name>hbase.master</name> 
     <value>yourHostName:60000</value> 
  </property> 
  <property> 
     <name>hbase.rootdir</name> 
     <value>hdfs://yourHostName:9000/hbase</value> 
  </property> 
  <property> 
     <name>hbase.cluster.distributed</name> 
     <value>true</value> 
  </property> 
  <property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value> 
  </property> 
  <property> 
     <name>hbase.zookeeper.quorum</name> 
     <value>yourHostName</value> 
  </property> 
</configuration>

 

yourHostName 都不要簡單地填寫localhost,要寫成其餘的hostname,或者是ip也行

啓動hbase

$HBASE_HOME/bin/start-hbase.sh


中止hbase

$HBASE_HOME/bin/stop-hbase.sh

 

能夠在web查看hbase的狀態http://hostname:60010

相關文章
相關標籤/搜索