HiveServer2配置

翻譯: https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2
版本: 2.3.3

HiveServer2

HiveServer2(HS2)是服務(wù)器接口扬蕊,使遠(yuǎn)程客戶端執(zhí)行對(duì)hive的查詢和檢索結(jié)果(更詳細(xì)的介紹這里)搀别。目前基于Thrift RPC的實(shí)現(xiàn),是HiveServer的改進(jìn)版本尾抑,并支持多客戶端并發(fā)和身份驗(yàn)證歇父。它旨在為JDBC和ODBC等開(kāi)放API客戶端提供更好的支持。

本文檔介紹如何設(shè)置服務(wù)器。HiveServer2客戶端文檔中描述了如何使用客戶翎冲。

如何配置

hive-site.xml文件中的配置屬性

hive.server2.thrift.min.worker.threads - 工作線程的最小數(shù)量垂睬,默認(rèn)為5。

hive.server2.thrift.max.worker.threads - 最大工作線程數(shù)抗悍,默認(rèn)值為500羔飞。

hive.server2.thrift.port - 偵聽(tīng)的TCP端口號(hào),默認(rèn)為10000檐春。

hive.server2.thrift.bind.host - 綁定到的TCP接口。

有關(guān)可以為HiveServer2設(shè)置的其他屬性么伯,請(qǐng)參閱“配置屬性”文檔中的HiveServer2。

可選的環(huán)境設(shè)置

HIVE_SERVER2_THRIFT_BIND_HOST - 要綁定的可選TCP主機(jī)接口。覆蓋配置文件設(shè)置寺庄。
HIVE_SERVER2_THRIFT_PORT - 要偵聽(tīng)的可選TCP端口號(hào)耀石,默認(rèn)為10000.覆蓋配置文件設(shè)置。

以HTTP模式運(yùn)行

HiveServer2支持通過(guò)HTTP傳輸發(fā)送Thrift RPC消息(Hive 0.13以上硬爆,請(qǐng)參閱HIVE-4752)欣舵。這對(duì)于支持客戶端和服務(wù)器之間的代理中介(例如缀磕,出于負(fù)載平衡或安全原因)特別有用缘圈。目前,您可以在TCP模式或HTTP模式下運(yùn)行HiveServer2糟把,但不能同時(shí)運(yùn)行這兩種模式绢涡。對(duì)于相應(yīng)的JDBC URL,請(qǐng)檢查此鏈接:HiveServer2客戶端 - JDBC連接URL遣疯。使用以下設(shè)置啟用和配置HTTP模式:

設(shè)置 默認(rèn) 描述
hive.server2.transport.mode binary 設(shè)置為http以啟用HTTP傳輸模式
hive.server2.thrift.http.port 10001 要監(jiān)聽(tīng)的HTTP端口號(hào)
hive.server2.thrift.http.max.worker.threads 500 服務(wù)器池中的最大工作線程數(shù)
hive.server2.thrift.http.min.worker.threads 5 服務(wù)器池中的最小工作線程數(shù)
hive.server2.thrift.http.path cliservice 服務(wù)端點(diǎn)(service endpoint)
基于Cookie的認(rèn)證

HIVE-9709HIVE-9710在HTTP模式下為HiveServer2引入了基于cookie的認(rèn)證雄可。可以在此處找到與此更改相關(guān)的HiveServer2參數(shù)(hive.server2.thrift.http.cookie.*)缠犀。

可選全局初始化文件

全局init文件可以放置在配置的 hive.server2.global.init.file.location位置(Hive 0.14以后数苫,參見(jiàn)HIVE-5160HIVE-7497HIVE-8138)辨液。這可以是init文件本身的路徑虐急,也可以是包含名為“.hiverc”的目錄。

init文件列出了一組將為此HiveServer2實(shí)例的用戶運(yùn)行的命令室梅,例如注冊(cè)一組標(biāo)準(zhǔn)的jar和函數(shù)戏仓。

日志配置

HiveServer2操作日志可用于Beeline客戶端(Hive 0.14以上)。這些參數(shù)配置記錄:

如何開(kāi)始

$HIVE_HOME/bin/hiveserver2

OR

$HIVE_HOME/bin/hive --service hiveserver2

Usage信息

-H--help選項(xiàng)顯示用法消息亡鼠,例如:

`$HIVE_HOME/bin/hive --service hiveserver2 -H`

`Starting HiveServer2`

`usage: hiveserver2`

`-H,--help                        Print help information`

`--hiveconf <property=value>   Use value for given property`

認(rèn)證/安全配置

