天天看点

安装hadoop-2.8.0

有的地方来源别的博文

<code>0x01</code> <code>版本</code>

<code>0x02</code> <code>hdfs安装</code>

<code>0x03</code> <code>hive安装</code>

<code>0x04</code> <code>hive安装</code>

<code>0x05</code> <code>spark安装</code>

<code>0x06</code> <code>启动报错</code>

<code>0x07</code> <code>参考</code>

<code>版本hdaoop2.</code><code>8</code> <code>hbase</code><code>-</code><code>1.2</code><code>.</code><code>5</code>  <code>Hive2.</code><code>1.1</code>  <code>spark2.</code><code>1.1</code>  <code>scala</code><code>-</code><code>2.12</code><code>.</code><code>1</code>  

<code>1.</code><code>初始化,建立目录和用户,jdk环境</code>

<code>-</code> <code>name: pro</code>

<code>  </code><code>file</code><code>: path</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop state</code><code>=</code><code>directory</code>

<code>-</code> <code>name: add user</code>

<code>  </code><code>action: user name</code><code>=</code><code>hadoop update_password</code><code>=</code><code>always shell</code><code>=</code><code>/</code><code>bin</code><code>/</code><code>bash</code>

<code>-</code> <code>name: chpasswd</code>

<code>  </code><code>shell: echo </code><code>"xx"</code><code>|passwd </code><code>-</code><code>-</code><code>stdin hadoop</code>

<code>-</code> <code>name: chown</code>

<code>  </code><code>shell: chown </code><code>-</code><code>R hadoop.hadoop </code><code>/</code><code>home</code><code>/</code><code>hadoop</code>

<code>-</code> <code>name: copy profile</code>

<code>  </code><code>copy: src</code><code>=</code><code>/</code><code>opt</code><code>/</code><code>src</code><code>/</code><code>hprofile dest</code><code>=</code><code>/</code><code>etc</code><code>/</code><code>profile force</code><code>=</code><code>yes owner</code><code>=</code><code>root group</code><code>=</code><code>root mode</code><code>=</code><code>0644</code>

<code>-</code> <code>name: copy jdk</code>

<code>  </code><code>copy: src</code><code>=</code><code>/</code><code>opt</code><code>/</code><code>src</code><code>/</code><code>jdk.tar.gz dest</code><code>=</code><code>/</code><code>usr</code><code>/</code><code>java</code><code>/</code>

<code>-</code> <code>name: tar</code>

<code>  </code><code>shell: chdir</code><code>=</code><code>/</code><code>usr</code><code>/</code><code>java tar xvzf jdk.tar.gz</code>

<code>-</code> <code>name: rm</code>

<code>2.namenode</code><code>与datanode 用hadoop ssh打通,跟自己也要ssh打通</code>

<code>second namenode 也要与datanode打通</code>

<code>以下脚本来源 http:</code><code>/</code><code>/</code><code>slaytanic.blog.</code><code>51cto</code><code>.com</code><code>/</code><code>2057708</code><code>/</code><code>1370007</code> <code>大牛</code>

<code>2.1</code>  <code>生成ssh key脚本</code>

<code>ssh</code><code>-</code><code>keygen </code><code>-</code><code>t rsa </code><code>-</code><code>P '' </code><code>-</code><code>f ~</code><code>/</code><code>.ssh</code><code>/</code><code>id_rsa</code>

<code>cp ~</code><code>/</code><code>.ssh</code><code>/</code><code>id_rsa.pub ~</code><code>/</code><code>.ssh</code><code>/</code><code>authorized_keys</code>

<code>2.2</code>  <code>添加公钥到从节点的脚本</code>

<code>#!/bin/sh</code>

<code>read </code><code>-</code><code>p </code><code>"输入远端服务器IP: "</code> <code>ip</code>

<code>ssh</code><code>-</code><code>copy</code><code>-</code><code>id</code> <code>-</code><code>o StrictHostKeyChecking</code><code>=</code><code>no </code><code>-</code><code>i ~</code><code>/</code><code>.ssh</code><code>/</code><code>id_rsa.pub root@$ip</code>

