Hive/Hbase/Sqoop的安装教程

HIVE INSTALL

1.下载安装包https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/
2.上传到Linux指定目录,解压:

  1. mkdir hive
  2. mv apache-hive-2.3.3-bin.tar.gz hive
  3. tar -zxvf apache-hive-2.3.3-bin.tar.gz
  4. mv apache-hive-2.3.3-bin apache-hive-2.3.3

### 安装目录为:/app/hive/apache-hive-2.3.3

3.配置环境变量
sudo vi /etc/profile
添加环境变量:

  1. export HIVE_HOME=/app/hive/apache-hive-2.3.3
  2. export PATH=$PATH:$HIVE_HOME/bin

:wq #保存退出

4.修改HIVE配置文件:
配置文件hive-env.sh (在原有的基础上修改,没有的项就添加):

  1. cd /app/hive/apache-hive-2.3.3/conf
  2. cp hive-env.sh.template hive-env.sh
  3. ###在文件中添加如下内容-- 去掉#,并把目录改为自己设定的目录
  4. export HADOOP_HEAPSIZE=1024
  5. export HADOOP_HOME=/app/hadoop/hadoop-2.7.7 #hadoop的安装目录
  6. export HIVE_CONF_DIR=/app/hive/apache-hive-2.3.3/conf
  7. export HIVE_HOME=/app/hive/apache-hive-2.3.3
  8. export HIVE_AUX_JARS_PATH=/app/hive/apache-hive-2.3.3/lib
  9. export JAVA_HOME=/app/lib/jdk

  

创建hdfs文件目录:

  1. cd /app/hive/apache-hive-2.3.3
  2. mkdir hive_site_dir
  3. cd hive_site_dir
  4. hdfs dfs -mkdir -p warehouse #使用这条命令的前提是hadoop已经安装好了
  5. hdfs dfs -mkdir -p tmp
  6. hdfs dfs -mkdir -p log
  7. hdfs dfs -chmod -R 777 warehouse
  8. hdfs dfs -chmod -R 777 tmp
  9. hdfs dfs -chmod -R 777 log
  10. 创建临时文件夹:
  11. cd /app/hive/apache-hive-2.3.3
  12. mkdir tmp

  

配置文件hive-site.xml (在原有的基础上修改):
cp hive-default.xml.template  hive-site.xml
vi hive-site.xml
>>配置一些数据库的信息 ConnectionURL/ConnectionUserName/ConnectionPassword/ConnectionDriverName

  1. <!--mysql database connection setting -->
  2. <property>
  3.   <name>javax.jdo.option.ConnectionDriverName</name>
  4.   <value>com.mysql.jdbc.Driver</value>
  5. </property>
  6.  
  7. <property>
  8.   <name>javax.jdo.option.ConnectionURL</name>
  9.   <value>jdbc:mysql://10.28.85.149:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8</value>
  10. </property>
  11.  
  12. <property>
  13.   <name>javax.jdo.option.ConnectionUserName</name>
  14.   <value>szprd</value>
  15. </property>
  16. <property>
  17.   <name>javax.jdo.option.ConnectionPassword</name>
  18.   <value>szprd</value>
  19. </property>

  

>>配置hdfs文件目录

  1. <property>
  2. <name>hive.exec.scratchdir</name>
  3. <!--<value>/tmp/hive</value>-->
  4. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/tmp</value>
  5. <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
  6. </property>
  7.  
  8. <property>
  9. <name>hive.metastore.warehouse.dir</name>
  10. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/warehouse</value>
  11. </property>
  12.  
  13. <property>
  14. <name>hive.exec.local.scratchdir</name>
  15. <!--<value>${system:java.io.tmpdir}/${system:user.name}</value> -->
  16. <value>/app/hive/apache-hive-2.3.3/tmp/${system:user.name}</value>
  17. <description>Local scratch space for Hive jobs</description>
  18. </property>
  19.  
  20. <property>
  21. <name>hive.downloaded.resources.dir</name>
  22. <!--<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>-->
  23. <value>/app/hive/apache-hive-2.3.3/tmp/${hive.session.id}_resources</value>
  24. <description>Temporary local directory for added resources in the remote file system.</description>
  25. </property>
  26.  
  27. <property>
  28. <name>hive.querylog.location</name>
  29. <!--<value>${system:java.io.tmpdir}/${system:user.name}</value>-->
  30. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/log/${system:user.name}</valu
  31. <description>Location of Hive run time structured log file</description>
  32. </property>
  33.  
  34. <property>
  35. <name>hive.metastore.schema.verification</name>
  36. <value>false</value>
  37. <description>
  38. Enforce metastore schema version consistency.
  39. True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic
  40. schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
  41. proper metastore schema migration. (Default)
  42. False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
  43. </description>
  44. </property>

修改完配置文件后,:wq 保存退出

5.下载合适版本的mysql驱动包,复制到HIVE安装目录的 lib目录下
https://dev.mysql.com/downloads/connector/j/

6.初始化数据库(在启动hive前一定要先执行这个命令哦,如果失败了,请查看数据库配置信息是否准确~ )

  1. cd /app/hive/apache-hive-2.3.3/bin
  2. ./schematool -initSchema -dbType mysql

  

7.启动hive
hive     #这里配置了环境变量后,可以在任意目录下执行 (/etc/profile)

8.实时查看日志启动hive命令(在hive安装目录的bin目录下执行):

./hive -hiveconf hive.root.logger=DEBUG,console

HBASE INSTALL

1.下载hbase安装包:  http://hbase.apache.org/downloads.html

2.解压: tar -zxvf  hbase-1.2.6.1-bin.tar.gz