HiveServer2支持匿名(不啟用認(rèn)證)和使用SASL赏殃,Kerberos(GSSAPI),通過(guò)LDAP间涵,可插入自定義認(rèn)證和可插入認(rèn)證模塊(PAM仁热,支持Hive 0.13以上)。

配置

  • 認(rèn)證模式:
    hive.server2.authentication - 身份驗(yàn)證模式勾哩,默認(rèn)為NONE抗蠢。可選項(xiàng)是NONE(使用普通SASL)思劳,NOSASL迅矛,KERBEROS,LDAP潜叛,PAM和CUSTOM秽褒。

  • 設(shè)置啟用KERBEROS模式:

hive.server2.authentication.kerberos.principal - 服務(wù)器的Kerberos主體。

hive.server2.authentication.kerberos.keytab - 服務(wù)器主體的Keytab威兜。

  • 設(shè)置LDAP模式的以下內(nèi)容:

hive.server2.authentication.ldap.url - LDAP URL(例如销斟,ldap://hostname.com:389)。

hive.server2.authentication.ldap.baseDN - LDAP基本DN椒舵。(對(duì)AD可選)

hive.server2.authentication.ldap.Domain - LDAP域蚂踊。(Hive 0.12.0及更高版本)。

有關(guān) Hive 1.3.0及更高版本中的其他LDAP配置參數(shù)笔宿,請(qǐng)參閱HiveServer2中的LDAP Atn Provider的用戶和組過(guò)濾器支持犁钟。

  • 設(shè)置自定義模式:

hive.server2.custom.authentication.class - 實(shí)現(xiàn)org.apache.hive.service.auth.PasswdAuthenticationProvider接口的定制認(rèn)證類棱诱。

Impersonation

默認(rèn)情況下军俊,HiveServer2以提交查詢的用戶身份執(zhí)行查詢處理。但是捧存,如果以下參數(shù)設(shè)置為false粪躬,則查詢將以運(yùn)行hiveserver2進(jìn)程的用戶身份運(yùn)行。

hive.server2.enable.doAs - 模擬連接的用戶昔穴,默認(rèn)為true镰官。

要防止在不安全模式下發(fā)生內(nèi)存泄漏,請(qǐng)通過(guò)將以下參數(shù)設(shè)置為true來(lái)禁用文件系統(tǒng)緩存(請(qǐng)參閱 HIVE-4501):

fs.hdfs.impl.disable.cache - 禁用HDFS文件系統(tǒng)緩存吗货,默認(rèn)為false泳唠。

fs.file.impl.disable.cache - 禁用本地文件系統(tǒng)緩存,默認(rèn)為false宙搬。

完整性/機(jī)密性保護(hù)*

Hive JDBC驅(qū)動(dòng)程序與HiveServer2之間進(jìn)行通信的完整性保護(hù)和機(jī)密性保護(hù)(不僅僅是缺省認(rèn)證)已啟用(Hive 0.12以上笨腥,請(qǐng)參閱HIVE-4911)。您可以使用SASL QOP屬性來(lái)配置它勇垛。

  • 這僅在Kerberos用于HiveServer2的HS2客戶端(JDBC / ODBC應(yīng)用程序)身份驗(yàn)證時(shí)使用脖母。
  • hive-site.xml必須將hive.server2.thrift.sasl.qop 設(shè)置為有效的QOP值之一('auth','auth-int'或'auth-conf')闲孤。

SSL加密

支持SSL加密(Hive 0.13以上谆级,請(qǐng)參閱 HIVE-5351)。要啟用讼积,請(qǐng)?jiān)谝韵挛恢迷O(shè)置以下配置 hive-site.xml

hive.server2.use.SSL - 將其設(shè)置為true肥照。

hive.server2.keystore.path - 將其設(shè)置為您的密鑰庫(kù)路徑。

hive.server2.keystore.password - 將其設(shè)置為您的密鑰庫(kù)密碼勤众。

注意

當(dāng)hive.server2.transport.mode是binary并且hive.server2.authentication是KERBEROS時(shí)舆绎,SSL加密在Hive 2.0之前不起作用。將hive.server2.thrift.sasl.qop設(shè)置為auth-conf以啟用加密们颜。詳情請(qǐng)參閱HIVE-14019

使用自簽名證書(shū)設(shè)置SSL