<code>ssh root@$ip </code><code>'sed -i "s/^#RSAAuthentication\ yes/RSAAuthentication\ yes/g" /etc/ssh/sshd_config'</code>

<code>ssh root@$ip </code><code>'sed -i "s/^#PubkeyAuthentication\ yes/PubkeyAuthentication yes/g" /etc/ssh/sshd_config'</code>

<code>ssh root@$ip </code><code>'sed -i "s/^#PermitRootLogin\ yes/PermitRootLogin\ yes/g" /etc/ssh/sshd_config'</code>

<code>ssh root@$ip </code><code>'service sshd restart'</code>

<code>hostname</code><code>=</code><code>`ssh root@${ip} </code><code>'hostname'</code><code>`</code>

<code>echo </code><code>"添加主机名和IP到本地/etc/hosts文件中"</code>

<code>echo </code><code>"$ip    $hostname"</code> <code>&gt;&gt; </code><code>/</code><code>etc</code><code>/</code><code>hosts</code>

<code>echo </code><code>"远端主机主机名称为$hostname, 请查看 /etc/hosts 确保该主机名和IP添加到主机列表文件中"</code>

<code>echo "主机公钥复制完成</code>

<code>2.3</code> <code>读取主机列表然后把</code><code>/</code><code>etc</code><code>/</code><code>hosts复制到所有主机上</code>

<code>cat </code><code>/</code><code>etc</code><code>/</code><code>hosts | </code><code>while</code> <code>read LINE</code>

<code>do</code>

<code>    </code><code>ip</code><code>=</code><code>`echo $LINE | awk </code><code>'{print $1}'</code> <code>| grep </code><code>-</code><code>v </code><code>"::"</code> <code>| grep </code><code>-</code><code>v </code><code>"127.0.0.1"</code><code>`</code>

<code>    </code><code>echo </code><code>"Copying /etc/hosts to ${ip}"</code>

<code>    </code><code>scp </code><code>-</code><code>o StrictHostKeyChecking</code><code>=</code><code>no </code><code>/</code><code>etc</code><code>/</code><code>hosts root@${ip}:</code><code>/</code><code>etc</code><code>/</code>

<code>done</code>

<code>或者使用自己的exp.sh ip </code>

<code>3.</code><code>修改的配置</code>

<code>namenode ha 配置  </code>

<code>vim hdfs</code><code>-</code><code>site.xml</code>

<code>&lt;</code><code>property</code><code>&gt;  </code>

<code>&lt;name&gt;dfs.namenode.secondary.http</code><code>-</code><code>address&lt;</code><code>/</code><code>name&gt;  </code>

<code>&lt;value&gt;d17:</code><code>50090</code><code>&lt;</code><code>/</code><code>value&gt;  </code>

<code>&lt;</code><code>/</code><code>property</code><code>&gt;  </code>

<code>测试HA</code>

<code>$ sbin</code><code>/</code><code>hadoop</code><code>-</code><code>daemon.sh stop namenode</code>

<code>再次查看CentOS7</code><code>-</code><code>2</code><code>上的namenode,发现自动切换为active了</code>

<code>vim slaves</code>

<code>d17</code>

<code>d18</code>

<code>参考自己写的安装hadoop</code><code>-</code><code>2.3</code><code>.</code><code>0</code><code>-</code><code>cdh5.</code><code>1.2</code> 

<code>http:</code><code>/</code><code>/</code><code>szgb17.blog.</code><code>51cto</code><code>.com</code><code>/</code><code>340201</code><code>/</code><code>1691814</code>

<code>4.</code><code>初始化,并启动hdfs</code>

<code>hadoop namenode </code><code>-</code><code>format</code>    <code>初始化,只做一次</code>

<code>启动的命令,旧版</code>

<code>hadoop</code><code>-</code><code>daemon.sh start namenode    </code>

<code>hadoop</code><code>-</code><code>daemons.sh start datanode    </code>

<code>yarn</code><code>-</code><code>daemon.sh start resourcemanager    </code>

<code>yarn</code><code>-</code><code>daemons.sh start nodemanager</code>

<code>新版</code>

<code>start</code><code>-</code><code>dfs.sh 启动的warning,说要重新编译一次,太麻烦,没做</code>

