impala debug前期部署

一.准备LLVM
LLVM :从nobida143拷贝   scp -rq nobida143:/opt/llvm-3.3 /opt/
1. 添加LLVM_HOME   vim ~/.bashrc 增加一行 export LLVM_HOME=/opt/llvm-3.3
二.准备BOOST
2. BOOST : 从nobida143拷贝 scp -rq nobida143:/usr/local/lib/boost /usr/local/lib/
3. vim /etc/ld.so.conf.d/boost-x86_64.conf    增加一行/usr/local/lib/boost
4. ldconfig
三.准备Maven
四.Impala编译(hadoop,hive使用的是impala中的thirdparty中带的)
5. cd /home/data2/wangyh/Impala-cdh5-2.0_5.2.0/
6. 修改impala-config.sh
export HIVE_HOME=$IMPALA_HOME/thirdparty/hive-${IMPALA_HIVE_VERSION}
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HADOOP_HOME=$IMPALA_HOME/thirdparty/hadoop-${IMPALA_HADOOP_VERSION}
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
7. source bin/impala-config.sh
8. ./build-all.sh –notests  –noclean
9. 修改thirdparty/hadoop-2.5.0-cdh5.2.0/etc/hadoop core-site.xml  hdfs-site.xml  slaves文件(红色标红的是需要修改的)
core-site.xml 如下:
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://nobida145:8020</value>
  </property>
  <property>
    <name>fs.trash.interval</name>
    <value>10080</value>
  </property>
  <property>
    <name>fs.trash.checkpoint.interval</name>
    <value>10080</value>
  </property>
  <property>
    <name>io.native.lib.available</name>
    <value>true</value>
  </property>
</configuration>


hdfs-site.xml如下:
<configuration>
<property>
  <name>fs.checkpoint.dir</name>
  <value>/home/data3/secondarynamenode</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/data1/hadoop-cdh5.2-nn</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>   <value>/home/data6/hdfs-data,/home/data7/hdfs-data,/home/data8/hdfs-data,/home/data9/hdfs-data</value>
</property>
<property>
  <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
  <value>true</value>
</property>
<property>
   <name>dfs.client.use.legacy.blockreader.local</name>
   <value>false</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.support.append</name>
  <value>true</value>
</property>
<property>
  <name>dfs.block.local-path-access.user</name>
  <value>root</value>
</property>
<property>
  <name>dfs.client.read.shortcircuit</name>
  <value>true</value>
</property>

<property>
  <name>dfs.domain.socket.path</name>
  <value>/var/run/hadoop-hdfs/dn._PORT</value>
</property>
<property>
  <name>dfs.client.file-block-storage-locations.timeout</name>
  <value>10000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/data1/hdfs-data</value>
</property>
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>
</configuration>

<!--  fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->
<!--  dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆盖。
dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。-->
<!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中-->

slaves如下:
nobida145
10. 修改 thirdparty/ hive-0.13.1-cdh5.2.0/conf下的hive-site.xml
hive-site.xml如下:(请见附件hive-site.xml)

11. 修改 bin/set-classpath.sh
CLASSPATH=\
$IMPALA_HOME/conf:\
$IMPALA_HOME/fe/src/test/resources:\
$IMPALA_HOME/fe/target/classes:\
$IMPALA_HOME/fe/target/dependency:\
$IMPALA_HOME/fe/target/test-classes:\
${HIVE_HOME}/lib/datanucleus-api-jdo-3.2.1.jar:\
${HIVE_HOME}/lib/datanucleus-core-3.2.2.jar:\
${HIVE_HOME}/lib/datanucleus-rdbms-3.2.1.jar:
增加一行,$IMPALA_HOME/conf:\,同时在$IMPALA_HOME下建立conf文件夹,将core-site.xml  hdfs-site.xml  hive-site.xml三个文件考到conf目录下

12. Hadoop namenode –format 并启动dfs,hive
13. bin/start-impala-cluster.py  -s  1 启动impala
五.遇到的错误
1.impala不能读写hdfs,原因 bin/set-classpath.sh中set-classpathsh 增加了conf后面忘记写:
2.datanode或者namenode启动不起来,把hadoop.tmp.dir对应的文件夹清空,dfs.datanode.data.dir对应的文件夹删除(根据日志具体情况具体分析)

你可能感兴趣的:(impala)