使用以下步驟創(chuàng)建并驗(yàn)證用于HiveServer2的自簽名SSL證書(shū):

  1. 使用以下命令創(chuàng)建自簽名證書(shū)并將其添加到密鑰庫(kù)文件: keytool -genkey -alias example.com -keyalg RSA -keystore keystore.jks -keysize 2048波岛,確保自簽名證書(shū)中使用的名稱與HiveServer2將運(yùn)行的主機(jī)名相匹配煌茬。

  2. 列出密鑰庫(kù)條目以驗(yàn)證是否添加了證書(shū)。請(qǐng)注意,密鑰庫(kù)可以包含多個(gè)此類證書(shū):keytool -list -keystore keystore.jks

  3. 將此證書(shū)從keystore.jks導(dǎo)出到證書(shū)文件:keytool -export -alias example.com -file example.com.crt -keystore keystore.jks

  4. 將此證書(shū)添加到客戶端的信任庫(kù)以建立信任關(guān)系:keytool -import -trustcacerts -alias example.com -file example.com.crt -keystore truststore.jks

  5. 驗(yàn)證truststore.jks中是否存在證書(shū):keytool -list -keystore truststore.jks

  6. 然后啟動(dòng)HiveServer2竭鞍,并嘗試使用以下命令連接直線: jdbc:hive2://<host>:<port>/<database>;ssl=true;sslTrustStore=<path-to-truststore>;trustStorePassword=<truststore-password>

選擇性地禁用SSL協(xié)議版本

要禁用特定的SSL協(xié)議版本滨砍,請(qǐng)使用以下步驟:

  1. 運(yùn)行openssl ciphers -v(或者不使用openssl的相應(yīng)命令)查看所有協(xié)議版本他膳。
  2. 除了1之外蟀俊,可能還需要執(zhí)行額外的步驟來(lái)查看HiveServer2日志烫映,以查看運(yùn)行HiveServer2的節(jié)點(diǎn)支持的所有協(xié)議。為此,請(qǐng)?jiān)贖iveServer2日志文件中搜索“啟用SSL服務(wù)器套接字的協(xié)議:”揍瑟。
  3. 將所有需要禁用的SSL協(xié)議添加到hive.ssl.protocol.blacklist底循。確保hiveserver2-site.xml中的屬性不覆蓋hive-site.xml中的屬性祠挫。

可插入認(rèn)證模塊(PAM)

警告

如果用戶的密碼已過(guò)期慌植,用于提供PAM身份驗(yàn)證模式的JPAM庫(kù)可能會(huì)導(dǎo)致HiveServer2關(guān)閉雏赦。發(fā)生這種情況是因?yàn)镴PAM調(diào)用本地代碼的segfault / core轉(zhuǎn)儲(chǔ)伍茄。在其他情況下,某些用戶也在登錄過(guò)程中報(bào)告了崩潰妓灌。建議使用LDAP或KERBEROS掉伏。

PAM提供了支持(Hive 0.13话侧,參見(jiàn)HIVE-6466)。配置PAM:

  • 下載 相關(guān)體系結(jié)構(gòu)的JPAM 本機(jī)庫(kù)埂淮。
  • 解壓并將libjpam.so復(fù)制到系統(tǒng)上的目錄(<libjmap-directory>)。
  • 將目錄添加到LD_LIBRARY_PATH環(huán)境變量中给僵,如下所示:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<libjmap-directory>
  • 對(duì)于某些PAM模塊,您必須確保運(yùn)行HiveServer2進(jìn)程的用戶可以讀取您的文件/etc/shadow/etc/login.defs 文件咒锻。

最后俺叭,在以下位置設(shè)置以下配置 hive-site.xml

hive.server2.authentication - 將其設(shè)置為PAM。

hive.server2.authentication.pam.services - 將其設(shè)置為將使用的以逗號(hào)分隔的PAM服務(wù)列表。請(qǐng)注意腹缩,名稱與PAM服務(wù)同名的文件必須存在于/etc/pam.d中。

設(shè)置HiveServer2作業(yè)憑證提供程序