<code>17</code><code>/</code><code>05</code><code>/</code><code>15</code> <code>17</code><code>:</code><code>10</code><code>:</code><code>15</code> <code>WARN util.NativeCodeLoader: Unable to load native</code><code>-</code><code>hadoop library </code><code>for</code> <code>your platform... using builtin</code><code>-</code><code>java classes where applicable</code>

<code>start</code><code>-</code><code>yarn.sh</code>

<code>5.</code><code>启动后的服务确认</code>

<code>网上找到旧版启动的服务</code>

<code>[shirdrn@localhost </code><code>bin</code><code>]$ jps</code>

<code>8192</code> <code>TaskTracker</code>

<code>7905</code> <code>DataNode</code>

<code>7806</code> <code>NameNode</code>

<code>8065</code> <code>JobTracker</code>

<code>8002</code> <code>SecondaryNameNode</code>

<code>8234</code> <code>Jps</code>

<code>[hadoop@n16 conf]$ jps</code>

<code>9088</code> <code>Jps</code>

<code>472</code> <code>NameNode</code>

<code>2235</code> <code>ResourceManager</code>

<code>1308</code> <code>QuorumPeerMain</code>

<code>1901</code> <code>HMaster</code>

<code>0x03</code> <code>hbase安装</code>

<code>启动顺序:hadoop</code><code>-</code><code>-</code><code>&gt;zookeeper</code><code>-</code><code>-</code><code>&gt;hbase</code>

<code>关闭顺序:hbase</code><code>-</code><code>-</code><code>&gt;zookeeper</code><code>-</code><code>-</code><code>&gt;hadoop</code>

<code>1.</code><code>先安装zookeeper,使用ansible安装zookeeper</code>

<code>2.</code><code>启动报错,start</code><code>-</code><code>hbase.sh</code>

<code>Could </code><code>not</code> <code>start ZK with </code><code>3</code> <code>ZK servers </code><code>in</code> <code>local mode deployment</code>

<code>出现这个报错,主要是这个属性hbase.cluster.distributed,写错,切记</code>

<code>vim hbase</code><code>-</code><code>site.xml</code>

<code>&lt;configuration&gt;</code>

<code>&lt;</code><code>property</code><code>&gt;</code>

<code>&lt;name&gt;hbase.rootdir&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;hdfs:</code><code>/</code><code>/</code><code>n16:</code><code>9000</code><code>/</code><code>hbase</code><code>/</code><code>data&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;</code><code>/</code><code>property</code><code>&gt;</code>

<code>&lt;name&gt;hbase.cluster.distributed&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;true&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;name&gt;hbase.zookeeper.</code><code>property</code><code>.clientPort&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;</code><code>2182</code><code>&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;name&gt;hbase.zookeeper.quorum&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;n16,d17,d18&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;name&gt;hbase.zookeeper.</code><code>property</code><code>.dataDir&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>zookeeper</code><code>/</code><code>data&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;</code><code>/</code><code>configuration&gt;</code>

<code>3.start</code><code>-</code><code>hbase</code>

<code>cat </code><code>/</code><code>etc</code><code>/</code><code>profile</code>

<code>export JAVA_HOME</code><code>=</code><code>/</code><code>usr</code><code>/</code><code>java</code><code>/</code><code>jdk</code>

<code>export JRE_HOME</code><code>=</code><code>/</code><code>usr</code><code>/</code><code>java</code><code>/</code><code>jdk</code><code>/</code><code>jre</code>

<code>exportCLASSPATH</code><code>=</code><code>.:$JAVA_HOME</code><code>/</code><code>lib</code><code>/</code><code>dt.jar:$JAVA_HOME</code><code>/</code><code>lib</code><code>/</code><code>tools.jar:$JRE_HOME</code><code>/</code><code>lib</code>

<code>export PATH</code><code>=</code><code>$JAVA_HOME</code><code>/</code><code>bin</code><code>:$JRE_HOME</code><code>/</code><code>bin</code><code>:$PATH</code>

<code>export HADOOP_HOME</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code>

<code>export PATH</code><code>=</code><code>$HADOOP_HOME</code><code>/</code><code>bin</code><code>:$HADOOP_HOME</code><code>/</code><code>sbin:$JAVA_HOME</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hbase</code><code>/</code><code>bin</code><code>:$PATH</code>