3.配置环境变量: (加在最后面)
vi /etc/profile

  1. #HBase Setting
  2. export HBASE_HOME=/app/hbase/hbase-1.2.6.1
  3. export PATH=$PATH:$HBASE_HOME/bin

  

4.编辑配置文件: hbase-env.sh

  1. export HBASE_MANAGES_ZK=false
  2. export HBASE_PID_DIR=/app/hadoop/hadoop-2.7.7/pids #如果该目录不存在,则先创建
  3. export JAVA_HOME=/app/lib/jdk #指定JDK的安装目录

 

编辑配置文件: hbase-site.xml
在configuration节点添加如下配置:

  1. <property>
  2. <name>hbase.rootdir</name>
  3. <value>hdfs://192.168.1.202:9000/hbase</value>
  4. </property>
  5.  
  6. <property>
  7. <name>hbase.zookeeper.property.dataDir</name>
  8. <value>/home/vc/dev/MQ/ZK/zookeeper-3.4.12</value>
  9. </property>
  10.  
  11. <property>
  12. <name>zookeeper.znode.parent</name>
  13. <value>/hbase</value>
  14. </property>
  15.  
  16. <property>
  17. <name>hbase.cluster.distributed</name>
  18. <value>true</value>
  19. </property>
  20.  
  21. <property>
  22. <name>hbase.unsafe.stream.capability.enforce</name>
  23. <value>false</value>
  24. <description>
  25. Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem, denoted by arootdir with the 'file://' scheme, but be mindful of the NOTE below.
  26. WARNING: Setting this to false blinds you to potential data loss and inconsistent system state in the event of process and/or node failures.If HBase is complaining of an inability to use hsync or hflush it's most likely not a false positive.
  27. </description>
  28. </property>

  

5.启动zookeeper
进入zookeeper的安装目录下的bin目录,执行 ./zkServer.sh
然后启动客户端: ./zkCli.sh
启动成功后,输入: create /hbase hbase

6.启动hbase
进入Hbase的bin目录: ./start-hbase.sh
./hbase shell  #这里启动成功后就可以开始执行hbase相关命令了
list  #没有报错表示成功

7.web访问HBASE: http://10.28.85.149:16010/master-status   #ip为当前服务器的ip,端口为16010

#Sqoop install
1.下载安装包: https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/

2.解压: tar -zxvf  sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

更改文件名: mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7_hadoop-2.6.0

3. 配置环境变量:/etc/profile

  1. #Sqoop Setting
  2. export SQOOP_HOME=/app/sqoop/sqoop-1.4.7_hadoop-2.6.0
  3. export PATH=$PATH:$SQOOP_HOME/bin

  

4.将mysql的驱动包复制到 Sqoop安装目录的lib目录下

https://dev.mysql.com/downloads/connector/j/

5.编辑配置文件: sqoop的安装目录下的 conf下
vi sqoop-env.sh

  1. #Set path to where bin/hadoop is available
  2. export HADOOP_COMMON_HOME=/app/hadoop/hadoop-2.7.7
  3.  
  4. #Set path to where hadoop-*-core.jar is available
  5. export HADOOP_MAPRED_HOME=/app/hadoop/hadoop-2.7.7
  6.  
  7. #set the path to where bin/hbase is available
  8. export HBASE_HOME=/app/hbase/hbase-1.2.6.1
  9.  
  10. #Set the path to where bin/hive is available
  11. export HIVE_HOME=/app/hive/apache-hive-2.3.3
  12.  
  13. #Set the path for where zookeper config dir is
  14. export ZOOCFGDIR=/app/zookeeper/zookeeper-3.4.12

  

6,输入命令:

sqoop help  #查看相关的sqoop命令

sqoop version #查看sqoop的版本

 ps:

关于停止hbase的命令: stop-hbase.sh   ,出现关于pid的错误提示时,请参考这篇博文:https://blog.csdn.net/xiao_jun_0820/article/details/35222699

hadoop的安装教程:http://note.youdao.com/noteshare?id=0cae2da671de0f7175376abb8e705406