啟動(dòng)Hive 2.2.0(參見(jiàn) HIVE-14822)Hiveserver2支持MR和Spark作業(yè)的作業(yè)特定hadoop憑證提供程序影涉。當(dāng)通過(guò)Hadoop Credential Provider使用加密密碼時(shí),HiveServer2需要將足夠的信息轉(zhuǎn)發(fā)到作業(yè)配置规伐,以便跨群集啟動(dòng)的作業(yè)可以讀取這些秘密蟹倾。此外,HiveServer2可能具有作業(yè)不應(yīng)該具有的秘密猖闪,例如Hive Metastore數(shù)據(jù)庫(kù)密碼鲜棠。如果你的工作需要訪問(wèn)這些秘密,比如S3憑證培慌,那么你可以使用下面的配置步驟來(lái)配置它們:

  1. 在HDFS中的安全位置使用Hadoop Credential Provider API創(chuàng)建特定于作業(yè)的密鑰庫(kù)岔留。此密鑰庫(kù)應(yīng)包含作業(yè)所需配置的加密密鑰/值對(duì)。例如:對(duì)于S3憑證检柬,密鑰庫(kù)應(yīng)該包含fs.s3a.secret.key和fs.s3a.access.key及其相應(yīng)的值献联。
  2. 解密密鑰庫(kù)的密碼應(yīng)設(shè)置為名為HIVE_JOB_CREDSTORE_PASSWORD的HiveServer2環(huán)境變量
  3. 將hive.server2.job.credential.provider.path設(shè)置 為URL竖配,指向上面(1)中創(chuàng)建的密鑰存儲(chǔ)的類型和位置。如果沒(méi)有作業(yè)特定的密鑰庫(kù)里逆,則HiveServer2將使用core-site.xml中使用hadoop.credential.provider.path的一個(gè)集(如果可用)进胯。
  4. 如果未提供步驟2中設(shè)置的密碼使用環(huán)境變量,則HiveServer2將使用HADOOP_CREDSTORE_PASSWORD環(huán)境變量(如果可用)原押。
  5. HiveServer2現(xiàn)在將修改使用MR或Spark執(zhí)行引擎啟動(dòng)的作業(yè)的作業(yè)配置胁镐,以包含作業(yè)憑證提供程序,以便作業(yè)任務(wù)可以使用秘密訪問(wèn)加密的密鑰庫(kù)诸衔。

hive.server2.job.credential.provider.path - 將其設(shè)置為您的作業(yè)特定的hadoop憑據(jù)提供程序盯漂。例如:jceks://hdfs/user/hive/secret/jobcreds.jceks。

HIVE_JOB_CREDSTORE_PASSWORD - 將此HiveServer2環(huán)境變量設(shè)置為上面設(shè)置的特定于作業(yè)的Hadoop憑據(jù)提供程序密碼就缆。

臨時(shí)目錄管理

HiveServer2允許配置Hive用來(lái)存儲(chǔ)臨時(shí)輸出和計(jì)劃的暫存目錄的各個(gè)方面。

配置屬性

以下是可以配置與臨時(shí)目錄相關(guān)的屬性:

ClearDanglingScratchDir工具

可以運(yùn)行Cleardanglingscratchdir工具來(lái)清理Hive不正常關(guān)閉時(shí)可能遺留的任何懸掛臨時(shí)目錄谒亦,例如當(dāng)虛擬機(jī)重新啟動(dòng)并且Hive無(wú)法運(yùn)行關(guān)閉掛鉤時(shí)竭宰。

hive --service cleardanglingscratchdir [-r] [-v] [-s scratchdir]
    -r      dry-run mode, which produces a list on console
    -v      verbose mode, which prints extra debugging information
    -s      if you are using non-standard scratch directory

該工具測(cè)試是否正在使用暫存目錄,如果沒(méi)有份招,將刪除它切揭。這依賴于HDFS寫(xiě)鎖定來(lái)檢測(cè)暫存目錄是否正在使用中。HDFS客戶端打開(kāi)一個(gè)HDFS文件($scratchdir/inuse.lck)進(jìn)行寫(xiě)入锁摔,并且僅在會(huì)話關(guān)閉時(shí)關(guān)閉它廓旬。cleardanglingscratchdir將嘗試打開(kāi)$scratchdir/inuse.lck以測(cè)試相應(yīng)的HiveCli / HiveServer2是否仍在運(yùn)行。如果鎖正在使用中谐腰,則暫存目錄不會(huì)被清除嗤谚。如果鎖定可用,則暫存目錄將被清除怔蚌。請(qǐng)注意巩步,NameNode最多可能需要10分鐘才能從死亡的HiveCli / HiveServer2中收回臨時(shí)文件鎖定的契約,屆時(shí)cleardanglingscratchdir將能夠在再次運(yùn)行時(shí)將其刪除桦踊。

HiveServer2的Web UI


在Hive 2.0.0中引入椅野。參見(jiàn)HIVE-12338及其子任務(wù)。

HiveServer2的Web用戶界面(UI)提供配置籍胯,日志記錄竟闪,指標(biāo)和活動(dòng)會(huì)話信息。默認(rèn)情況下杖狼,Web UI在端口10002(127.0.0.1:10002)可用炼蛤。

該界面目前正在開(kāi)發(fā) HIVE-12338次舌。

圖片.png

Python客戶端驅(qū)動(dòng)

HiveServer2的Python客戶端驅(qū)動(dòng)程序可在 https://github.com/BradRuderman/pyhs2上找到 (謝謝Brad)。它包括所有必需的軟件包兽愤,如SASL和Thrift包裝彼念。