<code>metastore使用远程mysql</code>

<code>使用的jar包mysql</code><code>-</code><code>connector</code><code>-</code><code>java</code><code>-</code><code>5.1</code><code>.</code><code>38</code>

<code>172.x</code><code>.x.</code><code>3</code> <code>3306</code>

<code>CREATE DATABASE hive; </code>

<code>USE hive; </code>

<code>CREATE USER </code><code>'hive'</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED BY </code><code>'hive'</code><code>;</code>

<code>GRANT </code><code>ALL</code> <code>ON hive.</code><code>*</code> <code>TO </code><code>'hive'</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED BY </code><code>'hive'</code><code>; </code>

<code>GRANT </code><code>ALL</code> <code>ON hive.</code><code>*</code> <code>TO </code><code>'hive'</code><code>@</code><code>'172.x.1.%'</code> <code>IDENTIFIED BY </code><code>'hive'</code><code>; </code>

<code>GRANT </code><code>ALL</code> <code>ON hive.</code><code>*</code> <code>TO </code><code>'hive'</code><code>@</code><code>'172.x.2.%'</code> <code>IDENTIFIED BY </code><code>'hive'</code><code>;</code>

<code>FLUSH PRIVILEGES; </code>

<code>hdfs dfs </code><code>-</code><code>mkdir </code><code>-</code><code>p </code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>warehouse</code>

<code>hdfs dfs </code><code>-</code><code>mkdir </code><code>-</code><code>p </code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>tmp</code>

<code>hdfs dfs </code><code>-</code><code>mkdir </code><code>-</code><code>p </code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>log</code>

<code>hdfs dfs </code><code>-</code><code>chmod g</code><code>+</code><code>w </code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>warehouse</code>

<code>#hdfs dfs -chmod g+w /user/hive/tmp</code>

<code>hdfs dfs </code><code>-</code><code>chmod g</code><code>+</code><code>w </code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>log</code>

<code>hdfs dfs </code><code>-</code><code>chmod </code><code>777</code> <code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>tmp</code>

<code>配置文件</code>

<code>参考 </code>

<code>cp hive</code><code>-</code><code>env.sh.template hive</code><code>-</code><code>env.sh</code>

<code>cp hive</code><code>-</code><code>default.xml.template hive</code><code>-</code><code>site.xml</code>

<code>cp hive</code><code>-</code><code>log4j2.properties.template hive</code><code>-</code><code>log4j2.properties</code>

<code>cp hive</code><code>-</code><code>exec</code><code>-</code><code>log4j2.properties.template hive</code><code>-</code><code>exec</code><code>-</code><code>log4j2.properties</code>

<code>cat hive</code><code>-</code><code>env.sh</code>

<code>export HIVE_HOME</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hive</code>

<code>export HIVE_CONF_DIR</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>conf</code>

<code>vim hive</code><code>-</code><code>site.xml</code>

<code>    </code><code>&lt;name&gt;hive.</code><code>exec</code><code>.scratchdir&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;</code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>tmp&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;description&gt;HDFS root scratch </code><code>dir</code> <code>for</code> <code>Hive jobs which gets created with write </code><code>all</code> <code>(</code><code>733</code><code>) permission. For each connecting user, an HDFS scratch </code><code>dir</code><code>: ${hive.</code><code>exec</code><code>.scratchdir}</code><code>/</code><code>&amp;lt;username&amp;gt; </code><code>is</code> <code>created, with ${hive.scratch.</code><code>dir</code><code>.permission}.&lt;</code><code>/</code><code>description&gt;</code>

<code>  </code><code>&lt;</code><code>/</code><code>property</code><code>&gt;</code>

<code>  </code><code>&lt;</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;name&gt;hive.metastore.warehouse.</code><code>dir</code><code>&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;</code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>warehouse&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;description&gt;location of default database </code><code>for</code> <code>the warehouse&lt;</code><code>/</code><code>description&gt;</code>