zookeeper的安装教程:http://note.youdao.com/noteshare?id=33e37b0967da40660920f755ba2c03f0

  1. # hadoop 伪分布式模式安装
  2. # 前提 JDK 安装成功
  3.  
  4. # 下载hadoop2.7.7
  5. ```
  6. cd /home/vc/dev/hadoop
  7.  
  8. wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
  9. ```
  10. # 解压缩
  11.  
  12. ```
  13. tar -zxvf hadoop-2.7.7.tar.gz
  14. ```
  15.  
  16. ## 配置hadoop的环境变量,在/etc/profile下追加 hadoop配置
  17.  
  18. ```
  19. # hadoop home setting
  20.  
  21. export HADOOP_HOME=/app/hadoop/hadoop-2.7.7
  22. export HADOOP_INSTALL=${HADOOP_HOME}
  23. export PATH=$PATH:$HADOOP_HOME/bin
  24. export PATH=$PATH:$HADOOP_HOME/sbin
  25. export HADOOP_MAPRED_HOME=${HADOOP_HOME}
  26. export HADOOP_COMMON_HOME=${HADOOP_HOME}
  27. export HADOOP_HDFS_HOME=${HADOOP_HOME}
  28. export YARN_HOME=${HADOOP_HOME}
  29. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  30. export HADOOP_INSTALL=$HADOOP_HOME
  31. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
  32.  
  33. ```
  34.  
  35. ## 修改 hadoop安装目录/etc/hadoop/hadoop-env.sh 文件
  36.  
  37. ```
  38. # The java implementation to use.
  39. export JAVA_HOME=/home/vc/dev/jdk/jdk1.8.0_161
  40. ```
  41. ### hadoop安装目录/etc/hadoop/core-site.xml
  42.  
  43. ```
  44. <configuration>
  45.  
  46. <!-- 指定hadoop运行时产生文件的存储路径;指定被hadoop使用的目录,用于存储数据文件。-->
  47. <property>
  48. <name>hadoop.tmp.dir</name>
  49. <value>/home/vc/dev/hadoop/hadoop-2.7.7/tmp</value>
  50. <description>Abase for other temporary directories.</description>
  51. </property>
  52. <!-- 指定HDFS老大(namenode)的通信地址指定默认的文件系统。 -->
  53. <property>
  54. <name>fs.defaultFS</name>
  55. <value>hdfs://192.168.1.202:9000</value>
  56. </property>
  57. </configuration>
  58.  
  59. ```
  60.  
  61. ### 配置HDFS ,etc/hadoop/hdfs-site.xml
  62.  
  63. ```
  64. <configuration>
  65. <!-- 设置namenode存放的路径 -->
  66. <property>
  67. <name>dfs.namenode.name.dir</name>
  68. <value>file:///home/vc/dev/hadoop/hadoop-2.7.7/hdfs/name</value>
  69. </property>
  70. <!-- 设置hdfs副本数量 -->
  71. <property>
  72. <name>dfs.replication</name>
  73. <value>1</value>
  74. </property>
  75. <!-- 设置datanode存放的路径 -->
  76. <property>
  77. <name>dfs.datanode.data.dir</name>
  78. <value>file:///home/vc/dev/hadoop/hadoop-2.7.7/hdfs/data</value>
  79. </property>
  80.  
  81. </configuration>
  82. ~
  83. ```
  84. ### 设置hadoop 伪分布式下免密登入,Hadoop集群节点之间的免密登入务必配置成功,不然有各种问题
  85.  
  86. 如果是单节点情况下免密登入测试`ssh localhost`,如果不能登入成功,执行下面命令:
  87.  
  88. ```
  89. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  90.  
  91. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  92.  
  93. chmod 0600 ~/.ssh/authorized_keys
  94.  
  95. ```
  96. ### 伪分布式下不需要配置/etc/hosts文件,真分布式下需要配置各主机和IP的映射关系。
  97.  
  98. # hadoop伪分布式下启动
  99. ## 配置 hdfs
  100. ```
  101. # 第一次启动hdfs需要格式化:出现询问输入Y or N,全部输Y即可
  102. bin/hdfs namenode -format
  103. # 启动 Start NameNode daemon and DataNode daemon: 启动HDFS,这个命令启动hadoop单节点集群
  104. sbin/start-dfs.sh
  105. ```
  106. 通过上面启动后即可在web页面浏览 NameNode 节点信息:
  107. ![](http://one17356s.bkt.clouddn.com/18-8-24/97813052.jpg)
  108.  
  109. ```
  110. # 通过hadoop 命令在hdfs上创建目录
  111. hadoop fs -mkdir /test
  112. # 或者通过这个命令
  113. hdfs dfs -mkdir /user
  114.  
  115. # 上传文件
  116.  
  117. ```
  118. ![](http://one17356s.bkt.clouddn.com/18-8-24/33727958.jpg)
  119.  
  120. ## 关闭 HDFS
  121.  
  122. ```
  123. ./sbin/stop-dfs.sh
  124.  
  125. ```
  126. ## 配置 yarn
  127. ### etc/hadoop/mapred-site.xml
  128.  
  129. ```
  130. <configuration>
  131.  
  132. <!-- 通知框架MR使用YARN -->
  133. <property>
  134. <name>mapreduce.framework.name</name>
  135. <value>yarn</value>
  136. </property>
  137. </configuration>
  138.  
  139. ```
  140. ### etc/hadoop/yarn-site.xml
  141. ```
  142. <configuration>
  143.  
  144. <!-- Site specific YARN configuration properties -->
  145.  
  146. <!-- reducer取数据的方式是mapreduce_shuffle -->
  147. <property>
  148. <name>yarn.nodemanager.aux-services</name>
  149. <value>mapreduce_shuffle</value>
  150. </property>
  151. <property>
  152. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  153. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  154. </property>
  155. </configuration>
  156. ```
  157.  
  158. ![](http://one17356s.bkt.clouddn.com/18-8-24/53993777.jpg)
  159. ![](http://one17356s.bkt.clouddn.com/18-8-24/28989509.jpg)
  160.  
  161. ## yarn 启动和停止
  162.  
  163. ```
  164. ./sbin/start-yarn.sh
  165. ./sbin/stop-yarn.sh
  166.  
  167. ```
  168.  
  169. ## 查看集群状态
  170.  
  171. ```
  172. ./bin/hadoop dfsadmin -report
  173. ```
  174. # 伪分布式下测试
  175.  
  176. ```
  177. //服务器上新建目录
  178. mkdir ~/input
  179. //进入服务器目录并将hadoop配置文件当做数据文件复制到input目录
  180. cd ~/input
  181. cp /app/hadoop/hadoop-2.7.7/etc/hadoop/*.xml ./
  182. //将 input下的文件上传到hdfs分布式文件系统中/one目录下
  183. hdfs dfs -put ./* /one
  184. //检查上传到hdfs中的文件
  185. hdfs dfs -ls /one
  186. //执行jar文件,务必保证计算结果目录 /output 在hdfs上不存在。不然报错
  187. hadoop jar /app/hadoop/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep /one /output 'dfs[a-z.]+'
  188. //将计算结果目录导出到服务器下~/input目录中
  189. hdfs dfs -get /output
  190. // 查看内容
  191. cat output/*
  192.  
  193. ```
  194. ---
  195.  
  196. # ZK 安装
  197. # 下载zk解压并安装:(zookeeper-3.4.9.tar.gz)
  198. # 设置环境变量
  199. ![](http://one17356s.bkt.clouddn.com/17-11-2/30838835.jpg)
  200. # 改配置文件(配置文件存放在$ZOOKEEPER_HOME/conf/目录下,将zoo_sample.cfg文件名称改为zoo.cfg)
  201. 配置说明:
  202. - tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
  203. - dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
  204. - clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
  205.  
  206. ![](http://one17356s.bkt.clouddn.com/18-7-8/79348236.jpg)
  207. 4.1单机模式
  208. - 下载zookeeper的安装包之后, 解压到合适目录. 进入zookeeper目录下的conf子目录, 创建`cp zoo_sample.cfg zoo.cfg`根据模板创建配置文件,并配置如下参数。
  209. - tickTime=2000
  210. - dataDir=/home/vc/dev/MQ/ZK/data
  211. - dataLogDir=/home/vc/dev/MQ/ZK/log
  212. - clientPort=2181
  213. ## 每个参数的含义说明
  214.  
  215. - tickTime: zookeeper中使用的tick基本时间单位, 毫秒值.
  216. - dataDir: 数据目录. 可以是任意目录.
  217. - dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
  218. - clientPort: 监听client连接的端口号
  219.  
  220. # 启动zk
  221. `/dev/Zk/zookeeper-3.4.9/bin$ ./zkServer.sh start`
  222. ![](http://one17356s.bkt.clouddn.com/17-11-2/76638495.jpg)
  223.  
  224. # 查看是否起来
  225. 使用命令:`netstat -antp | grep 2181`
  226. ![](http://one17356s.bkt.clouddn.com/17-11-2/15616237.jpg)
  227.  
  228. # 通过zCl.sh链接到zk服务
  229.  
  230. ```
  231. ./zkCli.sh -server localhost:2181 链接到本机zk服务
  232. history 执行命令
  233. quit 客户端断开zkserver链接
  234.  
  235. ```
  236. ![](http://one17356s.bkt.clouddn.com/18-8-27/4122129.jpg)
  237.  
  238. # 关闭Zk服务
  239. `./zkServer.sh stop`
  240.  
  241. ---
  242.  
  243. # [HIVE SQOOP HBASE安装博客链接:](https://www.cnblogs.com/DFX339/p/9550213.html)
  244. # HIVE-INSTALL
  245. - 下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/
  246. - 上传到Linux指定目录,解压:
  247.  
  248. ```
  249. mkdir hive
  250. mv apache-hive-2.3.3-bin.tar.gz hive
  251. tar -zxvf apache-hive-2.3.3-bin.tar.gz
  252. mv apache-hive-2.3.3-bin apache-hive-2.3.3
  253. ### 安装目录为:/app/hive/apache-hive-2.3.3
  254. ```
  255.  
  256. - 配置环境变量:
  257.  
  258. ```
  259. sudo vi /etc/profile
  260. 添加:export HIVE_HOME=/app/hive/apache-hive-2.3.3
  261. export PATH=$PATH:$HIVE_HOME/bin
  262. :wq #保存退出
  263. ```
  264.  
  265. - 修改HIVE配置文件:
  266. - 配置文件hive-env.sh (在原有的基础上修改,没有的项就添加):
  267.  
  268. ```
  269. cd /app/hive/apache-hive-2.3.3/conf
  270. cp hive-env.sh.template hive-env.sh
  271. 在文件中添加如下内容(去掉#,并把目录改为自己设定的目录)
  272. export HADOOP_HEAPSIZE=1024
  273. export HADOOP_HOME=/app/hadoop/hadoop-2.7.7 #hadoop的安装目录
  274. export HIVE_CONF_DIR=/app/hive/apache-hive-2.3.3/conf
  275. export HIVE_HOME=/app/hive/apache-hive-2.3.3
  276. export HIVE_AUX_JARS_PATH=/app/hive/apache-hive-2.3.3/lib
  277. export JAVA_HOME=/app/lib/jdk
  278. ```
  279.  
  280. - 创建hdfs文件目录:
  281.  
  282. ```
  283. cd /app/hive/apache-hive-2.3.3
  284. mkdir hive_site_dir
  285. cd hive_site_dir
  286. hdfs dfs -mkdir -p warehouse #使用这条命令的前提是hadoop已经安装好了
  287. hdfs dfs -mkdir -p tmp
  288. hdfs dfs -mkdir -p log
  289. hdfs dfs -chmod -R 777 warehouse
  290. hdfs dfs -chmod -R 777 tmp
  291. hdfs dfs -chmod -R 777 log
  292. 创建临时文件夹:
  293. cd /app/hive/apache-hive-2.3.3
  294. mkdir tmp
  295. ```
  296.  
  297. - 配置文件hive-site.xml (在原有的基础上修改):
  298.  
  299. ```
  300. cp hive-default.xml.template hive-site.xml
  301. vi hive-site.xml
  302. ```
  303.  
  304. - 配置一些数据库的信息 ConnectionURL/ConnectionUserName/ConnectionPassword/ConnectionDriverName
  305.  
  306. ```
  307. <!--mysql database connection setting -->
  308. <property>
  309. <name>javax.jdo.option.ConnectionDriverName</name>
  310. <value>com.mysql.jdbc.Driver</value>
  311. </property>
  312.  
  313. <property>
  314. <name>javax.jdo.option.ConnectionURL</name>
  315. <value>jdbc:mysql://10.28.85.149:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
  316. </property>
  317.  
  318. <property>
  319. <name>javax.jdo.option.ConnectionUserName</name>
  320. <value>szprd</value>
  321. </property>
  322. <property>
  323. <name>javax.jdo.option.ConnectionPassword</name>
  324. <value>szprd</value>
  325. </property>
  326. ```
  327.  
  328. - 配置hdfs文件目录
  329.  
  330. ```
  331. <property>
  332. <name>hive.exec.scratchdir</name>
  333. <!--<value>/tmp/hive</value>-->
  334. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/tmp</value>
  335. <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  336. </property>
  337.  
  338. <property>
  339. <name>hive.metastore.warehouse.dir</name>
  340. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/warehouse</value>
  341. </property>
  342.  
  343. <property>
  344. <name>hive.exec.local.scratchdir</name>
  345. <!--<value>${system:java.io.tmpdir}/${system:user.name}</value> -->
  346. <value>/app/hive/apache-hive-2.3.3/tmp/${system:user.name}</value>
  347. <description>Local scratch space for Hive jobs</description>
  348. </property>
  349.  
  350. <property>
  351. <name>hive.downloaded.resources.dir</name>
  352. <!--<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>-->
  353. <value>/app/hive/apache-hive-2.3.3/tmp/${hive.session.id}_resources</value>
  354. <description>Temporary local directory for added resources in the remote file system.</description>
  355. </property>
  356.  
  357. <property>
  358. <name>hive.querylog.location</name>
  359. <!--<value>${system:java.io.tmpdir}/${system:user.name}</value>-->
  360. <value>/app/hive/apache-hive-2.3.3/hive_site_dir/log/${system:user.name}</valu
  361. <description>Location of Hive run time structured log file</description>
  362. </property>
  363.  
  364. <property>
  365. <name>hive.metastore.schema.verification</name>
  366. <value>false</value>
  367. <description>
  368. Enforce metastore schema version consistency.
  369. True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic
  370. schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
  371. proper metastore schema migration. (Default)
  372. False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
  373. </description>
  374. </property>
  375. ```
  376.  
  377. **修改完hive-site.xml 配置文件后,wq 保存退出**
  378.  
  379. - 下载合适版本的mysql驱动包,放到HIVE安装目录的 lib目录下
  380. https://dev.mysql.com/downloads/connector/j/
  381.  
  382. - 始化数据库(在启动hive前一定要先执行这个命令哦,如果失败了,请查看数据库配置信息是否准确~
  383.  
  384. ```
  385. cd /app/hive/apache-hive-2.3.3/bin
  386. ./schematool -initSchema -dbType mysql
  387. ```
  388.  
  389. - 启动hive
  390.  
  391. `hive #这里配置了环境变量后(/etc/profile),可以在任意目录下执行 `
  392.  
  393. - 实时查看日志启动hive命令(在hive安装目录的bin目录下执行): `./hive -hiveconf hive.root.logger=DEBUG,console`
  394.  
  395. ---
  396.  
  397. # HBASE INSTALL
  398. - [下载hbase安装包:](http://hbase.apache.org/downloads.html)
  399.  
  400. - 解压: `tar -zxvf hbase-1.2.6.1-bin.tar.gz`
  401.  
  402. - 配置环境变量: (加在最后面)
  403.  
  404. ```
  405. vi /etc/profile
  406. #HBase Setting
  407. export HBASE_HOME=/app/hbase/hbase-1.2.6.1
  408. export PATH=$PATH:$HBASE_HOME/bin
  409. ```
  410.  
  411. - 编辑配置文件: `hbase-env.sh`
  412.  
  413. ```
  414. # 默认为ture,表示使用内建的zk,false使用外部zk系统
  415. export HBASE_MANAGES_ZK=false
  416. export HBASE_PID_DIR=/app/hadoop/hadoop-2.7.7/pids #如果该目录不存在,则先创建
  417. export JAVA_HOME=/app/lib/jdk #指定JDK的安装目录
  418. ```
  419.  
  420. - 编辑配置文件: `hbase-site.xml`
  421. configuration节点添加如下配置:
  422.  
  423. ```
  424. <configuration>
  425. <!-- 备份数据份数 -->
  426. <name>dfs.replication</name>
  427.  
  428. <value>1</value>
  429.  
  430. </property>
  431.  
  432. <!-- 配置hbase 在hadoop 中的根目录 -->
  433. <property>
  434. <name>hbase.rootdir</name>
  435. <value>hdfs://10.28.85.149:9000/hbase</value>
  436. </property>
  437.  
  438. <!-- zk 监听的端口号,必须和zk系统监听的端口一致 -->
  439. <property>
  440. <name>hbase.zookeeper.property.clientPort</name>
  441. <value>2181</value>
  442. </property>
  443. <!-- zk 属性文件中dataDir属性设置值一致 -->
  444. <property>
  445. <name>hbase.zookeeper.property.dataDir</name>
  446. <value>/app/zookeeper/data</value>
  447. </property>
  448.  
  449. <!-- zk 根 znode 节点 -->
  450. <property>
  451. <name>zookeeper.znode.parent</name>
  452. <value>/hbase</value>
  453. </property>
  454.  
  455. <!-- hbase 是否是集群安装 -->
  456. <property>
  457. <name>hbase.cluster.distributed</name>
  458. <value>true</value>
  459. </property>
  460. <!-- 如果你使用本地文件系统,LocalFileSystem 这个属性设置成 false -->
  461. <property>
  462. <name>hbase.unsafe.stream.capability.enforce</name>
  463. <value>true</value>
  464. <description>
  465. Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem, denoted by arootdir with the 'file://' scheme, but be mindful of the NOTE below.
  466. WARNING: Setting this to false blinds you to potential data loss and inconsistent system state in the event of process and/or node failures.If HBase is complaining of an inability to use hsync or hflush it's most likely not a false positive.
  467. </description>
  468. </property>
  469. </configuration>
  470. ```
  471.  
  472. - 启动zookeeper
  473. 进入zookeeper的安装目录下的bin目录,执行 `./zkServer.sh`
  474.  
  475. 然后启动客户端: ` ./zkCli.sh`
  476.  
  477. 启动成功后,输入: ` create /hbase hbase`
  478.  
  479. - 启动hbase
  480.  
  481. 进入Hbasebin目录: `./start-hbase.sh`
  482.  
  483. ```
  484. ./hbase shell #这里启动成功后就可以开始执行hbase相关命令了
  485. list #查看当前hbase库中的所有表,没有报错表示成功
  486. ```
  487.  
  488. - web访问HBASE: http://10.28.85.149:16010/master-status #ip为当前服务器的ip,端口为16010
  489.  
  490. ---
  491.  
  492. # SQOOP INSTALL
  493.  
  494. - [下载安装包](https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/)
  495.  
  496. - 解压 ` tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz`
  497.  
  498. 更改文件名: `mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7_hadoop-2.6.0`
  499.  
  500. - 配置环境变量:
  501.  
  502. ```
  503. #Sqoop Setting
  504. export SQOOP_HOME=/app/sqoop/sqoop-1.4.7_hadoop-2.6.0
  505. export PATH=$PATH:$SQOOP_HOME/bin
  506. ```
  507.  
  508. - mysql的驱动包复制到 Sqoop安装目录的lib目录下
  509. 下载地址:https://dev.mysql.com/downloads/connector/j/
  510.  
  511. - 编辑配置文件: sqoop的安装目录下的 conf
  512.  
  513. ```
  514. vi sqoop-env.sh
  515.  
  516. #Set path to where bin/hadoop is available
  517. export HADOOP_COMMON_HOME=/app/hadoop/hadoop-2.7.7
  518.  
  519. #Set path to where hadoop-*-core.jar is available
  520. export HADOOP_MAPRED_HOME=/app/hadoop/hadoop-2.7.7
  521.  
  522. #set the path to where bin/hbase is available
  523. export HBASE_HOME=/app/hbase/hbase-1.2.6.1
  524.  
  525. #Set the path to where bin/hive is available
  526. export HIVE_HOME=/app/hive/apache-hive-2.3.3
  527.  
  528. #Set the path for where zookeper config dir is
  529. export ZOOCFGDIR=/app/zookeeper/zookeeper-3.4.12
  530. ```
  531.  
  532. - 测试sqoop的安装
  533. - sqoop help #可以查看到sqoop的相关命令
  534.  
  535. - 测试sqoop的连接: 查看此连接信息下的所有数据库
  536.  
  537. ```
  538. sqoop list-databases \
  539. --connect jdbc:mysql://10.28.85.148:3306/data_mysql2hive \
  540. --username root \
  541. --password Abcd1234
  542. ```
  543.  
  544. ---
  545.  
  546. # oozie 安装
  547. # 安装基于oozie-4.0.0-cdh5.3.6.tar.gz oozie 版本
  548. 安装之前准备条件:
  549. - 可用的mysql数据库
  550. - 已经安装好的hadoop集群
  551. - oozie 最终编译好的安装包中 `oozie-server` 就是一个tomcat环境,不用另外安装tomcat 环境。
  552. ## 安装
  553. - 下载编译后的压缩包:`wget http://archive.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.3.6.tar.gz`
  554. - 解压缩到所指定的目录 :`tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz`,这里使用的目录是: `/app/oozie`
  555. - 设置全局环境变量:`sudo vim /etc/profile`
  556. ```
  557.  
  558. #oozie setting
  559. export OOZIE_HOME=/app/oozie/oozie-4.0.0-cdh5.3.6
  560. export PATH=$PATH:$OOZIE_HOME/bin
  561. ```
  562.  
  563. - 设置 ` Oozie安装目录/conf/oozie-env.sh ` 设置环境变量
  564. 同时oozieweb console 的端口也在这里进行设置:
  565. `OOZIE_HTTP_PORT ` 设置 oozie web 服务的监听端口,默认是11000
  566. ```
  567.  
  568. export OOZIE_CONF=${OOZIE_HOME}/conf
  569. export OOZIE_DATA=${OOZIE_HOME}/data
  570. export OOZIE_LOG=${OOZIE_HOME}/logs
  571. export CATALINA_BASE=${OOZIE_HOME}/oozie-server
  572. export CATALINA_HOME=${OOZIE_HOME}/oozie-server
  573. ```
  574.  
  575. - Oozie根目录下创建libext文件夹,并将Oozie依赖的其他第三方jar移动到该目录下面。`mkdir libext`
  576.  
  577. - 将下载的ext2.2添加到 libext 目录 :` cp ext-2.2.zip oozie-5.0.0/libext/`
  578. - 添加hadoop lib下的包到libext目录,进入libext目录`cp /app/hadoop/hadoop-2.7.7/share/hadoop/*/*.jar ./` ` cp /app/hadoop/hadoop-2.7.7/share/hadoop/*/lib/*.jar ./`
  579. - 添加对于存储元数据的mysql数据库的驱动(`mysql-connector-java-5.1.41.jar`)
  580.  
  581. - hadoop 设置oozie 代理用户设置:
  582. 只需要替换xxx 为你oozie提交任务的用户名即可。
  583. - hadoop.proxyuser.**xxx**.hosts
  584.  
  585. - hadoop.proxyuser.**xxx**.groups
  586. ```
  587. <!-- oozie -->
  588. <property>
  589. <name>hadoop.proxyuser.imodule.hosts</name>
  590. <value>*</value>
  591. </property>
  592. <property>
  593. <name>hadoop.proxyuser.imodule.groups</name>
  594. <value>*</value>
  595. </property>
  596. ```
  597.  
  598. - hdfs上设置Oozie的公用jar文件夹,
  599.  
  600. hadoop的默认端口号是8020,我改成了9000,所以这里注意一下:
  601.  
  602. 遇到一个问题是:NameNode 处于 safe mode,需要关闭安全模式:`hdfs dfsadmin -safemode leave`
  603.  
  604. ```
  605. oozie-setup.sh sharelib create -fs hdfs://10.28.85.149:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
  606. ```
  607. - 创建Ooziewar文件
  608.  
  609. 先将hadoop相关包,mysql相关包,ext相关压缩包放到libext文件夹中,然后运行:`oozie-setup.sh prepare-war` 命令创建war包。
  610.  
  611. - oozie 安装目录conf/oozie-site.xml
  612.  
  613. oozie.service.HadoopAccessorService.hadoop.configurations属性的值为本地hadoop目录的配置文件路径:
  614. ```
  615. <configuration>
  616. <property>
  617. <name>oozie.services</name>
  618. <value>
  619. org.apache.oozie.service.JobsConcurrencyService,
  620. org.apache.oozie.service.SchedulerService,
  621. org.apache.oozie.service.InstrumentationService,
  622. org.apache.oozie.service.MemoryLocksService,
  623. org.apache.oozie.service.CallableQueueService,
  624. org.apache.oozie.service.UUIDService,
  625. org.apache.oozie.service.ELService,
  626. org.apache.oozie.service.AuthorizationService,
  627. org.apache.oozie.service.UserGroupInformationService,
  628. org.apache.oozie.service.HadoopAccessorService,
  629. org.apache.oozie.service.URIHandlerService,
  630. org.apache.oozie.service.DagXLogInfoService,
  631. org.apache.oozie.service.SchemaService,
  632. org.apache.oozie.service.LiteWorkflowAppService,
  633. org.apache.oozie.service.JPAService,
  634. org.apache.oozie.service.StoreService,
  635. org.apache.oozie.service.CoordinatorStoreService,
  636. org.apache.oozie.service.SLAStoreService,
  637. org.apache.oozie.service.DBLiteWorkflowStoreService,
  638. org.apache.oozie.service.CallbackService,
  639. org.apache.oozie.service.ActionService,
  640. org.apache.oozie.service.ShareLibService,
  641. org.apache.oozie.service.ActionCheckerService,
  642. org.apache.oozie.service.RecoveryService,
  643. org.apache.oozie.service.PurgeService,
  644. org.apache.oozie.service.CoordinatorEngineService,
  645. org.apache.oozie.service.BundleEngineService,
  646. org.apache.oozie.service.DagEngineService,
  647. org.apache.oozie.service.CoordMaterializeTriggerService,
  648. org.apache.oozie.service.StatusTransitService,
  649. org.apache.oozie.service.PauseTransitService,
  650. org.apache.oozie.service.GroupsService,
  651. org.apache.oozie.service.ProxyUserService,
  652. org.apache.oozie.service.XLogStreamingService,
  653. org.apache.oozie.service.JvmPauseMonitorService
  654. </value>
  655. </property>
  656. <!-- 配置hadoop etc/hadoop目录 -->
  657. <property>
  658. <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
  659. <value>*=/app/hadoop/hadoop-2.7.7/etc/hadoop</value>
  660. </property>
  661. <property>
  662. <name>oozie.service.JPAService.create.db.schema</name>
  663. <value>true</value>
  664. </property>
  665.  
  666. <property>
  667. <name>oozie.service.JPAService.jdbc.driver</name>
  668. <value>com.mysql.jdbc.Driver</value>
  669. </property>
  670. <property>
  671. <name>oozie.service.JPAService.jdbc.url</name>
  672. <value>jdbc:mysql://10.28.85.148:3306/ooize?createDatabaseIfNotExist=true</value>
  673. </property>
  674.  
  675. <property>
  676. <name>oozie.service.JPAService.jdbc.username</name>
  677. <value>root</value>
  678. </property>
  679.  
  680. <property>
  681. <name>oozie.service.JPAService.jdbc.password</name>
  682. <value>Abcd1234</value>
  683. </property>
  684.  
  685. </configuration>
  686. ```
  687.  
  688. - 运行Oozie服务并检查是否安装完成
  689. `oozied.sh run 或者oozied.sh start` (前者在前端运行,后者在后台运行)
  690. - 关闭oozie 服务: `oozied.sh stop`
  691. - 命令行检查oozie web 状态(`oozie admin -oozie http://10.28.85.149:11000/oozie -status `) 返回:`System mode: NORMAL`
  692. - 然后使用shareliblist命令查看相关内容 `oozie admin -shareliblist -oozie http://localhost:11000/oozie`
  693. - 页面访问:`http://10.28.85.149:11000/oozie/`
  694.  
  695. **遇到 了一个问题**
  696.  
  697. ```
  698. Sep 03, 2018 4:36:47 PM org.apache.catalina.core.StandardWrapperValve invoke
  699. SEVERE: Servlet.service() for servlet jsp threw exception
  700. java.lang.NullPointerException
  701. at org.apache.jsp.index_jsp._jspInit(index_jsp.java:25)
  702. at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
  703. at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
  704. at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
  705. at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
  706. at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
  707. at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  708. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  709. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  710. at org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:154)
  711. at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:594)
  712. at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:553)
  713. at org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:159)
  714. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  715. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  716. at org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:84)
  717. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  718. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  719. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  720. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  721. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  722. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  723. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  724. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  725. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  726. at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
  727. at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  728. at java.lang.Thread.run(Thread.java:745)
  729. ```
  730. 问题原因是工程目录下`WEB-INF/lib`目录和tomcatlib目录都有servlet-api.jar ,jsp-api.jar 文件造成的。
  731. `/app/oozie/oozie-4.0.0-cdh5.3.6/oozie-server/webapps/oozie/WEB-INF/lib ` `/app/oozie/oozie-4.0.0-cdh5.3.6/oozie-server/lib`两个目录下有具有相同的jar包造成了冲突。`/app/oozie/oozie-4.0.0-cdh5.3.6/oozie-server`这个目录下就是oozie-servertomcat 环境。目录下的lib目录就是tomcat运行时jar包。
  732.  
  733. 解决办法:将`/app/oozie/oozie-4.0.0-cdh5.3.6/oozie-server/webapps/oozie/WEB-INF/lib `目录下的:servlet-api-2.5-6.1.14.jar, servlet-api-2.5.jar, jsp-api-2.1.jar 三个文件删除即可。
  734.  
  735. 然后就可以顺利启动了
  736. ![](http://one17356s.bkt.clouddn.com/18-9-3/48205608.jpg)
  737.  
  738. ---
  739.  
  740. Pig的安装
  741. # 前提
  742. ### hadoop 2.7.7 已安装
  743. ### jdk1.7+
  744.  
  745. # 安装
  746. ```
  747. tar -xzvf pig-0.17.0.tar.gz
  748.  
  749. # Pig setting
  750.  
  751. export PIG_HOME=/app/pig/pig-0.17.0
  752. export PATH=$PATH:$PIG_HOME/bin
  753. ```
  754. # 测试
  755.  
  756. ```
  757. -- 本地模式
  758. pig -x local
  759. -- mapreduce模式
  760. pig -x mapreduce
  761. ```
  762. ![](http://one17356s.bkt.clouddn.com/18-8-28/13040171.jpg)
  763.  
  764. ---

Hive/Hbase/Sqoop的安装教程的更多相关文章

  1. Hive/hbase/sqoop的基本使用教程~

    Hive/hbase/sqoop的基本使用教程~ ###Hbase基本命令start-hbase.sh     #启动hbasehbase shell      #进入hbase编辑命令 list  ...

  2. Centos搭建mysql/Hadoop/Hive/Hbase/Sqoop/Pig

    目录: 准备工作 Centos安装 mysql Centos安装Hadoop Centos安装hive JDBC远程连接Hive Hbase和hive整合 Centos安装Hbase 准备工作: 配置 ...

  3. HIVE 2.1.0 安装教程。(数据源mysql)

    前期工作 安装JDK 安装Hadoop 安装MySQL 安装Hive 下载Hive安装包 可以从 Apache 其中一个镜像站点中下载最新稳定版的 Hive, apache-hive-2.1.0-bi ...

  4. Hadoop 2.6.0-cdh5.4.0集群环境搭建和Apache-Hive、Sqoop的安装

    搭建此环境主要用来hadoop的学习,因此我们的操作直接在root用户下,不涉及HA. Software: Hadoop 2.6.0-cdh5.4.0 Apache-hive-2.1.0-bin Sq ...

  5. apache-hadoop-1.2.1、hbase、hive、mahout、nutch、solr安装教程

    1 软件环境: VMware8.0 Ubuntu-12.10-desktop-i386 jdk-7u40-linux-i586.tar.gz hadoop-1.2.1.tar.gz eclipse-d ...

  6. CDH5上安装Hive,HBase,Impala,Spark等服务

    Apache Hadoop的服务的部署比較繁琐.须要手工编辑配置文件.下载依赖包等.Cloudera Manager以GUI的方式的管理CDH集群,提供向导式的安装步骤.因为须要对Hive,HBase ...

  7. Hadoop、Zookeeper、Hbase分布式安装教程

    参考: Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0   Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS ZooKeeper-3.3 ...

  8. hive安装教程本地模式

    1.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. a.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) b.本地模式(本地 ...

  9. 3.12-3.16 Hbase集成hive、sqoop、hue

    一.Hbase集成hive https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.说明 Hive与HBase整合在一起 ...

随机推荐

  1. 第 3 章 镜像 - 021 - Docker 镜像小结

    镜像小结 镜像的常用操作子命令: images    显示镜像列表 history   显示镜像构建历史 commit    从容器创建新镜像 build     从 Dockerfile 构建镜像 ...

  2. Windows 7 Update Settings Disabled (Important Updates Grayed Out)

    This worked for me: 1) Hold WindowsKey + R     (is hold Start & press R on your keyboard) 2) Typ ...

  3. 非常好的 gdb tui 的文章

    http://beej.us/guide/bggdb/ Help Commands help command Get help on a certain command apropos keyword ...

  4. PC端、移动端的页面适配及兼容处理

    转自 一.关于移动端兼容性 目前针对跨终端的方案,主要分为两大阵营:一套资源Vs两套资源. 第一种是通过响应式或页面终端判断去实现一套资源适配所有终端: 第二种是通过终端判断分别调取两套资源以适配所有 ...

  5. Learn Python3 the hard way 第一天总结 命令行(1)

    附录-命令行快速入门(1) command line interface 简称 CLI ,可以在mac OS 上通过一些输入进行一些操作. 1如何在迷路后怎样回家 命令: pwd:打印工作目录cd 更 ...

  6. android -------- ConstraintLayout介绍 (一)

    ConstraintLayout 翻译为 约束布局,也有人把它称作 增强型的相对布局,由 2016 年 Google I/O 推出. 扁平式的布局方式,无任何嵌套,减少布局的层级,优化渲染性能.从支持 ...

  7. C++ string的用法和例子

    使用场合: string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且st ...

  8. json字符串转Map、json数组

    json数组转map public static void main(String[] args){ String strArr = "[{\"0\":\"zh ...

  9. Event IO Process

    先了解一下process和event loop EventLoop 除了异步Server和Client库之外,Swoole扩展还提供了直接操作底层epoll/kqueue事件循环的接口.可将其他扩展创 ...

  10. object对象转string字符串

    var obj = {}; obj=new Array; obj.name='小王'; obj.sex='男'; var str=JSON.string(obj)