該驅(qū)動(dòng)程序已經(jīng)通過(guò)了Python 2.6及更新版本的認(rèn)證。

要使用pyhs2驅(qū)動(dòng)程序:
pip install pyhs2

`import` `pyhs2`

`with [pyhs2.connect(host](https://cwiki.apache.org/confluence/display/Hive/pyhs2.connect(host)``=``'localhost'``,`

`port``=``10000``,`

`authMechanism``=``"PLAIN"``,`

`user``=``'root'``,`

`password``=``'test'``,`

`database``=``'default'``) as conn:`

`with [conn.cursor()](https://cwiki.apache.org/confluence/display/Hive/conn.cursor()) as cur:`

`#Show databases`

`print` `[cur.getDatabases()](https://cwiki.apache.org/confluence/display/Hive/cur.getDatabases())`

`#Execute query`

`[cur.execute(](https://cwiki.apache.org/confluence/display/Hive/cur.execute()``"select * from table"``)`

`#Return column info from query`

`print` `[cur.getSchema()](https://cwiki.apache.org/confluence/display/Hive/cur.getSchema())`

`#Fetch table results`

`for` `i ``in` `[cur.fetch():](https://cwiki.apache.org/confluence/display/Hive/cur.fetch():)`

`print` `i`

您可以在user@hive.apache.org郵件列表上討論此驅(qū)動(dòng)程序 浅萧。

Ruby客戶端驅(qū)動(dòng)

https://github.com/forward3d/rbhive上的github上提供了一個(gè)Ruby客戶端驅(qū)動(dòng)程序 逐沙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市洼畅,隨后出現(xiàn)的幾起案子吩案,更是在濱河造成了極大的恐慌,老刑警劉巖土思,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忆嗜,居然都是意外死亡己儒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門捆毫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)闪湾,“玉大人,你說(shuō)我怎么就攤上這事绩卤⊥狙” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵濒憋,是天一觀的道長(zhǎng)何暇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)凛驮,這世上最難降的妖魔是什么裆站? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮黔夭,結(jié)果婚禮上宏胯,老公的妹妹穿的比我還像新娘。我一直安慰自己本姥,他們只是感情好肩袍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著婚惫,像睡著了一般氛赐。 火紅的嫁衣襯著肌膚如雪魂爪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天鹰祸,我揣著相機(jī)與錄音甫窟,去河邊找鬼。 笑死蛙婴,一個(gè)胖子當(dāng)著我的面吹牛粗井,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播街图,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浇衬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了餐济?” 一聲冷哼從身側(cè)響起耘擂,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎絮姆,沒(méi)想到半個(gè)月后醉冤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篙悯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年蚁阳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸽照。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡螺捐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矮燎,到底是詐尸還是另有隱情定血,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布诞外,位于F島的核電站澜沟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏峡谊。R本人自食惡果不足惜倔喂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靖苇。 院中可真熱鬧席噩,春花似錦、人聲如沸贤壁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脾拆。三九已至馒索,卻和暖如春莹妒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绰上。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工旨怠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜈块。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓鉴腻,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親百揭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爽哎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 說(shuō)到理財(cái)祈秕,有很多人都在說(shuō): “理財(cái)干嘛呀渺贤?沒(méi)關(guān)系啦,省著點(diǎn)花好了嘛请毛≈景埃” 對(duì)此我想說(shuō):如果到了日益發(fā)展的現(xiàn)在,你還保...
    暖暖泡沫閱讀 410評(píng)論 0 0
  • 作者:胡莊在這個(gè)/暴雨侵襲/城市里只為/在這片汪洋里/你早已懶得深一腳/淺一腳/試探心意人生風(fēng)雨/他的心墻/早已筑...
    獨(dú)立撰稿人胡莊閱讀 151評(píng)論 0 0
  • 新的開(kāi)始 重拾計(jì)劃 勿忘初心 懂得感恩 充實(shí)自己
    sevencn閱讀 229評(píng)論 0 0
  • 327. Count of Range Sum 中午請(qǐng)人吃飯获印,結(jié)果吃多了述雾,好困街州,有點(diǎn)坐不動(dòng)了兼丰。這題有segment...
    健時(shí)總向亂中忙閱讀 230評(píng)論 0 0
  • 1. 家里的水管漏水了。媽媽請(qǐng)來(lái)了修水管的建趟紊。 現(xiàn)在的建氮双,已經(jīng)50出頭了。掐指一算霎匈,我認(rèn)識(shí)他已經(jīng)有20多年了戴差。歲月...
    藍(lán)粉筆頭閱讀 285評(píng)論 1 2