<code>  </code><code>&lt;</code><code>/</code><code>property</code><code>&gt;&lt;</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;name&gt;hive.querylog.location&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;</code><code>/</code><code>user</code><code>/</code><code>hive</code><code>/</code><code>log&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;description&gt;Location of Hive run time structured log </code><code>file</code><code>&lt;</code><code>/</code><code>description&gt;</code>

<code>    </code><code>&lt;name&gt;javax.jdo.option.ConnectionURL&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;jdbc:mysql:</code><code>/</code><code>/</code><code>172.x</code><code>.x.</code><code>3</code><code>:</code><code>3306</code><code>/</code><code>hive?createDatabaseIfNotExist</code><code>=</code><code>true&amp;amp;characterEncoding</code><code>=</code><code>UTF</code><code>-</code><code>8</code><code>&amp;amp;useSSL</code><code>=</code><code>false&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;name&gt;javax.jdo.option.ConnectionDriverName&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;com.mysql.jdbc.Driver&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;name&gt;javax.jdo.option.ConnectionUserName&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;hive&lt;</code><code>/</code><code>value&gt;</code>

<code>    </code><code>&lt;name&gt;javax.jdo.option.ConnectionPassword&lt;</code><code>/</code><code>name&gt;</code>

<code>还需要更改</code>

<code>&lt;name&gt;hive.</code><code>exec</code><code>.local.scratchdir&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;</code><code>/</code><code>tmp</code><code>/</code><code>${user.name}&lt;</code><code>/</code><code>value&gt;</code>

<code>&lt;name&gt;hive.downloaded.resources.</code><code>dir</code><code>&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;</code><code>/</code><code>tmp</code><code>/</code><code>${hive.session.</code><code>id</code><code>}_resources&lt;</code><code>/</code><code>value&gt;</code>

<code>将 hive</code><code>-</code><code>site.xml 中的 ${system:java.io.tmpdir} 和 ${system:user.name} 分别替换成 </code><code>/</code><code>tmp 和 ${user.name}</code>

<code>初始化</code>

<code>schematool </code><code>-</code><code>dbType mysql </code><code>-</code><code>initSchema</code>

<code>启动</code>

<code>hive </code><code>-</code><code>-</code><code>service hiveserver2 &amp;</code>

<code>hive </code><code>-</code><code>-</code><code>service metastore &amp;</code>

<code>hadoop job </code><code>-</code><code>kill jobid</code>

<code>kill `pgrep </code><code>-</code><code>f hive`</code>

<code>nohup hive </code><code>-</code><code>-</code><code>service metastore &amp;</code>

<code>nohup hive </code><code>-</code><code>-</code><code>service hiveserver2 &amp;</code>

<code>修改conf</code><code>/</code><code>hive</code><code>-</code><code>site.xml 中的 “hive.metastore.schema.verification”  值为 false  即可解决 “Caused by: MetaException(message:Version information </code><code>not</code> <code>found </code><code>in</code> <code>metastore. )” </code>

<code>查了一下这个配置项的意义: </code>

<code>hive.metastore.schema.verification:强制metastore的schema一致性,开启的话会校验在metastore中存储的信息的版本和hive的jar包中的版本一致性,并且关闭自动schema迁移,用户必须手动的升级hive并且迁移schema,关闭的话只会在版本不一致时给出警告,默认是false不开启;</code>

<code>因为此配置项设置成为了true,所以可能存在jar包版本不一致问题。导致无法正常启动! </code>

<code>将value由true改为false以后,顺利启动spark</code><code>-</code><code>shell</code>

<code>调试 模式命令  hive </code><code>-</code><code>hiveconf hive.root.logger</code><code>=</code><code>DEBUG,console</code>

<code>export PATH</code><code>=</code><code>$HADOOP_HOME</code><code>/</code><code>bin</code><code>:$HADOOP_HOME</code><code>/</code><code>sbin:$JAVA_HOME</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hbase</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hive</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>spark</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>scala</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>spark</code><code>/</code><code>sbin:$PATH</code>

<code>http:</code><code>/</code><code>/</code><code>mirror.bit.edu.cn</code><code>/</code><code>apache</code><code>/</code><code>spark</code><code>/</code><code>spark</code><code>-</code><code>2.1</code><code>.</code><code>1</code><code>/</code>

<code>http:</code><code>/</code><code>/</code><code>spark.apache.org</code><code>/</code><code>downloads.html</code>

<code>由于我们已经自己安装了Hadoop,所以,在“Choose a package </code><code>type</code><code>”后面需要选择“Pre</code><code>-</code><code>build with user</code><code>-</code><code>provided Hadoop [can use with most Hadoop distributions]”,然后,点击“Download Spark”后面的“spark</code><code>-</code><code>2.1</code><code>.</code><code>0</code><code>-</code><code>bin</code><code>-</code><code>without</code><code>-</code><code>hadoop.tgz”下载即可。下载的文件,默认会被浏览器保存在“</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>下载”目录下。需要说明的是,Pre</code><code>-</code><code>build with user</code><code>-</code><code>provided Hadoop: 属于“Hadoop free”版,这样,下载到的Spark,可应用到任意Hadoop 版本。</code>

<code>local 模式</code>

<code>http:</code><code>/</code><code>/</code><code>dblab.xmu.edu.cn</code><code>/</code><code>blog</code><code>/</code><code>1307</code><code>-</code><code>2</code><code>/</code>

<code>export SCALA_HOME</code><code>=</code><code>/</code><code>root</code><code>/</code><code>dev</code><code>/</code><code>java</code><code>/</code><code>scala</code><code>-</code><code>2.12</code><code>.</code><code>1</code>  

<code>export SPARK_WORKER_MEMORY</code><code>=</code><code>1g</code>  

<code>export SPARK_MASTER_IP</code><code>=</code><code>your_server_ip  </code>

<code>export MASTER</code><code>=</code><code>spark:</code><code>/</code><code>/</code><code>your_server_ip:</code><code>7077</code>  

<code>export SPARK_SSH_OPTS</code><code>=</code><code>"-p 22000"</code>

<code>至此Spark </code><code>2.1</code><code>.</code><code>0</code><code>就已经完全安装完成了。我们可以试验一下安装是否正确,进入到$SPARK_HOME目录,运行求PI的实例:</code>

<code>.</code><code>/</code><code>bin</code><code>/</code><code>run</code><code>-</code><code>example org.apache.spark.examples.SparkPi</code>

<code>我们还可以尝试启动Spark</code><code>-</code><code>shell:</code>

<code>.</code><code>/</code><code>bin</code><code>/</code><code>spark</code><code>-</code><code>shell</code>

<code>分布式</code>

<code>cd </code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>spark</code><code>/</code><code>conf</code>

<code>vim spark</code><code>-</code><code>env.sh</code>

<code>export SCALA_HOME</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>scala</code>

<code>export SPARK_MASTER_IP</code><code>=</code><code>n16</code>

<code>export SPARK_WORKER_MEMORY</code><code>=</code><code>256M</code>

<code>export HADOOP_CONF_DIR</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>etc</code><code>/</code><code>hadoop</code>

<code>#export SPARK_DIST_CLASSPATH=$(hadoop classpath)</code>

<code>"echo \"$(hadoop classpath)\""</code>

<code>echo $(hadoop classpath)</code>

<code>export SPARK_DIST_CLASSPATH</code><code>=</code><code>"/home/hadoop/etc/hadoop:/home/hadoop/share/hadoop/common/lib/*:/home/hadoop/share/hadoop/common/*:/home/hadoop/share/hadoop/hdfs:/home/hadoop/share/hadoop/hdfs/lib/*:/home/hadoop/share/hadoop/hdfs/*:/home/hadoop/share/hadoop/yarn/lib/*:/home/hadoop/share/hadoop/yarn/*:/home/hadoop/share/hadoop/mapreduce/lib/*:/home/hadoop/share/hadoop/mapreduce/*:/home/hadoop/contrib/capacity-scheduler/*.jar"</code>

<code>ssh 远程执行echo命令,特殊字符单引号,双引号丢失问题</code>

<code>参考 http:</code><code>/</code><code>/</code><code>bbs.chinaunix.net</code><code>/</code><code>thread</code><code>-</code><code>3739461</code><code>-</code><code>1</code><code>-</code><code>1.html</code>

<code>cp </code><code>-</code><code>r  log4j.properties.template log4j.properties</code>

<code>start</code><code>-</code><code>master.sh </code>

<code>Error: A JNI error has occurred, please check your installation </code><code>and</code> <code>try</code> <code>again</code>

<code>Exception </code><code>in</code> <code>thread </code><code>"main"</code> <code>java.lang.NoClassDefFoundError: org</code><code>/</code><code>slf4j</code><code>/</code><code>Logger</code>

<code>    </code><code>at java.lang.Class.getDeclaredMethods0(Native Method)</code>

<code>    </code><code>at java.lang.Class.privateGetDeclaredMethods(Class.java:</code><code>2701</code><code>)</code>

<code>    </code><code>at java.lang.Class.privateGetMethodRecursive(Class.java:</code><code>3048</code><code>)</code>

<code>    </code><code>at java.lang.Class.getMethod0(Class.java:</code><code>3018</code><code>)</code>

<code>    </code><code>at java.lang.Class.getMethod(Class.java:</code><code>1784</code><code>)</code>

<code>    </code><code>at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:</code><code>544</code><code>)</code>

<code>    </code><code>at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:</code><code>526</code><code>)</code>

<code>Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger</code>

<code>    </code><code>at java.net.URLClassLoader.findClass(URLClassLoader.java:</code><code>381</code><code>)</code>

<code>    </code><code>at java.lang.ClassLoader.loadClass(ClassLoader.java:</code><code>424</code><code>)</code>

<code>    </code><code>at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:</code><code>331</code><code>)</code>

<code>    </code><code>at java.lang.ClassLoader.loadClass(ClassLoader.java:</code><code>357</code><code>)</code>

<code>    </code><code>... </code><code>7</code> <code>more</code>

<code>表面这个是原装的编译的,jars包下不包含hbase。</code>

<code>start</code><code>-</code><code>slave.sh</code>

<code>1.hbase</code> <code>Could </code><code>not</code> <code>start ZK with </code><code>3</code> <code>ZK servers </code><code>in</code> <code>local mode deployment</code>

<code>2.hive</code> <code>Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient</code>

<code>source </code><code>/</code><code>etc</code><code>/</code><code>profile</code>

<code>&lt;name&gt;hive.vectorized.execution.enabled&lt;</code><code>/</code><code>name&gt;</code>

<code>    </code><code>&lt;value&gt;false&lt;</code><code>/</code><code>value&gt;</code>

<code>hive  </code><code>-</code><code>-</code><code>service metastore &amp;</code>

<code>hive  </code><code>-</code><code>hiveconf hive.root.logger</code><code>=</code><code>DEBUG,console</code>

<code>3.spark</code>

<code>hive的版本过高导致的问题</code>

<code>http:</code><code>/</code><code>/</code><code>slaytanic.blog.</code><code>51cto</code><code>.com</code><code>/</code><code>2057708</code><code>/</code><code>1397396</code>

<code>web界面查看</code>

<code>Web查看HDFS: http:</code><code>/</code><code>/</code><code>ip:</code><code>50070</code>  <code>namenode</code>

<code>通过Web查看hadoop集群状态: http:</code><code>/</code><code>/</code><code>ip:</code><code>8088</code>

<code>vim </code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hadoop</code><code>-</code><code>2.2</code><code>.</code><code>0</code><code>/</code><code>etc</code><code>/</code><code>hadoop</code><code>/</code><code>yarn</code><code>-</code><code>site.xml</code>

<code>&lt;name&gt;yarn.resourcemanager.webapp.address&lt;</code><code>/</code><code>name&gt;</code>

<code>&lt;value&gt;xuegod63.cn:</code><code>8088</code><code>&lt;</code><code>/</code><code>value&gt;</code>

<code>historyserver</code>

<code>mr</code><code>-</code><code>jobhistory</code><code>-</code><code>daemon.sh start historyserver</code>

<code>web访问</code>

<code>http:</code><code>/</code><code>/</code><code>172.x</code><code>.x.</code><code>1</code><code>:</code><code>19888</code><code>/</code>   <code>JobHistory  </code>

<code>http:</code><code>/</code><code>/</code><code>172.x</code><code>.x.</code><code>1</code><code>:</code><code>8088</code><code>/</code>   <code>All</code> <code>Applications</code>

<code>0x08</code> <code>启动的命令和服务</code>

<code>start</code><code>-</code><code>dfs.sh</code>

<code>start</code><code>-</code><code>hbase.sh</code>

<code>hive </code><code>-</code><code>-</code><code>service hiveserver2  &amp;</code>

<code>start</code><code>-</code><code>master.sh</code>

<code>最好start</code><code>-</code><code>all</code><code>.sh</code>

<code>stop</code><code>-</code><code>master.sh</code>

<code>stop</code><code>-</code><code>slave.sh</code>

<code>mr</code><code>-</code><code>jobhistory</code><code>-</code><code>daemon.sh stop historyserver</code>

<code>stop</code><code>-</code><code>hbase.sh</code>

<code>stop</code><code>-</code><code>yarn.sh</code>

<code>stop</code><code>-</code><code>dfs.sh</code>

<code>查看启动后的服务</code>

<code>n16 jps</code>

<code>14865</code> <code>ResourceManager</code>

<code>17748</code> <code>Jps</code>

<code>13749</code> <code>RunJar</code>

<code>17575</code> <code>Master</code>

<code>15690</code> <code>HMaster</code>

<code>15354</code> <code>JobHistoryServer</code>

<code>13931</code> <code>RunJar</code>

<code>[hadoop@d17 conf]$ jps</code>

<code>28468</code> <code>HRegionServer</code>

<code>18420</code> <code>QuorumPeerMain</code>

<code>28151</code> <code>NodeManager</code>

<code>18072</code> <code>DataNode</code>

<code>18184</code> <code>SecondaryNameNode</code>

<code>29944</code> <code>Worker</code>

<code>30108</code> <code>Jps</code>

<code>0x09</code> <code>总结</code>

<code>1.</code><code>服务之间的依赖,启动顺序非常重要,在安装spark的时候,犯了很大错误。</code>

<code>spark和hive的结合,难搞。别spark搞好后,把hive给搞挂了。</code>

<code>2.</code><code>搭建这么多服务,耐心,心情平和很重要。</code>

<code>3.</code><code>排错,尽量开启debug模式。</code>

<code>4.</code><code>临时搭建的,就是能跑起来。真正应用还要做很多优化的。</code>

巨大的坑

hive on spark的集成,spark2.1支持hive1.2.1

如果需要spark2.1支持hive2.1,两步

1.spark编译支持hive  http://dblab.xmu.edu.cn/blog/1383-2/

2.然后hive2.1不支持spark,需要重新编译hive2.1.如果想指定Spark、

Hadoop版本的话,在父目录的pom.xml修改依赖版本即可。,修改

JDK,Scala版本同理。

<a href="http://blog.csdn.net/dax1n/article/details/58594789" target="_blank">http://blog.csdn.net/dax1n/article/details/58594789</a>

profile

16

<code>export KYLIN_HOME</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>apache</code><code>-</code><code>kylin</code><code>-</code><code>2.0</code><code>.</code><code>0</code><code>-</code><code>bin</code>

<code>export  SQOOP_HOME</code><code>=</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>sqoop</code><code>/</code><code>sqoop</code><code>-</code><code>1.4</code><code>.</code><code>6.bin__hadoop</code><code>-</code><code>2.0</code><code>.</code><code>4</code><code>-</code><code>alpha</code>

<code>export PATH</code><code>=</code><code>${SQOOP_HOME}</code><code>/</code><code>bin</code><code>:$HADOOP_HOME</code><code>/</code><code>bin</code><code>:$HADOOP_HOME</code><code>/</code><code>sbin:$JAVA_HOME</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hbase</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>hive</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>spark</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>scala</code><code>/</code><code>bin</code><code>:</code><code>/</code><code>home</code><code>/</code><code>hadoop</code><code>/</code><code>spark</code><code>/</code><code>sbin:$PATH</code>

17

<code>export CLASSPATH</code><code>=</code><code>$($HADOOP_HOME</code><code>/</code><code>bin</code><code>/</code><code>hadoop classpath):$CLASSPATH</code>

本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1926520,如需转载请自行联系原作者